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.