Мы говорим об этом поколении пользователей и их растущей нетерпимости к пятисекундной задержке загрузки страницы или к слишком большому количеству уведомлений и рекламы. Видите ли, изменения коснулись не только вашего пользователя, но и вашего разработчика, который ожидает гораздо большего от инструментов, которые они выбирают. Мгновенное удовлетворение делает наше поколение вечно нетерпеливым. Раньше клиентская часть вашего приложения представляла собой тонкий слой HTML, файлов cookie, параметров запроса и заголовков запросов. Ваш сервер в конечном итоге взял бы на себя весь тяжеловес. Это означало, что на один запрос веб-сайта будет дан ответ, отображая всю веб-страницу.

Сегодня веб-сайты могут похвастаться достаточно мощным интерфейсом для создания изящных одностраничных приложений (СПА), обеспечивающих пользовательский интерфейс, как на настольных компьютерах. Перед тем, как решить, какой инструмент JavaScript сделает это возможным, важно выполнить необходимое количество домашних заданий. Эта работа превращается в проблему с растущим количеством вариантов. Ваш выбор того, какой инструмент использовать, повлияет на сроки выполнения вашего проекта, ремонтопригодность кода и масштабируемость. AngularJS и Ember.js - это JavaScript-фреймворки с открытым исходным кодом, основанные на шаблоне проектирования Model View Controller (MVC), известные тем, что помогают создавать масштабируемые, высокопроизводительные и гибкие приложения, привнося структуру в ваш код и сохраняя его организованность. Оба используют совершенно разные философии дизайна для достижения своих целей. Ниже мы встретим их лицом к лицу и сравним их достоинства и недостатки при взаимодействии с серверной частью на базе Rails.

Сравнение

AngularJS и Ember.js не зависят от серверной части. Сохранять независимость серверной части - хорошее правило, поскольку клиентская часть набирает обороты. Это решение избавит вас от некоторых проблем в будущем, когда вы захотите изменить свой интерфейс через год или два. Постарайтесь поддерживать REST на сервере и следовать стандарту для создания API-интерфейсов в JSON, тогда вы сможете свободно выбирать, какой фреймворк лучше всего подходит для вашего контекста.

AngularJS

AngularJS позволяет разрабатывать одностраничные приложения (SPA), расширяя функциональность HTML с помощью директив. Проще говоря, это ваш HTML-код, предназначенный для создания веб-приложений.

  • AngularJS - отличный выбор, если у вас мало времени и вам нужно создать элегантное приложение небольшого или среднего размера. Скорее всего, эти приложения не столкнутся с узким местом «грязной проверки». Это означает, что вы можете использовать все преимущества использования ванильных объектов JavaScript в качестве моделей, такие как простота и скорость кодирования.
  • AngularJS также является хорошим выбором, поскольку в будущем он, вероятно, будет значительно расти благодаря поддержке большого сообщества.
  • AngularJS намного быстрее и свободнее со своими соглашениями. Вы видите, что AngularJS делает упор на то, чтобы ваше приложение быстро запускалось и запускалось, поэтому оно, как правило, требует большой свободы действий. Использование объектов JavaScript для моделей требует компромисса с использованием «грязной проверки», которая влияет на производительность вашего приложения. Это не очень сложный процесс, он значительно замедляет работу и может оказаться кошмаром для обслуживания.
  • Тем не менее, с выпуском Angular 2.0 теперь можно воспользоваться преимуществами рендеринга на стороне сервера и избежать ошибок «грязной проверки».

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

Ember.js

  • Ember охватывает концепции нативных фреймворков, таких как Apple Cocoa, и сочетает их с легковесными функциями, которые поставляются с фреймворками с открытым исходным кодом, такими как Rails, для создания динамических, красиво отрисованных SPA, которые хорошо масштабируются. Платформа обеспечивает подход на основе URL-адресов для структурирования различных приложений и универсальной привязки данных.
  • Ember.js - это отличный интерфейсный фреймворк, который прост в обслуживании и чрезвычайно стабилен. Ember.js поможет вашим разработчикам кодировать в соответствии с передовыми практиками, чтобы избежать создания узких мест, таких как грязная проверка.
  • Ember во многом поддерживает идеологию Rails, например, «условность важнее конфигурации». Ember CLI (структура командной строки) делает разработку похожей на написание Rails: строгие соглашения, отличный конвейер ресурсов и отличная поддержка развертывания.
  • Ember - отличный выбор для приложений, которые хотят масштабироваться в гораздо более крупные проекты.
  • Рассмотрим Ember, даже если ваше приложение должно оставаться меньшего размера, поскольку оно обеспечивает более быструю загрузку и внутреннюю стабильность.
  • Недостатком является то, что основная команда очень медленно разрабатывает свои функции, а последние несколько версий Ember были в основном второстепенными, не приносившими ничего нового.
  • Меньше места для настройки всего.
  • У Ember гораздо более крутая кривая обучения, чем у AngularJS.

Теперь, прежде чем списывать со счетов Ember из-за его сложности, подумайте, почему разработчики добавили все это лишнее. Ember похож на набор инструментов с достаточным количеством концепций, чтобы сделать его достаточно полезным для создания обслуживаемого и большого приложения. Компромиссы, которые он сделал в своем API, призваны помочь вашим разработчикам разумно структурировать ваш код.

Вывод

И AngularJS, и Ember выполняют одну и ту же работу, разрабатывая динамические SPA с привлекательным UI / UX. Но их философия дизайна различается.

Angular в настоящее время является наиболее популярным из этих двух. Вы можете использовать его как единое окно, и это предпочтительный фреймворк для многих крупных предприятий. Он также поддерживается Google, который, как известно, на шаг впереди конкурентов. Если вы имеете дело с более простым SPA, который должен улучшить взаимодействие с пользователем, возможно, нет смысла интегрировать Ember, поскольку приложение Angular хорошо справится с этой задачей. Ember - лучшее решение, если вам нужен комплексный фреймворк. Ember принимает множество решений за вас, поэтому вам не нужно тратить время на изучение и объединение библиотек. Очевидно, что явного победителя нет. Как только вы определитесь со своими задачами, вы сможете увидеть, какая структура лучше других соответствует требованиям вашего проекта.

Первоначально опубликовано в блоге Product Insights от CognitiveClouds: вверху Компания по разработке Ruby on Rails

Эта история опубликована в The Startup, крупнейшем предпринимательском издании Medium, за которым следят более 299 352 человек.

Подпишитесь, чтобы получать наши главные новости здесь.