Luxoft Java Hiring Week - $2000 бонусу, круті проекти та подарунки! Реєструйся!
×Закрыть

Что такое Ember?

Я начинаю повторяться, предыдущая статья называлась «что такое Front-end», но вряд ли это статья, небольшая заметка для тех, кто с Ember незнаком.

Забегая наперед, Ember — это продукт что решает конкретную проблему, теперь позвольте объяснить подробнее.

Рассмотрим Angular/React или любой другой понравившийся фреймворк. Суть такова, сначала появляется инструмент, а потом он набирает популярность.

— Чем проще фреймворк — тем быстрее он набирает почитателей.
— Чем больше функционал фреймворка — тем больше его максимальный размер сообщества.

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

Ember не такой.

Если смотреть на странны бывшего СССР, то у нас вообще мало кто знает про Ember, а ведь его первая версия выпущена еще в 2011 году и с тех пор он стабильно держится на рынке.

Как я говорил ранее, Ember решает конкретные проблемы, сообщество эмбера значительно отличается от сообществ большинства проектов.

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

А Ember? Ну конечно это в какой-то мере тоже так, но представьте себе на секунду, встречаются в оффлайне представители ряда компаний и каждый говорит «у нас с ембером возникла такая проблема...» а вместе они решают что делать и как решить эти проблемы. Все эти люди установили между собой ряд четких правил и выработали ряд решений ситуаций, с которыми они сталкиваются в своем бизнесе. В итоге Ember дает вам швейцарский нож, к нему он дает вам набор четких правил оформления кода и структуры приложения. Благодаря чему очень экономично творит магию, не используя различные «универсальные угадыватели». К этому он дает ряд готовых решений ориентированы на эту структуру, и говорит «можешь велосипедировать... но напишешь ли ты лучше? Быстрее? Удобнее?»

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

👍НравитсяПонравилось0
В избранноеВ избранном0
LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Am E Am
Что такое Ember — это фреймворк,
A7 Dm7 Dm6
Плачущие HRы под ногами.
E Am F
Быстро разлетаются фронты с навыками Ember,
Dm E Am A7
Ember, я давно с тобою не был.

Бампану чуть не по теме.
Товарисчи js погромисты, а элегантная либа knockout щас вобще в моде? используется где-нибудь в сурьёзных проектах, или все делается аргулярами/быкбонами/рыактами и прочими страшными штуками ?

В легаси наверное где-то еще осталась (там где не успели/не захотели на модные ангуляры пересаживаться).
Для некоторых целей вполне себе сойдет, но новые проекты с ней вряд ли кто-то стартовать будет. Тем более если что-то большое и сурьезное.

Короче говоря, если надо что-то мелкое с поддержкой допотопных ИЕ6+ - то нокаут подойдет.
Если поддержка ИЕ некритична (нужен только ИЕ9+ например) и нужно такое же мелкое — то лучше посмотреть на vue.js какой-нибудь.
Ну а для больших сурьезных проектов наверное лучше смотреть на распространенные штуки, или на приснопамятный эмбер.

Спасибо Александр! Блин, целую неделю потратил на изучение knockout (за это время наверное вышло пару десятков новейших js либ и фреймворков ), а оказывается он уже не модный, эх )
О, в вуе.js есть тувэй бандинг, интересно, посмотрим на него :)

популярность knockout была погребена еще в 2012 году, это как бы не пару дней, а 4 года

А чем/кем она была погребена, другой либой ?

angular-ом, киллер фичей и единственной фичей кнокаута была 2-way-data-binding а ангуляр сделал ее удобней, достпнее, и еще диай с роутингом и остальным в придачу

Дык, angular это ж полноценный фреймворк, еще и весит наверное метра полтора, а knockot обычная свистельно-пердельная либа, которая хорошо справляется со своими обязанностями размером 60 кб.
Т.е. если тебе нужно прибайндить данные на въюху и оживить кнопочьки, то нужно обязательно тащить модный ангуляр на клиент размером 1.5 Mb ?

