Що нового?

Набір учасників [Javabegin] FullStack розробник веб проектів (Тимур Батиршинов)

Інформація про покупку
Тип покупки: Складчина
Ціна: 3677 ГРН
Учасників: 0 з 73
Організатор: Відсутній
Статус: Набір учасників
Внесок: 52.4 ГРН
0%
Основний список
Резервний список

Gadzhi

Модератор
FULLSTACK Розробник:

У різних компаніях можуть по-різному трактувати це поняття, але загальне одне - мінімально ви повинні вміти:
  1. створювати серверну частину на мікросервісах (backend) - Java/Kotlin/Spring Cloud
  2. створювати клієнтську частину (frontend) - React/Angular
  3. використовувати інструменти аутентифікації (OAuth2, OpenID)
  4. збирати і поширювати свій проект в контейнерах (Kubernetes, Docker)
  5. правильно оновлювати додаток за допомогою DevOps, ci/DI
сьогодні компанії хочуть отримати готового самодостатнього програміста, який вже багато чого вміє.
Проходить той час, коли з вами будуть йти за ручку з нуля і навчати за рахунок компанії.
Час-гроші! Особливо зараз.
Якщо ви прийдете підготовленим і з досвідом розробки на сучасних інструментах - ваші шанси підвищуються в сотні разів. Ви вже повинні бути досить досвідченим
Має бути хоча б 1-2 проекти в портфоліо

Які технології використовувати? Адже їх дуже багато
Потрібно вибрати якийсь один стек і добре його вивчити. Решта-трохи пізніше за потребою.
Бажано вивчати технології, які давно себе зарекомендували і будуть "на коні" ще довгий час.

сучасні системи найчастіше побудовані за цими принципами:
а) Мікросервісна архітектура для backend (замість"моноліту")
Весь функціонал програми полягають в веб сервіси (API). Сервіси можуть перебувати в різних додатках (не як раніше - в одному, "Моноліт"). Один і той же сервіс може використовуватися різними додатками. Створюєте один раз-використовуєте завжди. Між сервісами і клієнтом існує "екран" або "адаптер", який розподіляє всі вхідний запити. Сервіси можуть перебувати на різних серверах і бути не пов'язані між собою. Технології: Spring, Swagger

Б) RESTful сервіси для backend
RESTful - найпростіший і швидкий спосіб обміну даними. Простий у використанні і створенні (в порівнянні з SOAP). Ви створюєте один раз потрібний сервіс і використовуєте в різних додатках. За всіма запитами спостерігає загальний "адаптер". Технології: Spring, Swagger

в) безпека відокремлена від програми
Ви не" вшиваєте " всередину свого додатка функціонал безпеки, а делегуєте його в окремий вузол (на іншому сервері), який має своє API і всі можуть ним користуватися. У самому додатку ви тільки налаштовуєте ролі і доступи. Технології: OAuth2, OpenID і деякі інші.

г) Фреймворки JavaScript для клієнтського UI
Сучасні і чуйні веб/мобільні додатки роблять на JS фреймворках: React, Angular, Vue.js. Зараз "на коні" Ajax виклики, які відправляють запит в RESTful-сервіс, отримують відповідь і тут же оновлюють тільки потрібну частину сторінки. І все це з даними аутентифікації/авторизації, по безпечному HTTPS каналу.

д) складання і дистрибуція проекту
Щоб ваш додаток можна було швидко запустити - вам потрібно буде правильно його зібрати і налаштувати. Це все-в автоматичному режимі ("натискаємо одну кнопку"). Вручну збирати весь стек технологій-це повільно і неефективно, "минуле століття". Технології: Kubernetes, Docker.

е) єдине сховище коду
Система контролю версій, куди вся команда "зливає" свій код. У вас завжди буде актуальна версія проекту. Це теж стандарт в будь-якій великій компанії (з дуже давніх часів). Не важливо, які технології ви використовуєте - завжди потрібно буде зберігати всі коди не тільки у себе на комп'ютері, але і в віддаленому репозиторії.

всі ці принципи ви будете застосовувати в даному навчанні:
1) Java/Kotlin
Це мова, яка буде затребувана ще довгий час. Якщо вивчите Java, в майбутньому зможете легко здолати і Kotlin. Одна мова плавно перетікає в інший. Але спочатку бажано добре зрозуміти Java. На цих мовах ви будете створювати мікросервіси і весь функціонал бекенд. Java майже завжди знаходиться на 1-3 місці за індексом TIOBE

2) PostgreSQL
Популярна безкоштовна база даних з великим функціоналом. В останні роки вирвалася в лідери. У багатьох випадках має виграш в продуктивності перед MySQL, типів даних, гнучкості налаштувань. Багато хостингів, наприклад Heroku, мають підтримку цієї БД в безкоштовному тарифі-це говорить про те, що вони вже зробили вибір. Раніше в фаворі був MySQL.

