Skip to content

Latest commit

 

History

History
83 lines (66 loc) · 5.75 KB

File metadata and controls

83 lines (66 loc) · 5.75 KB

Обзор наиболее востребованных технологий, которые будут изучаться на курсе TopJava. Часть 3

О работе с фронтендом и JavaScript

Курс включает себя минимальную практику работы с JavaScript. Почему это нужно? В вакансиях backend разработчиков, как правило, отсутствуют требования глубокого знания JavaScript, но каждый разработчик должен уметь пользовать DevTools - инструментами разработчика в браузере, чтобы при работе над рабочими задачами по меньшей мере иметь возможность понять, происходит ли ошибка на стороне фронтенда или на стороне бэкенда, увидеть, какие данные уходят на сервер с фронтенда и так далее.

Также, конечно, минимальные знания JavaScript приятны, поскольку они дают вам возможность написать свой несложный проект хотя бы с минимальным фронтендом.

Существуют также fullstack-разработчики, от которых требуется способность полноценно решать задачи фронтенда на продакшене. Это требует довольно глубокого знания фронтенд-технологий и таких фреймворков, как Angular или React. Это требует много времени, и такая подготовка не входит в курс TopJava.

Обзор наиболее востребованных технологий, которые будут изучаться на курсе TopJava

Тренд на отказ от reflection

Говоря о трендах, хотелось бы сказать, что в настоящее время развиваются фреймворки, построенные на отказе от использования Reflection API. Dependency injection в Spring, сериализация с помощью Jackson построены на использовании Reflection, что сильно бьет по производительности, но было достаточно удобным решение до недавнего времени. Фреймворк Micronaut полностью построен на отказе от Reflection, и это дает существенный прирост производительности при измерении ряда параметров. Micronaut использует продвинутый компилятор и генерацию байткода, что позволяет создать все бины (управляемые фреймворком объекты) в ходе компиляции.

Пока доля Micronaut очень мала, но он используется в продакшене. Я предполагаю, что в какой-то момент Spring может также внедрить подобный подход.

Тренд на развитие реактивного программирования

Продолжает развиваться реактивное программирование, которое является в какой-то степени новой парадигмой в программировании.

Spring развивает свой реактивный фреймворк Spring WebFlux, который поддерживает библиотеку Reactor.

Ряд современных задач не решается традиционными методами, такими как блокирующий Input/Output, HTTP-протокол. Одним из решений данных вопросов является применение подходов реактивного программирования (Reactor, RxJava), использование новых протоколов передачи данных (RSocket). У нас также готовится курс ReactJava как продолжение TopJava на реактивном стеке.

Тренд на микросервисы, тезисы

ПО становится большим и сложным. Очень большое приложение сложно поддерживать одной командой, управлять его жизненным циклом: разработка, релиз. Приходиться все заново тестировать, долго ждать выхода новой фичи. Решение - микросервисы, когда над сервисом работает один человек или небольшая команда (есть правило двух пицц - команду можно накормить 2-мя пиццами). Это решает проблемы выше, но не бесплатно - разработка микросервисов, как и реактивного приложения, на порядок сложнее.

Следующий курс, готовый стать самым популярным после TopJava, - Микросервисы.