Т.е. если тебе нужно прибайндить данные на въюху и оживить кнопочьки, то нужно обязательно тащить модный ангуляр на клиент размером 1.5 Mb
Всё равно завтра понадобится ещё такая же вьюха, а послезавтра ещё одна

Ок, понятно, значить без ангуляра " ни туды и ни сюды"

если 1 вьюха то вам и не кнокаут не нужен и не ангуляр

Ну давай так: что у тебя там на клиенте уже есть из библиотек? Если прицеплен джейквери какой-то, то для связывания данных с вьюхой и оживления кнопочек его хватит с головой. Тянуть для таких задач еще одну зависимость не нужно.

Если ты собираешься с нуля пилить, то все зависит от размера будущего приложения:
— если это что-то мелкое, несложное, свистелки-перделки — то может быть можно вообще без фреймворков/библиотек обойтись, ну или будет достаточно того самого vue.js, или тут поищи по вкусу: jster.net
— если это полноценное SPA, да еще с каким-нибудь серверным рендерингом и все такое — то бери по либо ангуляр/эмбер, либо реакт — если хочется расширять горизонты и получать удовольствие от кодинга :)
Всё.

что у тебя там на клиенте уже есть из библиотек
Да эт не у меня, просто пришлось работать с одним молодёжным мега пихапэ фреймворком в который помимо 100500 js либ был воткнут етот knockot, хотя на дворе уже 2016 год., а если погуглить «топ хот чарт жаваскритп лабрэрис энд фрэмворкс 2016» , то вываливают аргуляры, эмберы, рэакты и.т.п, вот и решил поинтересоваться у уважаемого сообщества используется ли где-то ещё этот старый дедовский knockout и стоит ли его учить, если шо :)
стоит ли его учить, если шо :)
учить не стоит, иметь представление стоит. :)

Странно, что автор просто создал тему и превратил свой вопрос в риторический.

Ember.js — хорошая библиотека, создатели в нее перенесли много «магических» решений из Ruby on Rails, над которым работали до Ember. Есть two way binding, роутинг, свои шаблоны и хелперы и прочие нужные вещи для полноценного SPA из коробки. Документация на сайте покрывает большинство базовых вопросов.

Насчет

Ember продолжает развиваться и решать их проблемы уже не первый год и в следующие пять лет от продолжит это делать.
www.google.com/...p;cmpt=q&tz=Etc/GMT+7

trends.builtwith.com/javascript/Angular-JS
trends.builtwith.com/javascript/React
trends.builtwith.com/javascript/Ember

Так более верная инфа, поиск это все-таки не количество использованний.

Это может указывать как на проблемность фреймворка (ничего непонятно, поэтому много ищут), так и на хайп вокруг него.

Просматриваю второй топик автора и ловлю себя на мысли, что я снова не понимаю что же он хотел сказать. :\

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

Я же придерживаюсь мысли, что статья с таким зазывающим заголовком должна как минимум содержать ответ на вопрос, вынесенный в название.
Статья от `Full stack Web Developer, Team Lead` должна как минимум технически развернуто описывать этот ответ. С выкладками, замерами производительности, сравнениями реализации тех или иных вещей ну и так далее.

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

В общем, «такие статьи о фреймворках нам не нужны» ©

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

небольшая заметка для тех, кто с Ember незнаком.
Да уж раскрыли глаза. После вашего опуса каждому станет понятно что такое Эмбер:
Эмбер он как Неуловимый Джо, такой же неуловимый.
.
Теперь без сарказма:
Кто-то может объяснить что такое Эмбер и навек он надо? В чем его идеология? А то посту ТСа складывается впечатление что это помесь Неуловимого Джо и Бойцовского клуба.
Когда-то смотрел на SproutCore, тогда он меня не впечатлил.

