AngularJS, Backbone.js или Ember.js - какой выбрать для вашего проекта?

  1. Вступление
  2. AngularJS
  3. ПЛЮСЫ:
  4. видение
  5. МИНУСЫ:
  6. Директивы
  7. ember.js
  8. ПЛЮСЫ:
  9. видение
  10. Компонентная модель
  11. МИНУСЫ:
  12. Backbone.js
  13. ПЛЮСЫ:
  14. Контроль производительности
  15. МИНУСЫ:
  16. Архитектура
  17. Утечка памяти
  18. Заключение
  19. Что выбирают другие
  20. Другие должности в этой серии с Крейгом Маккичи:

Эта серия сравнения JavaScript основана на сеансе Codementor Office Hours с Крейг Маккичи автор Руководство по JavaScript Framework. Давайте поговорим о плюсах и минусах AngularJS, Backbone.js и Ember.js, чтобы помочь вам лучше решить, какую инфраструктуру JavaScript MV * выбрать для вашего проекта.

Вступление

Несмотря на то, что я в основном пришел из .NET и пробирался в некоторых Rails и PHP по ходу дела, в течение последнего года или около того я полностью освоился с изучением фреймворков JavaScript. Я консультировался с бизнесом в течение нескольких лет, поэтому я думаю, что могу понять перспективы большинства людей, независимо от того, приходят ли они с точки зрения СМИ или с точки зрения предприятия. Я постараюсь дать вам непредвзятый анализ здесь, хотя, какие рамки вы выбираете, зависит от ваших потребностей. Если бы я пришел сюда и просто сказал «это лучше, чем этот», я думаю, это было бы нечестно. Итак, вот несколько плюсов и минусов каждой основы.

AngularJS

AngularJS

ПЛЮСЫ:

тестирование

Если вы работаете в корпоративном магазине, особенно с опытом работы с Java или Ruby on Rails, вам действительно понравится то, что Angular предлагает в плане тестирования. В то время как другие веб-фреймворки могут поддерживать тестирование, Angular выходит за рамки этого и имеет встроенное внедрение зависимостей, что является большим плюсом для Angular, если вы действительно заботитесь о тестировании.

видение

AngularJS всегда настаивал на поддержке браузера. Кроме того, он думал о поддержке мобильных устройств раньше других платформ, наряду с ECMAScript 6 и веб-компонентами. Таким образом, команда AngularJS очень дальновидна и обладает дальновидностью.

МИНУСЫ:

Встроенный маршрутизатор

Большинство людей фактически не используют маршрутизатор в AngularJS. Конечно, есть альтернатива с открытым исходным кодом, AngularUI Router и там было на самом деле Часы Codementor Office Дином Софером , который является частью команды AngularUI, кто кратко говорит об этом. AngularUI Router в основном устраняет эту слабость, но, если честно, сравнивая фреймворк с фреймворком прямо, Ember был первым там с действительно сильным роутером, в то время как родной роутер Angular не так уж и хорош.

Например, если у вас есть список элементов и сведения об этих элементах, в приложении Ruby on Rails вы могли бы представить / list-route, а затем / details-itemID для подробностей. Однако на самом деле люди захотят видеть список и подробности на одной странице, им может понадобиться список в левой части меню. Когда они нажимают на элемент, они ожидают, что смогут детализировать его детали. Хотя этот вид сложного взаимодействия возможен с базовым маршрутизатором Angular, вы бы на самом деле прятались и показывали вещи, которые не очень родные. У вас нет возможности поместить код в отдельное изолированное место для подробного просмотра и поместить представление списка в отдельное изолированное место.

