Ember.js Training в NIX Solutions

27 марта 2015

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

На этот раз такой технологией стал Ember.js – фреймворк для веб-приложений, а в качестве эксперта по Ember.js  был приглашен Андрей Листочкин – Senior Architect в DOOR3 и со-ведущий Frontend UA Hangout.

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

Для начала стоит рассказать пару слов о технологии тем, кто еще ни разу с ней не сталкивался. Ember.js – достаточно новый, интересный и активно завоевывающий умы и сердца разработчиков фреймворк. По своей сути это свободный JavaScript-каркас веб-приложений, реализующий MVC шаблон. Его главное предназначение – упростить создание масштабируемых одностраничных веб-приложений. Он многозадачен и обеспечивает высокую скорость разработки.

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

Прежде чем начать освещать техническую часть с преимуществами и особенностями Ember, Андрей уделил внимание такой интересной теме, как история создания этой технологии. Оказалось, что фреймворк берет свое начало в далеком 2005 году, и на протяжении всего времени существования технологии её пути так или иначе переплетаются с компанией Apple. И хотя Ember на данный момент является полностью независимым opensource-проектом, изначально его прародитель был написан разработчиком из Apple, а многие архитектурные решения в Ember переплетаются с идеями, взятыми за основу в iOS.

Углубившись в архитектуру Ember, наша команда узнала о шаблонизаторе Handlebars, объектной модели Ember, а также о том, как устроен самый важный компонент фреймворка — Router. Интересно было узнать, что фреймворк позволяет легко делать приложения из коробки, с Nested UI любой вложенности. Андрей привел пример из своего опыта, когда в приложении вложенность достигала 6-7 уровней, но при этом структура системы не становилась сложнее.

После перерыва на обед все участники мастер-класса переместились в более тихую комнату отдыха на 10-м этаже и приступили к самой интересной —практической части своего мастер-класса. Поговорив о структуре приложения, которое за разработчиков подготавливает ember-cli, они разобрались со специальным расширением для Ember под различные браузеры, помогающим при разработке приложения локализировать и устранять практически любые ошибки.

Также поговорили о процессе релиза новых версий в Ember, который позволяет заранее узнать о важных грядущих изменениях и вовремя обновить ядро своего приложения. После этого Андрей показал какие действия необходимы для этого.

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

Прежде чем писать первые строки кода, решили, что необходимо придумать название для сайта приложения. Среди нескольких вариантов коллективно выбрали наиболее подходящее и созвучное имени компании — “Sonix”.

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

Павел

Второй день был целиком посвящен кодингу. По словам участников, процесс строился очень интересно: на большом экране в режиме онлайн они наблюдали, как классный программист пишет код на Ember (и немного Node.js), при этом комментируя каждое действие и ход своих мыслей. Таким образом можно было перенять от более опытного коллеги его практики разработки. А с учетом того, что в процессе написания приложения возникали ошибки, можно было проследить за процессом дебага, отлавливания и устранения ошибок.

После реализации каждой новой части важного функционала, Андрей заливал код в репозиторий. Оттуда остальные участники тренинга могли его забрать, подсмотреть те части, которые они не успели написать, и проверить, не вкрался ли в их код какой-нибудь очень коварный баг.

Проведя весь день за разработкой приложения, ребята и не заметили, как быстро пришел вечер. И несмотря на то, что поезд Андрея в Киев должен был отправляться уже через 4 часа, он предложил продолжать до победного. Многим было тяжело осознавать, что впереди их ждет тяжелая рабочая неделя, поэтому решили закругляться.

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

Ребята остались очень довольны тренингом, особенно им понравилось, что не пришлось куда-то ехать за новыми знаниями, ведь мы позаботилось о том, чтобы можно было получить их прямо в нашем уютном офисе :). Вдохновившись открывшимися возможностями новой технологии, наши специалисты уже планируют поделиться новыми знаниями и опытом со всей командой NIX Solutions.