Плюсы и минусы перехода на React

Пролог

Спросите у автомобильного дилера, и он расскажет вам 50 причин, по которым вам следует перейти на последнюю модель. Спросите веб-разработчика, и он расскажет вам 100 причин, по которым ваш сайт отстой. Спросите свою партнершу, и она расскажет вам 500 причин, по которым ее гардероб устарел.

Мы живем в мире, где есть более быстрая и лучшая альтернатива (или обновление). Следуя логике автосалона, вы должны покупать новую машину каждый год. А ты? Мои веб-технологии развиваются во много раз быстрее, чем достижения в мире автомобилей и моды. У веб-фреймворков тяжелый жизненный цикл, и если мы выразим его максимально «переполнением стека»:

Фреймворки и библиотеки пользовательского интерфейса JavaScript работают циклически. Примерно каждые шесть месяцев появляется новый, утверждающий, что он произвел революцию в разработке пользовательского интерфейса. Тысячи разработчиков внедряют его в свои новые проекты, пишутся сообщения в блогах, задаются вопросы и ответы на них, а затем появляется новый (и даже более революционный) фреймворк, чтобы узурпировать трон.

В прошлом году аналогичным образом ReactJS узурпировал трон у AngularJS. Повторяется тот же цикл. Многие разработчики, работающие над нашими проектами AngularJS, просили сменить руку, и я обратился с требованием к своему боссу.

Это была легкая прогулка. Я записался на прием, встретился с ним сразу после обеда, когда он был в лучшем настроении, с упаковкой конфет, похвалил его управленческие навыки и то, как хвалят все сотрудники, и вуаля, он не только одобрил все требования, но и настоял на том, чтобы миграция закончилась. в кратчайшие сроки.

Если бы все было так просто. Скорее, он убедил меня в том, что в данный момент миграция не нужна. Когда я сказал ему, что все разработчики настаивают на миграции на React, он сказал мне представить подробное предложение, включая долгосрочные денежные выгоды.

Полезный совет: используйте Bit (Github) для инкапсуляции компонентов и создания действительно модульных приложений. Легко делитесь своими компонентами и синхронизируйте их между проектами, чтобы ускорить разработку и упростить обслуживание.



Год миграций

Только в 2018 году мы получили около сотни писем от разработчиков, работающих над нашими приложениями AngularJS, с одним вопросом: «Когда мы перейдем на React?» У них практически нет полномочий принимать решения, и кому-то приходилось убеждать моего босса от их имени. Я взялся за эту работу, и она мне не очень понравилась. Я упоминал об этом? Двое из трех советников моего босса не являются разработчиками. Бармену сложно объяснить теорию относительности. Они задавали мне вопросы после вопросов о React и AngularJS. И мальчик, это были сложные вопросы. Конечно, я не смог их все взломать. Но в конце концов я убедил его перейти на React.

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

Взгляд деловых людей на технологическую миграцию

«Деловая точка зрения»

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

Независимо от того, переноситесь ли вы из одного офиса в другой или с одной технологии на другую, миграция обходится дорого. Убедив своего начальника одобрить переход на React, вы фактически заставляете его поверить в то, что долгосрочные выгоды затмевают затраты.

Убедите себя в первую очередь с технической и деловой точки зрения

Если вы собираетесь рассказать своему боссу о AngularJS to React Migration, вам нужно сначала рассказать об этом себе. Если идея кодирования на JSX привлекает вас, потому что писать это весело, то поверьте мне, вы еще не в состоянии продвигать эту идею. Fine JSX объединяет HTML и JavaScript в компонентах React, но в этом есть выгода для бизнеса. Мой босс проявил особый интерес, когда я сказал ему, насколько быстрее писать код JSX, чем обычный JavaScript. Более быстрое кодирование означает меньшее количество человеко-часов, что означает меньшие затраты и усилия и более быстрое время вывода продукта на рынок.

Так что это был звонок с моим боссом. Он отдыхал на Гавайях, и я хотел убедиться, что у меня есть действительно веские основания убедить его в пользу миграции. Я каким-то образом убедил всех трех его советников, и он был единственным, кто мешал мне. Конечно, если вы не Apple, у вас нет дополнительной кучи денег, лежащей где-нибудь в Калифорнии. Как босс, он должен получать большую часть прибыли. Это был огромный проект по переносу семидесяти уникальных веб-сайтов на ReactJS. Но мой босс был непреклонен.

Десятки презентаций, официальных документов и видеозвонков со мной, разработчиками React и бизнес-разработчиками, но он все еще не был убежден. Последним средством для нас было полететь на Гавайи и убедить его лично. В качестве последней попытки перед «миграцией» в США мы создали демонстрационный сайт в React, позволяющий пользователям настраивать 3D-модель автомобиля в соответствии с их требованиями. Могли добавить свежий слой краски, спойлер, наклейки, новый комплект покрышек и т. Д. Мой босс убедил долго дышать.

Не говори, покажи: аналогии, справка по бизнес-примерам

В его жилах течет автомобильная ДНК. В нашей предыдущей презентации было слишком много технических особенностей React: Virtual DOM, JSX, Redux, Components и т. Д., И, естественно, он сочетал их с особенностями автомобилей. Характеристики автомобилей ориентированы на клиента, в то время как функции, которые мы добавляли в предложение, были ориентированы на разработчиков. Мы осознали проблему немного позже, и наша стратегия «показать это» убедила его, не считая нас отчаявшимися. React заставил нас создать такой требовательный веб-сайт за пару дней, и он был отзывчивым на большинстве устройств. Это сняло весь высказанный им скептицизм.

Нарушение односторонней привязки данных к моему боссу

Односторонняя, нисходящая привязка данных - захватывающая функция React, которая заставляет многих разработчиков встать на ее пути. Так как бы вы объяснили это генеральному директору, у которого нет опыта разработки? Я не могу перестать говорить об этой аналогии. Это был первый раз, когда я объяснял своему боссу одностороннюю привязку данных. Это был непростой вопрос, чтобы понять неопытного.

Я объяснил ему эту концепцию с помощью аналогии с трубопроводом. Я спросил его, как он спроектирует систему трубопроводов для многоэтажного дома. Он дал мне ожидаемый ответ: перекачайте воду в верхний резервуар и раздайте всем, кто внизу. Я спросил его, построит ли он систему трубопроводов, в которой вода тоже может течь вверх. Он выглядел смущенным. Затем я спросил его, почему он все еще настаивает на AngularJS? Это был захватывающий момент.

Создавайте необходимость, не продавайте роскошь

У большинства компаний нет бюджета на роскошь, и если вы думаете, что они собираются перенести весь свой технологический стек на React только потому, что их разработчикам нравится кодировать на JSX, вы живете одной большой ложью. Деловое решение основано на многих факторах, роскошь не входит в их число, а стоимость является доминирующим фактором. Бизнес осуществит миграцию, когда это будет абсолютно необходимо, и выхода нет. Судьба AngularJS приведет к тому, что переход на другую библиотеку или фреймворк JavaScript станет крепким орешком для многих, пытающихся убедить людей в принятии решений. Есть причина, по которой деловые отношения основаны на доверии и ценностных предложениях, а не на удобстве и опасениях. Период!

Учить больше







📝 Прочтите этот рассказ позже в Журнале.

👩‍💻 Просыпайтесь каждое воскресное утро и слушайте самые интересные истории недели в области технологий, которые ждут вас в вашем почтовом ящике. Прочтите информационный бюллетень« Примечательно в технологиях .