Напротив, если у вас есть надежный маршрутизатор, как в Ember или AngularUI, у вас будет вложенное представление, где подробный маршрут будет находиться под маршрутом списка и может быть составлен или разделен во вложенной иерархии, которая является супер мощный. Кроме того, маршрутизатор Ember и AngularUI также позволяет вам иметь именованные представления, что полезно, если вы собираетесь разделить страницу на верхний и нижний колонтитулы, боковую панель, левую навигацию и т. Д. По сути, именованные представления также позволят вам иметь изолированный набор кода, контроллер (в случае Angular) и область действия для каждой из этих частей, чтобы вы могли составлять их. На родном Angular роутере такой функции нет. Команда Angular в настоящее время переписывает маршрутизатор для своей новой платформы, и подробности об этом не были опубликованы. Тем не менее, с AngularUI Router, это не должно быть проблемой при выборе используемой платформы.

Директивы

Директивы - это ключевая особенность Angular, а также большая слабость, потому что очень многим людям трудно их писать. Angular говорит об исправлении этого в более новых версиях, но в настоящее время директивы могут сделать Angular довольно трудным для некоторых разработчиков.

ember.js

js

ПЛЮСЫ:

Маршрутизатор

Как упоминалось ранее, встроенный маршрутизатор Ember очень сильный. Это полный конечный автомат, как и AngularUI Router для Angular.

видение

Ember отлично справился со своим видением, таким как предварительный просмотр object.observe (), следование по пути Angular, раннее обдумывание веб-компонентов и т. Д.

Компонентная модель

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

МИНУСЫ:

тестирование

Ember не выполняет грязную проверку, которая часто встречается в Angular. Они используют геттеры и сеттеры, и вам нужно помнить их, чтобы получить доступ к свойствам ваших объектов. Это может быть боль, потому что вы можете забыть и на самом деле просто. в собственность, а затем получить странную ошибку в приложении. Затем вам придется потратить некоторое время на отслеживание этой ошибки, так что это не так естественно, как иметь свойства, которые являются просто необработанными, простыми объектами JavaScript, как в Angular.

Backbone.js

js

ПЛЮСЫ:

облегченный

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

Контроль производительности

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

МИНУСЫ:

производительность

Поскольку Backbone больше похож на библиотеку, а это значит, что она не пытается навязать вам свое мнение, это также означает, что она не так вам помогает и не пишет для вас столько кода.

Это не значит, что вы не собираетесь работать с магистралью, но у вас наверняка будет больше кода для написания. Основной причиной этого будет отсутствие двухсторонней привязки данных, что является ключевой особенностью, которую многие люди действительно любят в Angular и Ember.

Архитектура

Поскольку у Backbone нет единого мнения, архитектура порой неясна, что может усложнить ускорение работы с некоторыми вещами.

Утечка памяти

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

Заключение

Что касается Angular и Ember, то это будет разумный выбор. Backbone может показаться менее предпочтительным, хотя на самом деле это связано с поколениями того, что происходило при создании богатых JavaScript-приложений.

Сначала был простой старый JavaScript, в котором никто не хотел писать его, когда это было из-за всех кросс-браузерных проблем. Затем появился jQuery, и, поскольку он может быть назван библиотекой манипуляций с DOM, он устраняет проблемы кросс-браузерности. Он также имел AJAX API, который позволял многое, так что это был своего рода второй шаг в эволюции создания приложений JavaScript.

Третье поколение будет Backbone и Knockout. Эти двое возникли потому, что в тот момент люди осознавали, что не могут повторно использовать код и страницы, когда пишут приложения jQuery, и им казалось, что они пишут эти вложенные коды. Конечно, они могли написать хороший код jQuery, но это не всегда приводило их к успеху. Обещания улучшают ситуацию, но вы все равно можете быстро сломать кнопку возврата, сделав несколько вызовов AJAX с вашим кодом jQuery. По мере того, как вы создаете больше своего приложения на JavaScript, вы в конечном итоге оказались на грани jQuery. Backbone помог сделать код чище, и было много микро-фреймворков, конкурирующих с ним, но Backbone победил. Кроме того, людям действительно понравилась двухсторонняя привязка данных в Knockout.