Комьюнити аля рельсы, строго блюдет рельсовый паттерн (полак закатывает глаза). Главная фишка — быкбурнер , вокруг которой поналеплено всякое вроде байндингов под хендлебарс, имбирь-дата и пр . И все это гармонично собирается цветной капустой (если говорить про cli). Отличный, гармоничный фреймверк для сових задачь — крут . Он где-то между jquery/angular и reactxxx.

То есть ембер это что между простой либой/недофреймворком и шаблонизатором?

У Вас в слове Senior две ошибки

Отличный слив когда нечего ответить

На что ответить ? На «недофреймверк» и «шаблонизатор» ? Я на это ответила более чем полно.

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

Ваш ответ — назвать человека не компетентым.

Вы знаете, это не ответ. Когда на вопрос, почемы вы сравниваете кардинально разные вещи, вы отвечаете своим мнением о задающем вопрос, то это не является ответом. Тут есть два варианта: попытка самоутвердится за счет «опускания» другого, либо вы не в состоянии аргументировать просто сливаете. В обоих случаях это не ответ на вопрос.

Вещи может и разные, но почему-то в начале проекта вы принимаете решение в пользу одной из либ/фреймворков/шаблонизаторов. Я нигде не видел, чтобы использовали одновременно jquery и angular.

То вы не видели больших проектов. Очень часто ангуляр в связке с джквери юзается. Или некоторые ангуляр директивы использует реакт. Обычно к этому прибегают когда есть перфоменс проблемы

Я нигде не видел, чтобы использовали одновременно jquery и angular
Хехе.
If jQuery is available, angular.element is an alias for the jQuery function. If jQuery is not available, angular.element delegates to Angular’s built-in subset of jQuery, called “jQuery lite” or jqLite.
То есть ембер это что между простой либой/недофреймворком и шаблонизатором?
Если это не троллинг, то такое утверждение как-то непонятно.
Под такое можно подвести любой джфреймворк хоть бекон, хоть ангулар, хоть реакт (который по факту «шаблонизатор переросток»). Раскройте, пожалуйста, свою мысль.

ок.

jquery — либа для удобной работы с домом (в основном), и на 90% избавляет от проблем с кросбраузерностью. назвать это фремворком,и поставить в ряд с ангуляром и ембер... ну как по мне очень странно. тут когда то эту тему обсуждали, была мысль использовать систему плагинов джквери как фреймворк, в целом это возможно, но слишком мало подобный фреймворк предлагает, для хоть немного сложных проектов (имеется ввиду наличие логики в юай, а не еще одна карусель), этого не хватает.

ангуляр — заявляет себя MVC фреймворком, что наглая ложь, ибо в ангуляре слой M — отсутствует.
по сути ангуляр это DI + smart шаблонизатор. шаблонизатор ангуляра можно противопостовлять React, ибо он тоже smart шаблонизатор.

реакт — вы уже сами правильно назвали.

а теперь, объясните мне пожалуйста, как в один ряд можно поставить ember между ангуляром и реактом?

то есть ember это средний шаблонизатор между реактовским и ангуляровским, с частичным наличием DI??

но только тогда это полный бред, ибо ember не является шаблонизатором вовсе.

это был не тролинг, я в упор не пониманию как надо думать чтобы суметь построить такой ряд...

возможно речь была о популярности (замечательный критерий, универсален в плане сравнение как стоимость), но если так, то почему автор это не указал, а на попытки выяснить, просто слил вопрос?

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

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

Скорее не так, Эмбер полноценный фреймворк
я с этим согласен.

но как можно с таким подходом поставить ембер между реактом и ангуляром????

А почему нет? три фреймворка, все три в топе.

простите, но с каких пор реакт — это фреймворк?

Библиотека, не так важно, в данном контексте это больше демагогический спор, ежели и вовсе не беллетристика.

мой вам совет, изучите сперва что такое фреймворк, а потом пишите статьи о них.
вы тогда лучше поймете как правильно сравнивать технологии, да и вообще в работе поможет, при выборе архитектуры/дизайна системы

