За последние пару лет команда DashBouquet реализовала множество различных проектов, среди которых были проекты на Angular, Angular2 и React. Поскольку современные тенденции развития включают использование таких огромных библиотек, многие разработчики спорят, какая из них лучше. Поскольку мы работали как с Angular, так и с React, мы хотим поделиться своим мнением, поговорить о плюсах и минусах каждой из них и дать несколько рекомендаций по наилучшему использованию каждой библиотеки.

Несколько лет назад мы начали работать с Angular, и с тех пор у нас есть более 50 проектов, разных по размеру и стекам технологий. В своей работе мы стремимся постоянно повышать производительность и тратить как можно меньше времени, в то же время добиваясь неизменно отличных результатов. Поэтому крайне важно использовать самые лучшие и эффективные инструменты и быстро решать, какие из них стоит использовать, а какие нет.

Вот таблица, в которой мы приводим плюсы и минусы Angular и React:

Разработчики склонны выбирать Angular вместо React, что является преимуществом, потому что в этом сценарии удобнее работать с фреймворком. Кроме того, тенденции Google подтверждают наше мнение о популярности Angular.

У нас были десятки проектов Angular, и все они имели одну общую черту - Angular всегда идеально подходил для быстрых и относительно простых решений пользовательского интерфейса. Итак, если у вас есть приложение со сложной бизнес-логикой, лучше выбрать React + Redux.

Еще один недостаток Angular - высокая вероятность появления побочных эффектов. Например, если вы ошиблись в процессе работы, это наверняка приведет к другому и так далее. Кроме того, вы привлечете больше разработчиков для работы над проектом, а побочные эффекты будут накладываться друг на друга. А при масштабировании станет действительно легко потерять контроль над качеством. Напротив, при работе с Angular2 и React таких проблем не возникало из-за предсказуемых состояний контейнеров и неизменяемых объектов.

У Angular также есть проблема, которую мы называем проблемой обезьяны / банана. То есть, если вы хотите дать обезьяне банан и посмотреть, как обезьяна с этим справится, вам нужно сначала построить целые джунгли. В отличие от Angular2, с React вы можете легко получить больше тестируемых компонентов из-за развитой экосистемы.
Что касается минусов React и Angular2, одна из самых больших проблем - отсутствие хороших разработчиков. Несмотря на то, что React - это довольно маленький фреймворк, разработчикам еще предстоит учесть множество вещей: управление состоянием, взаимодействие с сервером, тестирование и так далее.

Это лишь часть всех наших мыслей о трех фреймворках. Поскольку в Dashbouquet мы никогда не бываем предвзятыми, наш честный выбор - React + Redux / Saga. Мы предпочитаем его, потому что в основном работаем с большими и сложными приложениями. Однако мы не против больше работать с Angular и получать больше опыта с ним.

Автор Антон Шалейников

Хакерский полдень - это то, с чего хакеры начинают свои дни. Мы часть семьи @AMI. Сейчас мы принимаем заявки и рады обсуждать рекламные и спонсорские возможности.

Если вам понравился этот рассказ, мы рекомендуем прочитать наши Последние технические истории и Современные технические истории. До следующего раза не воспринимайте реалии мира как должное!