Наконец, пришла следующая эволюция фреймворков - Angular и Ember. Они собрали все идеи о том, что людям понравилось, и составили более инклюзивную структуру, а не библиотеку.

Поэтому, если вы думаете о поколениях эволюции JavaScript, лично я предпочел бы использовать инструменты нового поколения. Однако, как упоминалось ранее, есть исключения из этого, и наиболее распространенным является производительность. В Angular и Ember для вас происходит много магии, и благодаря этой магии, особенно в области привязки данных, вы можете столкнуться с некоторыми проблемами с производительностью, особенно на мобильных устройствах.

Команда Angular в некотором роде признала эту проблему, и в новейшей версии (1.3), которая только что вышла недавно, одной из основных особенностей была улучшенная производительность.

С другой стороны, если вы посмотрите на то, что делает команда Ember помимо инструментов разработки, вы заметите их проект HTMLbars. Это как бы революционизирует их подход к привязке данных, а также их подход к DOM и их шаблонизатор. В результате Ember стал намного быстрее.

Таким образом, в ранних версиях Angular и Ember были проблемы с производительностью на мобильных устройствах, если у вас было много элементов на странице, тогда как в Backbone у вас мог быть точный контроль над вещами. В целом, какой фреймворк вы выберете, будет зависеть от того, что вы делаете с фреймворком, но, надеюсь, это даст вам простую идею.

Что выбирают другие

Для меня было бы субъективно говорить о том, что я вижу больше, но вы можете взглянуть на онлайн-статистику из github, а также на вопросы о переполнении стека, чтобы получить представление. Исходя из моего опыта, связанного с приобретением корпоративных тренировок, Angular явно имеет преимущество в популярности перед Ember, но в последние несколько недель он объявил о выходе новой версии 2.0, и Ember стал сильным.

Если вы находитесь в магазине Rails и у вас много разработчиков Rails, вы можете подумать об Ember, потому что соглашения очень похожи. Это потому, что один из основных участников Ember был в основной команде jQuery и в Rails, а сейчас он является создателем Ember вместе с Томом Дейлом и другими людьми. Итак, в основном Ember очень дружелюбен к разработчикам Rails с точки зрения встроенных инструментов и опыта разработчиков.

Кроме того, если вам действительно интересны URL-адреса и SEO, и вы все еще хотите использовать одну из этих многофункциональных платформ, встроенный маршрутизатор Ember сделает ее более дружественной к SEO. Однако JavaScript Framework, SPA и SEO, как правило, не совместимы, и вы можете Об этом подробнее здесь ,

Другие должности в этой серии с Крейгом Маккичи:

Кодментатор Крейг Маккичи был разработчиком программного обеспечения в течение почти 20 лет, в основном в стеке Microsoft. В какой-то момент он был сертифицированным тренером Microsoft, хотя в последние годы он стал гораздо больше интересоваться интерфейсной разработкой (HTML, CSS и JavaScript), удобством использования и пользовательским опытом после работы в качестве консультанта в нескольких различных цифровых интерактивных агентства по проектам.

Если вы заинтересованы в книге Крейга Руководство по JavaScript Framework но предпочел бы поговорить с ним один на один, чтобы принять ваше решение, Крейг предлагает его книгу и видео (стоимостью $ 99) бесплатно, если вы запланировать часовую сессию с ним на Codementor. Если вы запланируете 2 часа, он добавит пакет следующего уровня (стоимостью $ 249, который включает в себя ng-book). Вы получите пакет команды (стоимостью $ 999) бесплатно, если вы запланируете с ним 4-часовую сессию.

Нужна помощь Крейга Нужна помощь Крейга? Закажите сеанс 1 на 1!

Посмотреть профиль Craig
или же присоединяйтесь к нам в качестве наставника-эксперта !

Похожие