я даже лайкну =) хотя не буду, сам раньше цеплялся к деталям не по теме.

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

Оглянитесь, тут уже целая пачка комментов на эту тему, да и в статье написано что под этом подразумевал. Хотя в комментах конечно более конкретизировано.

поналеплено всякое вроде байндингов под хендлебарс, имбирь-дата и пр
Вроде как кириллица и часть слов знакомых, но вот какой это язык я не врубаюсь.
быкбурнер , вокруг которой поналеплено всякое вроде байндингов под хендлебарс, имбирь-дата и пр
байндингов под хендлебарс, имбирьдата — эти слова я понял.
быкбурнер — это что? можно просто не могу транслитерировать назад в англ.
.
На сколько я понял, то на уровне простых аналогий эмбер — это РоР спроектированный на клиентский (брайзерный) джаваскрипт. Такое определение похоже на правду?

Не совсем уверен что под РоР имелось ввиду RoR, но если так, то по большей части вы правы, у них есть много общего, но в целом столько же общего, сколько и у React с Ember, то есть это далеко не RoR, наверное самое близкое будет это если считать что в рор вам дают готовые решения, то в Эмбер дают готовые инструкции, то есть паттерны, вместо готовых модулей. .

то в Эмбер дают готовые инструкции, то есть паттерны, вместо готовых модулей. .
Лучшая антиреклама для программного продукта (будь то либа, фремворк или сайтик) :)
По такому описанию ембер рассчитан на людей не способных думать головой.
В свое время, выбрал бекбон потому что в нем __уже реализованы__ те идеи/паттерны которые бы я реализовывал для задач УИ, при том похожим способом (отличие в основном были стилистические).

Вполне может быть, даже наверное соглашусь, трактовка не очень, скажу тогда проще — попробуйте, Ember Way это круто, а в остальном тут мало что добавить.

Ember продолжает развиваться и решать их проблемы уже не первый год и в следующие пять лет от продолжит это делать
Аминь!

Опять я думал кто-то спрашивает и хотел почитать ответы

Ember — это продукт что решает конкретную проблему
так какую?

Об этом хорошо написала Svetlana Linuxenko, в своем комменте

не, там написано что это, или как это выглядит. а вопрос в том какую проблему оно решает. Ну типа «вода была без вкуса, без цвета, без запаха, и тут появился Ember».

Для меня он решает следующие проблемы:
1) Задаёт структуру проекта (роуты, контроллеры, шаблоны, в 99% случаев известно какой код куда идёт)
2) Сборка проекта (ember-cli одной командой сложит всё в один файл, минифицирует его, положит куда надо изображения и т.д.)
3) Роутинг (по URL Ember сам вызовет методы нужного роута и контроллера, и использует нужный шаблон). Важная часть SPA
4) Отображение данных (в коробке есть шаблонизатор HTMLBars, в основе которого Handlebars, Ember сам перерисовывает страницу при обновлении данных и этот процесс хорошо оптимизирован)
5) Работа с данными (ember data помогает хранить данные в памяти, манипулировать ими, получать данные с сервера и отправлять обратно; при этом вы работаете с абстракцией «модель», а не с http-запросами, что во многих случаях удобно)

Благодаря тому, что ember зависит от jquery, к последнему всегда есть доступ и почти любой jquery-плагин можно обернуть в компонент и использовать в своём приложении.

Спасибо. Четко и понятно. Это Вам надо было статью писать :-)

На статью много текста нужно придумывать, у меня фантазии только на комментарии хватает :)

в догонку
6) компоненты
7) ес6/бабель
8) адаптеры к data layer и как следствие jsonapi.org

А в каком году появился стабильный релиз, а ембер даты стабильный релиз?

как бы уже.
Совсем недавно вышел 2.4, который пообещали сделать LTS.

Подписаться на комментарии