Найти в Дзене
Уйти в АйТи

Когда надо просто подождать. Переписываем с AngularJs на ReactJs.

Здравствуйте, уважаемые подписчики и гости канала!

Хотел поделиться наблюдением - иногда надо просто подождать... и все будет.

Вот хороший последний пример, а таких в разных областях было много за все время. Проект у меня на
angularjs еще, а последняя LTS поддержка angularjs-а была до лета 2021 года. Проект старый и большой - первый коммит 08.12.2014. Много динамического рендеринга. Почему на angularjs? Вот так не повезло - на момент старта reactjs еще не был популярным и распиаренным, а angularjs был прям на коне. Короче так просто случилось.

Пруф-скриншот https://trends.google.com/trends/explore?cat=31&date=all&q=Vue.js,React,Angular
Пруф-скриншот https://trends.google.com/trends/explore?cat=31&date=all&q=Vue.js,React,Angular


И вот где-то в 2015 году (реально не помню и особо не важно плюс-минус год пойдет даже) выходит новость о том, что angularjs переписали и будет
angular2 который вообще другой и надо все приложение переписывать. И я такой - что?! 🤷‍♂️ Не надо наверно говорить, как я "обрадовался" таким новостям. 😡

Конечно, за почти год было написано много компонентов для фронта. Да и потом, переходить было некуда - reactjs был сырым, да и непонятно вообще что делать-то. И проект не заморозишь же - фичи нужны и их приходилось делать на angularjs и дальше. Кстати, топовым сборщиком тогда был толи grunt, толи уже gulp. Всех не упомнишь - в мире фронтенда "озарение" у народа наступало примерно каждую весну и осень =)))) Не у всех конечно, но я просто пригораю от количества сменившихся за 7-8 лет технологий и подходов и О БОЖЕ! - пришли к компонентной верстке, которая в win32 api еще была в Visual Basic и т.п., когда я еще в школе учился. Оказывается, программировать надо так, чтобы можно было переиспользовать работу других. Удивительно только как об. этом догадались к 2015. Но ладно, сори, я отклонился.

Изображение из https://twitter.com/aus_jorg/status/1255517297252450305
Изображение из https://twitter.com/aus_jorg/status/1255517297252450305

Короче, с 2016 года примерно по 2019 у меня было много попыток как-то перевести проект на angular2+, но все там было супер сложно прям. React тоже не получалось. Не знаю, может руки кривые, но это врядли =) Но прям очень сложно все было - webpack конфиг непонятной, куча кода, неработающие примеры, 100500 строк лишнего на мой взгляд кода. Переписать с нуля, конечно, вопрос не стоял - у меня был такой опыт в первой конторе, где я работал - это ад и так делать не надо на большом проекте. Надо было найти решение, которое позволяло бы постепенно, но уверенно и без горы лишнего кода переписать весь UI сложного проекта.

И тут в 2020 году корона способствовала тому, что LTS angularjs-а сдвинули на полгода до конца 2021 года. Появилось чуть больше время для маневров. К слову сказать, UI - это не единственная моя головная боль в компании и, как и у многих читателей, у меня нет время постоянно выбирать и тестить все фреймворки мира. Так вот, буквально недавно я пошел в очередной "крестовый поход" на технологии и нашел таки очень постой способ просто и без кучи непонятных кривых конфигов начать переписывать компоненты на reactjs.

React полноценно я потыкал палкой еще весной и там уже прям нормально было к тому моменту - особенно хуки функциональные компоненты. Короче, как надо - минимум кода с максимальной пользой. Сперва пришлось выпилить запиленные на angular2+ куски кода - тут более менее на angularjs можно было портировать, потом убрал bootstrap angular2, который дико тормозил загрузку всего. Ну и подключил react.

Также заюзал parcel для сборки - в моем случае он просто заработал и всё. Мне сейчас этого вполне достаточно.

Ну и либу react2angular - чтобы простейшим образом интегрировать компоненты на react в angularjs.

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

P.S. Вот что я точно унес из angular2+, так это TypeScript. Чего-то такого давно не хватало - ведь нереально писать много кода в одном проекте на js - это ж нетипизированный ад.

---

А на этом всё, спасибо за внимание!

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

Кроме этого:

Подписывайтесь в Telegram: https://t.me/lets_goto_it

#angularjs #angular #reactjs #teamlead #frontend #js #typescript