- Регистрация
- 27 Авг 2018
- Сообщения
- 37,317
- Реакции
- 524,395
- Тема Автор Вы автор данного материала? |
- #1
Голосов: 0
ОПИСАНИЕ:
FULLSTACK разработчик:
В разных компаниях могут по-разному трактовать это понятие, но общее одно - минимально вы должны уметь:
1) создавать серверную часть на микросервисах (backend) - Java/Kotlin/Spring Cloud
2) создавать клиентскую часть (frontend) - React/Angular
3) использовать инструменты аутентификации (OAuth2, OpenID)
4) собирать и распространять свой проект в контейнерах (Kubernetes, Docker)
5) правильно обновлять приложение с помощью 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 от начала и до конца, изучите все технологии на одном большом проекте.
Затем сможете устроиться в компанию, т.к. будете знать как работают современные системы (или если вы уже менеджер или аналитик -- сможете лучше управлять своими разработчиками)
Программа обучения
1) Профессиональный код на ООП + Java задачи
2) Профессиональные основы языка Kotlin + задачи
3) Базы данных и SQL – с нуля до профи – PostgreSQL
4) Основы Hibernate для новичков и профи
5) Spring backend с RESTful сервисами + Java/Kotlin
6) Микросервисы на Spring + Java/Kotlin
7) Авторизация с помощью Spring + OAuth2
8) Авторизация OAuth2 на примере простого JavaScript приложения
9) Планировщик на Angular + OAuth2
10) Веб проект “Планировщик” на React.js
11) Docker – практика на Java/Spring/Angular
12) Git для новичков
ПРОДАЖНИК:
СКАЧАТЬ: