FULLSTACK разработчик:
В разных компаниях могут по-разному трактовать это понятие, но общее одно — минимально вы должны уметь:
- создавать серверную часть на микросервисах (backend) — Java/Kotlin/Spring Cloud
- создавать клиентскую часть (frontend) — React/Angular
- использовать инструменты аутентификации (OAuth2, OpenID)
- собирать и распространять свой проект в контейнерах (Kubernetes, Docker)
- правильно обновлять приложение с помощью DevOps, CI/DI
Cегодня компании хотят получить готового самодостаточного программиста, который уже многое умеет. Проходит то время, когда с вами будут идти за ручку с нуля и обучать за счет компании. Время — деньги! Особенно сейчас.
Если вы придете подготовленным и с опытом разработки на современных инструментах — ваши шансы повышаются в сотни раз. Вы уже должны быть достаточно опытным. Должно быть хотя бы 1-2 проекта в портфолио. Желательно изучать технологии, которые давно себя зарекомендовали и будут «на коне» еще долгое время.
Современные системы чаще всего построены по этим принципам:
а) Микросервисная архитектура для backend (вместо «монолита»)
Весь функционал приложения заключаются в веб сервисы (API). Сервисы могут находиться в разных приложениях (не как раньше — в одном, «монолит»). Один и тот же сервис может использоваться разными приложениями. Создаете один раз — используете всегда. Между сервисами и клиентом существует «экран» или «адаптер», который распределяет все входящий запросы. Сервисы могут находиться на разных серверах и быть не связаны между собой. Технологии: Spring, Swagger
б) RESTful сервисы для backend
RESTful — самый простой и быстрый способ обмена данными. Простой в использовании и создании (по сравнению с SOAP). Вы создаете один раз нужный сервис и используете в разных приложениях. За всеми запросами наблюдает общий «адаптер». Технологии: Spring, Swagger
в) Безопасность отделена от приложения
Вы не «вшиваете» внутрь своего приложения функционал безопасности, а делегируете его в отдельный узел (на другом сервере), который имеет свое API и все могут им пользоваться. В самом приложении вы только настраиваете роли и доступы. Технологии: OAuth2, OpenID и некоторые другие.
г) Фреймворки JavaScript для клиентского UI
Современные и отзывчивые веб/мобильные приложения делают на JS фреймворках: React, Angular, Vue.js. Ушли в прошлое тяжеловесные стеки типа JavaEE, JSF и пр. Сейчас «на коне» 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 от начала и до конца, изучите все технологии на одном большом проекте.
- Затем сможете устроиться в компанию, т.к. будете знать как работают современные системы (или если вы уже менеджер или аналитик — сможете лучше управлять своими разработчиками)
Программа обучения
- Профессиональный код на ООП + Java задачи
- Профессиональные основы языка Kotlin + задачи
- Базы данных и SQL – с нуля до профи – PostgreSQL
- Основы Hibernate для новичков и профи
- Spring backend с RESTful сервисами + Java/Kotlin
- Микросервисы на Spring + Java/Kotlin
- Авторизация с помощью Spring + OAuth2
- Авторизация OAuth2 на примере простого JavaScript приложения
- Планировщик на Angular + OAuth2
- Веб проект “Планировщик” на React.js
- Docker – практика на Java/Spring/Angular
- Git для новичков