30 минут или меньше - 30 минут или около того (2011) - Filmkritika
Оригинальное название / венгерский адрес: 30 минут или меньше / 30 минут или около того Премьер 13 октября 2011 Я был немного разочарован. Я начинаю этот путь, потому что в целом это не плохая комедия, но я просто ждал большего
SEO против Adwords: что работает лучше для вашего бизнеса?
Продолжаются споры о том, какой маркетинговый канал лучше для привлечения трафика и ценности для вашего бизнеса - SEO или Adwords. Ответ сильно варьируется и зависит от характера вашего бизнеса. Прежде всего, давайте сначала определим SEO и Adwords, чтобы вы получили лучшее представление, которое будет работать лучше для вашего конкретного маркетинга.
Что такое SEO? Что такое SEO? (Часть 1)
Я думал об этом уже несколько месяцев, и недавно мне пришлось ответить на 3 запроса котировок, по которым я должен был объяснить, что такое SEO (включая 2 для веб-агентств в любом случае ...) , Таким образом, вместо того, чтобы тупо копировать / вставлять электронные письма, так как одно раз и навсегда четкое определение в блоге, это позволит всем легко получить к нему доступ, это позволит мне отправлять своих клиентов в мой блог ( и так, чтобы выиграть 3 посещения в месяц, youpi), но особенно
Что такое поисковая оптимизация SEO
Ищете цифровое агентство, которое предоставляет SEO в Анталии? Вы в нужном месте. Прежде всего, позвольте нам дать вам предварительную информацию о SEO. Поисковая оптимизация Что такое SEO. Возможно, это самая сложная работа, которую пытаются решить цифровые агентства. Так что же это за поисковая оптимизация? Это создание платформы, которая будет любима как поисковыми системами, так и пользователями интернета,
Инфографика: что нового в Joomla 3.3?
Тема этого Joomla Релиз "Делай больше с Joomla ! " . Да, вы все правильно поняли, но вы можете спросить, что у нас всегда есть больше вещей, чтобы играть с каждым
SEO Предсказания 2013: на что смотреть
«Это сезон размышлений и SEO-прогнозов, и да, вот еще один на 2013 год: SEO и поисковый маркетинг в наступающем году увидят тенденции в области ранжирования данных и инструментов SEO, которые работают в соответствии с условиями обслуживания Google, Брюс Клэй в своих прогнозах на 2013 год больше интересуется графиком знаний Google и распространяет спам в социальных сетях. Хотите узнать больше об этих SEO прогнозах на 2013 год? Ознакомьтесь с историей о новостях SEO этого месяца: «
Интернет-маркетинг: что такое SEM / SEO?
* Обновление 2014 * Вопрос о разнице между SEM и SEO по-прежнему затрагивает многих людей сегодня, и мы видим многочисленные хиты в этой статье блога каждый день в 2010 году. Однако многое изменилось за последние четыре года. Причина достаточно, чтобы сделать небольшое обновление. По сути, все чаще и чаще говорят о поисковой рекламе (SEA), когда говорят о платных результатах поиска. Термин поисковый маркетинг (SEM) в настоящее время используется как общий
SEO для вашего профиля Linkedin
Конечно, вы когда-нибудь задумывались, как ваш профиль Linkedin может показываться на верхних позициях результатов поиска, связанных с вашим профессиональным опытом. Что ж, я хочу предложить несколько «хитростей», которые сработают и могут повысить
Что учиться работать в SEO?
Работа в SEO включает в себя выполнение процесса внутренней и внешней оптимизации веб-сайта для получения более высокого рейтинга в результатах различных поисковых систем, чтобы создать более органичный трафик для определенной сети. Большинство из тех, кто работает в этой профессии, обычно сосредотачивают свои поиски на Google, потому что именно поисковая система используется большинством людей. Менеджер
Что случилось с Google PageRank?
PageRank, кажется, ушел, но почему? В течение многих лет Google PageRank был одним из лучших способов, с помощью которого SEO могли подвести итог тому, что Google думал о странице. Раньше SEO-специалисты могли смотреть на PageRank и мгновенно узнавать, почему что-то было оценено ниже, чем должно быть. В прошлом году, однако, PageRank упал в рейтинге с точки зрения инструментов SEO. Вопрос почему? Ну, ответ на самом деле удивительно прост. Последний раз PageRank
Seo Services: почему выбирают их?
Возможностей, которые обещают сделать сайт более популярным, в настоящее время достаточно много, поэтому часто возникает вопрос о том, какие из них могут быть наиболее выгодными. Тем не менее, один из самых популярных

