Фронтенд-разработка мертва. Да здравствует фронтенд-инженерия!

Перевод статьи «Frontend Development is Dead. Long Live Frontend Engineering!».

Фронтенд-инженерия

Помните старые добрые времена, когда было вполне достаточно писать хороший CSS и HTML? Может, еще немного PHP, JSP или (если вы были подкованным фронтенд-разработчиком) немного каких-то Jade/Pug переменных, импортов и jQuery -кода…

Что тут сказать? Все это кануло в лету. И это лучшее из того, что когда-либо случалось с фронтенд-разработкой.

Legacy-код это проблема для разработчика

Устаревший код

Быть разработчиком означает никогда не прекращать учиться.

В бэкенде некоторые технологии могут существовать десятилетиями. Вспомните Java, PHP, Ruby (список можно продолжить). Вы настраиваете сервер, и он обслуживает ваше приложение до конца его дней.

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

Оседлать волну инноваций это долг разработчика. Хотя jQuery была прекрасной библиотекой в 2010 году, сегодня она бесполезная, отталкивающая и устаревшая. Некоторые фронтенд-разработчики столкнутся со сложностями при попытках загрузить современный пользовательский интерфейс при помощи React, Vue или Angular, и это совершенно нормально.

Им всего лишь придется изучить что-то новое, потому что именно этим и занимаются разработчики.

Боязнь JavaScript

Боязнь JavaScript

За последние годы JavaScript стал одним из самых популярных языков программирования. Но некоторые фронтенд-разработчики все еще не признают его необходимым языком для фронтенда, и совершенно зря.

Времена, когда вы могли написать весь пользовательский интерфейс при помощи HTML (или Jade/Pug) и CSS (SASS/Less) уже миновали. Забудьте о них.

Разработчику порой приходится забывать все, изученное в прошлом. То, что вы хорошо писали код с помощью jQuery/Zepto/MooTools не означает, что вы будете хорошим React/Vue/Angular разработчиком.

После нескольких лет написания такого кода:

Пример кода

довольно сложно понять такой:

Пример кода

Но это нормально, вам просто нужно изучить нечто новое.

Изучив реактивное программирование, компоненто-ориентированное программирование и другие новые технологии/идеологии, вы быстро оцените преимущество написания Vue/React/Angular компонентов по сравнению с написанием какого-то количества беспорядочного jQuery-кода.

Сегодня каждый фронтенд-разработчик должен обладать хорошими навыками программирования на JavaScript.

Скажу это еще раз: знания SASS, Pug и jQuery уже не достаточно.

Фронтенд-инженерия

Фронтенд-инженерия

После появления Backbone и Angular мы попрощались с фронтенд-разработкой. Эти две библиотеки послужили началом революции, которая привела к появлению фронтенд-инженерии.

Сегодня для сборки вашего приложения вам нужно уметь настраивать WebPack или Rollup. Для управления большим количеством пакетов вам может понадобиться использовать Lerna. А как насчет ESLint? Prettier? TypeScript или Flow? Yarn или NPM? Babel?

JavaScript это не просто «дерьмовый язык фронтенда», как выражаются некоторые разработчики. Это сложный, быстрорастущий язык программирования, который может помочь вам больше, чем вы думаете. В его сообществе множество умных инженеров, обладающих различным опытом, и они помогут вам овладеть этим языком.

Причина появления фронтенд-инженерии понятна. Пользовательские интерфейсы становятся сложными, и пока вы не найдете способ оптимизировать свой код, user experience будет страдать. Вспомните, как вы писали код в 2005 году: вы правда заботились о масштабируемости? Производительности? Чистом коде? Тестировании?

Сегодня при работе с фронтендом мы часто пишем сложные алгоритмы, модульные тесты, а также заботимся о производительности и размере страниц/пакетов.

В 2005 году написать хороший код фронтенда было проще, но в большинстве случаев приемлемым был даже ужасный код.

В 2019 году написать хороший код фронтенда невероятно тяжело, а ужасный код и вовсе недопустим. Почему? Потому что стандарты сегодняшних пользователей куда выше, и значение имеет все: производительность, масштабируемость, плавность анимаций, скорость выполнения.

Признайтесь честно: как часто вы задумывались о размере библиотеки, прежде чем импортировать ее в свой проект?

Как часто вы делали рефакторинг всего скрипта, только чтобы улучшить его поддерживаемость?

Как часто вы заботились о модульном тестировании? А как насчет производительности?

Я сознаюсь, что часто писал быстрые и грязные решения, потому что так делали все разработчики, которых я знал. За последние пять лет я понял, что так больше продолжаться не может. Поэтому я оставил jQuery и Zepto, освоив React и Vue. Я изучил ESLint, темы чистого кода и модульного тестирования, а также алгоритмы и структуры данных.

Это изменило мою жизнь и повысило мой энтузиазм в программировании.

Мантра фронтенд-инженера на 2020 год:

  • Старые технологии связаны со многими проблемами. Откажетесь от них – избавитесь и от этих проблем.
  • SEO имеет большое значение, но это не причина, чтобы избегать React/Vue/Angular. У нас есть SSR, и это решает проблему.
  • Знания JSP, ERB, PHP уже недостаточны. На дворе 2019 год, у нас есть Nuxt, Next и другие отличные бэкенд-технологии. Освойте их.
  • Чистый код это необходимость.
  • Алгоритмы и структуры данных помогут вам сохранить работу. В буквальном смысле. Изучайте их!
  • Тесты необходимы.
  • JavaScript это ваш друг.

[customscript]techrocks_custom_after_post_html[/customscript]

[customscript]techrocks_custom_script[/customscript]

6 комментариев к “Фронтенд-разработка мертва. Да здравствует фронтенд-инженерия!”

  1. Аноним

    Интересно, как дело обстоит с C++, C#? Есть ли новые тренды из года в год и как быстро будут обесцениваться навыки разраба из-за появления новых фреймов и библиотек?
    Потому что появление из года в год новых фреймворков и библиотек в js действительно, как по мне, заставляют разрабов js тратить силы на изучение вот этих новых трендов, чтобы их скиллы не удешевились.

  2. Аноним

    Сколько этих фронтендеров развелось уже, а сверстать элементарный лендос умеют единицы ) грамотный css никто не отменял, так что старые технологии поживут ещё, и долго )

  3. Знания JSP, ERB, PHP уже недостаточны. На дворе 2019 год, у нас есть Nuxt, Next и другие отличные бэкенд-технологии. Освойте их.

    Шта? Бэкэнд технологии? Это для автоматизации серверного рендеринга для Vue, react

  4. Основная мысль про обучение. И в этом автор прав на 100%. Спасибо за статью.

  5. Аноним

    а сайтец написан на:
    WordPress5.2.5
    Apache
    WordPress Super Cache
    PHP
    MySQL
    jQuery1.12.4
    jQuery Migrate1.4.1

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх