Получи случайную криптовалюту за регистрацию!

Фронтенд дайджест #202 Лучшее за неделю Подкаст Ссылки на ори | FrontoWeek: Недельный дайджест [Фронтовик]

Фронтенд дайджест #202
Лучшее за неделю
Подкаст

Ссылки на оригинальные посты теперь в эмоджи с номерами.

Опубликованы результаты ежегодного опроса State of JS за 2020 год.
Angular попал в категорию технологий, которые разочаровали разработчиков. Это тревожный звоночек: если вы знаете только Angular — безопаснее будет уже начать переучиваться.
React и Vue — напротив — оставляют только положительные ощущения. Стабильно растёт интерес к Svelte, но пока только интерес.

Среди инструментов для работы с данными, уверенно лидирует GraphQL. Redux, хоть и используется чаще других, интересует разработчиков всё меньше и меньше.
В бекэнд-фреймворках, как обычно, доминирует Express, но Next.js год к году наращивает аудиторию и позитивные отзывы.

В тестировании никаких сюрпризов: чаще всего используется Jest, но растёт интерес к новым фреймворкам: Testing Library и Playwright.
В списке сборщиков интересное пополнение в виде Snowpack и esbuild, но самый используемый пока что Webpack.

На этом можно закончить текстовый пересказ графиков — лучше пройти на сайт опроса и посмотреть на них своими глазами.

Фронтенд для джунов, бэкенд для настоящих программистов — говорили «настоящие программисты». Автор поста не выдержал и заступился за фронтендеров.
Несмотря на низкий порог вхождения, во фронтенде очень много сложных задач, которые на бэкенде встречаются гораздо реже. Например, необходимость работать одинаково хорошо в разных браузерах и девайсах. Скажите бэкендеру, что примерно 15% запросов к базе вернут данные немного в другом формате, и посмотрите на его реакцию.

Многие мемы про JS-утилиты реально смешные, но правда в том, что бандлеры и пакетные менеджеры у фронтендеров позволяют делать такое, что другим даже не снилось: вы пишете код в любом синтаксисе, а магическая транспиляция позволяет этому коду исполняться на любом устройстве с любой операционной системой, в браузере или на сервере.
Да вы настоящий герой!

Разработчиков становится всё больше, а задачи, над которыми им дают работать, всё более декомпозированными и точечными. Оно и понятно: чем меньше задача, тем точнее можно её оценить, что очень удобно при планировании.
Но не всё так хорошо. Благодаря такому детализированию, у разработчиков становится меньше пространства для проектирования. И когда разработчик попросит повышения до архитектора, ему резонно скажут, что для новой позиции его опыта проектирования недостаточно.
Но откуда же взяться этому опыту, если всё, что разрешено делать — это кодить задачки из Jira?!
Выход тут один: вместо распределения задач необходимо делегировать целые обязанности, вроде полного цикла проектирования и разработки фичи.

Зачем математика разработчикам, особенно фронтендерам?
Займитесь анимациями, чтобы узнать это.

В статье описано, как нарисовать нужную кривую траектории, используя школьные знания по тригонометрии и физике.
На форму траектории можно влиять и с помощью смешивания нескольких более простых функций-коэффициентов, придавая им более уникальный вид.
Например, bounce-анимация может быть получена делением функции косинуса на формулу параболы, а синус в полярных координатах даст форму круга.
Но самые продвинутые траектории можно делать из кривых Безье и их последовательностей.
Довольно непонятных слов! В статье есть картинки.

[EN] Если вы думаете, что коммиты в git — это diff'ы содержимого, то вы заблуждаетесь. Гит — это простое key-value хранилище, в котором есть 3 типа записей:
- blob содержит весь контент изменённого файла, но ничего не знает о том, где этот файл находится;
- tree указывает на blob и хранит информацию о самом файле и его положении в структуре папок — вложенные директории тоже описываются с помощью tree;
- сommit связывает родительский коммит и корневой tree, а также содержит мета-информацию об авторе и сообщении;

Таким образом, эти объекты в гите образуют дерево Меркла, по которому можно откатить состояние проекта — ведь у нас есть полные состояния на любой момент времени.