3) Spring/Hibernate
Найпопулярніші фреймворки, які полегшують розробнику backend додатків. За допомогою них ви зможете швидко організувати потрібні веб сервіси і виконати запити в БД. Spring дає можливість налаштувати мікросервіси із загальним "екраном", підключити безпеку, OAuth2 і багато іншого. Можна сказати, що це один великий і функціональний комбайн. Spring є найпопулярнішим Java/Kotlin фреймворком.

4) Angular/React/TypeScript
Для того, щоб створити клієнтський інтерфейс - ви можете використовувати або React, або Angular (також ще є популярний Vue.js). У будь-якому випадку вам потрібно буде вивчити мову TypeScript (що легко зробити, якщо ви знаєте Java). У підсумку ви зможете створювати будь-які UI: веб, мобільні (iOS, Android), desktop - пишете один раз код і збираєте під різні платформи. Найпопулярнішим в даний момент є React.
React з моменту появи-завжди на першому місці серед JS UI фреймворків-завдяки його простоті і функціональності.

5) IntelliJ IDEA
Хоч це середовище розробки і платна, але вона все ще використовується найчастіше у всіх великих компаніях. Тому вам потрібно обов'язково мати досвід роботи з нею. Можете спробувати trial версію (Ultimate, WebStorm) або отримати безкоштовну ліцензію на email студента (родича). Або пошукати інші варіанти в Інтернеті ("if you know what I mean"). До речі, є хороший безкоштовний аналог Vscode від Microsoft-саме для веб додатків.

6) Git/GitHub
Для того, щоб ви могли успішно працювати в командах - вам необхідно хоча б на мінімальному рівні знати і вміти працювати з Git/GitHub. Ви будете виконувати доопрацювання, заливати зміни, отримувати чужі зміни собі - "варитися в загальному соку" з іншими учнями. Без знання версійності коду - вам буде сильно складніше (навіть для особистих проектів)

7) Docker
Програмне забезпечення з відкритим вихідним кодом, що застосовується для розробки, тестування, доставки і запуску веб-додатків в середовищах з підтримкою контейнеризації. Він потрібен для більш ефективного використання системи і ресурсів, швидкого розгортання готових програмних продуктів, а також для їх масштабування і перенесення в інші середовища з гарантованим збереженням стабільної роботи

8) Bootstrap
Відкритий і безкоштовний HTML, CSS і JS фреймворк, який використовується веб-розробниками для швидкої верстки адаптивних дизайнів сайтів і веб-додатків. Ви зможете створювати на ньому один і той же проект під різні пристрої.

чому цьому більше ніхто не вчить?
чому ніхто не навчає системним знанням?
Нещодавно зловив себе на думці, що вивчаючи різні тренінги/курси, ніде не зустрічав подібну програму - коли тебе за руку можуть провести з від початку і до кінця і зробити fullstack розробником.
Скрізь тільки обривки проектів або незв'язані теми. Зібрати все воєдино неможливо.
Тому я вирішив створити таку програму - ви пройдете шлях fullstack від початку і до кінця, вивчіть всі технології на одному великому проекті.
Потім зможете влаштуватися в компанію, тому що будете знати як працюють сучасні системи (або якщо ви вже менеджер або аналітик-зможете краще управляти своїми розробниками)

які технології fullstack ПРОЙДЕТЕ?

1) Основи Java/Kotlin, професійний код на ООП
На початку ви будете створювати тільки консольні додатки. Важливо пройти всі основні завдання, щоб я переконався, що у вас вже є фундамент ООП, колекції, синтаксис. Якщо захочете - можемо зробити доп. проекти на Java UI (Swing, JavaFX) - це за бажанням.
2) проектування бази даних на PostgreSQL
Тут ви з нуля створите базу даних, яку потім будете використовувати в підсумковому проекті. На основі цієї БД пройдемо всі необхідні теми: зв'язки таблиць, ключі, обмеження, SQL запити, метадані і багато іншого. Це мінімум, що повинен знати будь-який початківець програміст.

3) Створення серверного проекту (RESTful backend)
Основна серверна частина, яка буде мати RESTful сервіси і звертатися до створеної раніше базі даних. Тут поки також немає ніякого UI, а тільки тестування веб сервісів за допомогою Postman/ARC/браузер. Таким чином ви створюєте API вашої програми.
4) Безпека і робота з користувачами на OAuth2
Це окрема категорія проекту, яка не залежить від інших. Тут ви створите і налаштуєте сервер авторизації з потрібними користувачами, ролями і пр.потім цим сервером буде користуватися ваш backend, щоб отримувати ключі для виконання запитів. Так працюють всі великі компанії (Google, Facebook)
5) клієнтський Web UI з мобільною версткою-React/Angular
Можливо найцікавіша частина, тому що тут з'являється зовнішній вигляд, який ви будете створювати з нуля і потім виконувати запити на backend, отримувати дані, оновлювати потрібні частини сторінок. За це відповідають технології React або Angular (зможете вибрати будь-яку з них). Приклад підсумкового Додатки онлайн можна подивитися тут
6) спільна робота з репозиторіями Git/GitHub
https://privatelink.de/?https://javabegin.ru/products/fullstack/
 
Угорі