Комментарии

Что действительно имеет большое значение, так это качество вашего сайта и тот тип ссылок, на которые вы указываете, а не «Зарегистрирован ли мой сайт в течение 3 или 4 лет вместо 1 или 2 лет?
Что действительно имеет большое значение, так это качество вашего сайта и тот тип ссылок, на которые вы указываете, а не «Зарегистрирован ли мой сайт в течение 3 или 4 лет вместо 1 или 2 лет?» Должны ли мы регистрировать домены на более длительный период? Технически говоря, Мэтт Каттс дал довольно дипломатический ответ, он не отрицает и не принимает этот факт полностью. Насколько нам известно, нам не следует сильно беспокоиться о длине регистрации домена, поскольку
И согласны ли вы со мной, что вы обычно узнаете больше, глядя на то, что другие делают правильно или неправильно?
И согласны ли вы со мной, что вы обычно узнаете больше, глядя на то, что другие делают правильно или неправильно? Вы хотите знать, что, когда дело доходит до SEO, вы можете узнать на сайтах наших яростных кампаний политических партий? Какой ум они используют? Какие ошибки они делают? Тогда вам будет интересна эта SEO-проверка сайтов политических партий, участвующих в выборах в нижнюю палату. Обязательно читайте дальше, для обучения и развлечений. Я попросил нашего
Если вам нравится ссылка на Facebook, или вы ретвитите свой любимый пост в Твиттере, или даете пост, который вам понравился +1, это означает, что вам понравился пост, верно?
Если вам нравится ссылка на Facebook, или вы ретвитите свой любимый пост в Твиттере, или даете пост, который вам понравился +1, это означает, что вам понравился пост, верно? Поисковые системы в эти дни дают сообщения с хорошими социальными реакциями более приоритетными в поисковой выдаче. Бонусом будет увеличение трафика с этих сайтов социальных сетей для вашего контента. Вы можете использовать кнопки социальных сетей на своем сайте и получить эти преимущества. 20. Просмотрите и оптимизируйте
И вы думаете, что большинство людей в конечном итоге перестанут пытаться «поиграть» в систему, или вы чувствуете, что это всегда будет частью цифровой эпохи?
И вы думаете, что большинство людей в конечном итоге перестанут пытаться «поиграть» в систему, или вы чувствуете, что это всегда будет частью цифровой эпохи? Ваше мнение имеет значение здесь, ребята, так что посмотрите вперед со мной и добавьте свои мысли ниже. Загрузите БЕСПЛАТНУЮ копию моей страницы 230 Входящий и контент-маркетинг - это просто
Какой издатель или продавец книг никогда не сталкивался с дилеммой, когда лучше всего издавать книгу или выдвигать ее в своем книжном магазине?
Какой издатель или продавец книг никогда не сталкивался с дилеммой, когда лучше всего издавать книгу или выдвигать ее в своем книжном магазине? Опыт, конечно, помогает в этом решающем выборе. Тем не менее, некоторые инструменты могут дать нам ценную информацию по самым популярным темам в соответствии с периодами. Google Trends является одним из таких инструментов. Google Trends Google Trends является одним из многих инструментов, которые
Как правильно выбрать SEO Expert для вашего проекта?
Как правильно выбрать SEO Expert для вашего проекта? SEO выступает за поисковую оптимизацию. Есть несколько способов оптимизировать сайт для повышения рейтинга в ведущих поисковых системах, таких как Google, Yahoo и Bing.com. Исследуйте в Google эти компании. Посмотрите их отзывы на Google, Yelp и FaceBook. Протестируйте собственный сайт экспертов SEO и убедитесь, что они действительно используют SEO для привлечения клиентов. Используйте бесплатные
Так что остается только один вопрос - как выбрать лучшую компанию SEO для вашего бизнеса?
Так что остается только один вопрос - как выбрать лучшую компанию SEO для вашего бизнеса? Ответ сложный. Это будет варьироваться от компании к компании, но, как правило, именно так вы можете найти своего идеального партнера по SEO. Если вы хотите поговорить со специалистом перед просмотром видео, вы можете связаться с нами по телефону 888-601-5359. Видео: Как выбрать свое SEO агентство Шаг 1 Получить список семян
Не уверены, что измерить или какой KPI использовать в качестве эталона?
Не уверены, что измерить или какой KPI использовать в качестве эталона? Вот несколько идей: Среднее время, проведенное на вашем сайте Причина: когда посетитель задерживается на вашем сайте в течение минуты или меньше, вы можете считать его пребывание незначительным. Когда посещение превышает это время, у посетителя появляется больше возможностей стать клиентом и повышается вероятность конвертации в ваши призывы к действию. Если посетитель тратит
Оправдывает ли предоставляемая ими информация то, что она стоит, или это просто много бесплатной и перефразированной информации, за которую не нужно платить, потому что ее можно найти в Интернете?
Оправдывает ли предоставляемая ими информация то, что она стоит, или это просто много бесплатной и перефразированной информации, за которую не нужно платить, потому что ее можно найти в Интернете? На самом деле, не углубляясь в то, что представляет собой этот план, невозможно точно знать наверняка, вы должны внимательно посмотреть на информацию и решить, стоит ли вам попадать в ваш кошелек или нет. В этой статье мы обсудим полную историю этой программы онлайн-наставника, а также то, что она может
Но что, если он появляется на четвертой или пятой странице, несмотря на то, что он плохо написан?
Но что, если он появляется на четвертой или пятой странице, несмотря на то, что он плохо написан? Это почти наверняка делает его кандидатом на переписывание. 1) исправить длину Длина статьи является хорошо известным фактором для получения лучших результатов от поисковые системы , «Хорошо написанная длинная статья, которая содержит глубину, понимание, хорошую грамматику и высококачественную
Вы нанимаете бухгалтера, потому что он хорошо выглядит, хорошо говорит или потому, что он работал во многих компаниях?
Вы нанимаете бухгалтера, потому что он хорошо выглядит, хорошо говорит или потому, что он работал во многих компаниях? Сколько из этих черт связано с реальной работой бухгалтера? Кроме того, вам нужно смотреть за пределы поверхностности, внешнего вида, чтобы привлечь компанию веб-сайта SEO. В своем исследовании решите, что вам нужно, имейте в виду цель, которая позволит вам измерить успех вашего взаимодействия с вашим SEO-агентством, а затем сделайте эту цель центром вашего общения с различными

Нужна помощь Крейга?
Что такое SEO?
Что такое SEO?
Так что же это за поисковая оптимизация?
Хотите узнать больше об этих SEO прогнозах на 2013 год?
PageRank, кажется, ушел, но почему?
Вопрос почему?
Что действительно имеет большое значение, так это качество вашего сайта и тот тип ссылок, на которые вы указываете, а не «Зарегистрирован ли мой сайт в течение 3 или 4 лет вместо 1 или 2 лет?
» Должны ли мы регистрировать домены на более длительный период?
И согласны ли вы со мной, что вы обычно узнаете больше, глядя на то, что другие делают правильно или неправильно?