Звіт по JavaScript Framework Day

Відвідали на #js #fwdays.

TL;DR: Нам сподобалось)

Місце проведення і дорога

Відбувалось все в готелі Ramada Encore, що на півдні Києва. Так як туди нічим особливо не доберешся, тож був організований підвоз від м.Видубичі на бусику, біля якого зустрічав привітний в міру вгодований волонтер у самому розквіті сил.

В Ramada Encore на реєстрації нас зустріли не менш привітні, чуйні і гарні волонтерши, видали роздатку і бейджики, після чого нас перемкнуло з волонтерш на Wi-Fi.

Лекції

Life of a pixel: Web rendering performance - Martin Naumann [eng]

Все почалось зі вступної лекції від Мартіна Наумана про продуктивність веб-рендерингу.

Охочих послухати було так багато, що не всі вмістились в залу.

Use http://csstriggers.com to figure out what happens when you apply certain CSS rules

WebGL unlike canvas gives you access to programming GPU and parallel pixels processing

Презентація | Twitter | Github | FWDays

Далі був маленький брейк, під час якого InfoPulse розігрував флешки і power-bank’и, за кидання кілець) Виграли флешку.

Spec driven development in Microservices - Микита Галкін

Микита взявся порівнювати RAML, Swageer і API Blueprint. Кожен з них має свої плюси:

  • У Swageer велике ком’юніті
  • В Blueprint чудові комерційні продукти
  • RAML кристується вельмишановний спікер

Специфікація RAML зберігається у yaml файлах. Більше в репах Микити

Далі пішла мова про мікросервіси. Вирішили вихдити з того, що мікросервіс можна переписати максимум за місяць силами однієї людини. Інакше - це вже не мікросервіс.

Зважте на те, що версія застосунку, версія сервера і версія протоколу обміну даними - це три різних версії. Якщо перші дві підтримують третю - то усе інше вже не важливо.

Лайфхак “як змустити кастомера заплатити за фічу, яка спрощує життя девам”:

Робіть беклог багів в продакшині, і замість того щоб шукати винного, шукайте що треба зробити, аби ситуація не повторилася.

Коли замовник бачить цифри збитків і опис чим їх мінімізувати - йому можна продати функціонал, за який він спочатку б не платив.

Бенчмарк і порівняння JSON валідаторів: jsonschema - один з найповільніших.

Презентація | Github | Twitter | Facebook | FWDays

Workshop: Behind the terminal - Євген Обрезков

Після виграшу флешки в @Infopulse_ua йдемо дивитися як рендерити зображення для терміналу в ASCII.

Eugene Obrezkov показав перезенташки в терміналі

Презентація | Facebook | Twitter | Github | FWDays

Acceptance Testing in NodeJS: Tools & Approaches - Михайло Боднарчук

Доповідь розпочалась з історії Михайла, який оповів про те, як ще його дід з бабою писали софт для допотопних махін. І плавно перейшла у тестування найуспішнішого стартапу України - шоколадну фабрику:)

Запропонуйте вашим QA писати тести на тій же мові що і проект - це дозволить вам один одного краще розуміти і допомагати. Причому невідомо, хто кому більше допомагатиме - ви QA, чи він вам. У будь-якому випадку, почнеться синергія.

Cloud Testing - дозволяють тестувати софт на абсолютно різних платформах. SauseLabs, BrowserStack, TestingBot

Єдине, у cloud testing є проблема з кількістю помилок. Якщо десь там упав браузер - вам прийде лог. А розгрібати таки логи - ой як не цікаво. А ще ціна кусається.

Не забувайте ізолювати тести. А то деякі QA люблять робити “божественний тест” що вміє у тестування всього І якщо щось десь впало - не зрозуміло в чому проблема.

CodeceptJS - така собі мегаштука, що переводить сценарії в синхроному коді в асинхроний (проміси). Дуже компактний.

CodeceptJS:

  • Має інтерактивний шел
  • Базується на Mocha
  • Схожий на Cucumber
  • Працює на ES6
  • Має генератор тестів Codecept.io

Тулзи для тестування:

  • Selenium webdriver
  • PhanthomJS
  • Nightmare
  • ZombieJS (старе)
  • CasperJS (ще старіше)

В реальній практиці варто використовувати тільки Selenium. via Alexey Raspopov

Кросбраузерні тести - не працюють :/

Проте можна тестувати все на хромі, а для базового функціоналу написати тести для IE і т.д.

Тестування емейли: MailDev, MailCather, MailHog, MailTrap

Тестуйте мейли через REST API

Native JavaScript на мобільних пристроях від Єлени Жукової

В Phonegap усі тяжкі обчислення варто виносити на сервер

Недоліки моб розробки:

  • Складно кастомізувати архітектуру
  • На кожну ОС потрібна свої деви
  • Нема шарингу коду JS обходить їх

Phonegap:

  • Ідея: браузер є всюди
  • Він є на 13 платформах
  • Можна використовувати будь-який фреймворк
  • Можна зробити будь-який UI
  • Дуже велике ком’юніті, тому, якщо щось не реалізовано в браузері, швидш за все вже є плагін
  • Незалежить від версії ОС Використовуємо коли потрібно не тільки іОС і андроїд

Titanium mobile:

  • Залежить від версії ОС
  • Весь час змінюють підход до архітектури
  • Мале ком’юніті
  • Починався як Phonegap(в браузері) Використовуємо якщо потрібен Back end as a Service

React Native:

  • Залежить від версії ОС
  • многа букаф :) Використовуємо якщо ви юзаєте стек реакту

Native Script:

  • Відрізняється від усіх інших
  • Можна юзати npm (як і в реакт)
  • Що 3 місяці нові версії
  • Ком’юніті впливає на фічі Використовуємо якщо потрібні якісь нативні фічі і не задовбує писати MVVM

Усі тяжкі обчислення варто виносити на сервер.

-як тестувати все це (мобайл)?
-ручками

ES6 - Just Do It - Олексій Косинський

Ця лекція була швидше оглядовою, тому варто взяти презентацію, і погуглити кожен невідомий елемент.

Не забудьте звернути увагу на деструктори в ES2015. Сильна фіча.

Ця доповідь трохи відрізнялась від інших тим, що спікер роздавав футболки за швидке виконання мікрозавдань, таких як “хто перший помітить картинку” або “який буде результат виконання коду”

Презентація | Github | Twitter |Facebook | FWDays

Боротьба з асинхронністю в JS від Максима Клімішина

В середньому розробник витрачає 50-70% на читання коду і розуміння системи, а не на написання коду. Тому у наших же цілях писати код так, аби його можна було легко зрозуміти.

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

Наприклад, проміси придумали 40 років тому. 40 років тому, КАРЛ!
А async/await всього лиш 19 років тому. До слова, найсвіжіша концепція.

Ще є Actor model (Erlang), CSP (Go, Clojure, ліба js-csp)

Далі мова піде про кавайність CSP і те, як же його юзати в js.

Отже, js-csp - це ліба, яка реалізує математичну модель CSP в JS. Проміси теж у якійсь мірі мат. модель, проте на рівень нижче. Тому давайте юзати js-csp ^_^

Фічі js-csp:

  • буферінг
  • poll values
  • alts
  • І купа екстра-фіч, в тому числі transducers (композиції reduce)

Презентація | Twitter | FWDays

Боти: можливо, вам не потрібен UI - Андрій Лісточкін

Боти всюди. Куди не плюнь всюди розумні боти, які настільки розумні, що нічого не роблять.

Трохи сумної статистики: 80% ботів жодного разу не завантажуються.

Вам не обов’язково робити бота, головне: давайте юзерам максимум корисної інфи, забираючи у них мінімум часу

Вебсайти вантажаться 2сек, а потім 20сек вантажаться кльові шрифти! (Відсилка до назви доповіді)

Stream застарів. Зараз актуальні push-сповіщення

Починайте з процесів компанії. Процеси між людьми і технікою. По суті, відсилка до Internet of Everything (IoE)

Використовуйте Human as an API - HaaA (:

Погугліть:

Презентація | Twitter | FWDays

Интерактивные декларативные графики на React+D3

Презентація

Спікер

Фан (развлекаловка)

Футболки за фотку зі стікерами

Mortal Combat на 2-му поверсі

Правильная футболка frontend-разработчика via Олексій Распопов

До обіду 360 сходинок або черга на ліфт via Андрій Шумада

Обід

Звідси

У Sigma Software був прикольний монстрик. А в самому кінці конфи, на сцену виліз веселий пузатий дядько з цієї ж фірми, і почав роздавати призи)

дев-конференції - єдине місце, де черги в чоловічий туалет, а не жіночий via Terry

В залі з 400 людей двоє не знає російську. Спікер вирішує виступати англійською. Всім норм. via Ігор Кевін

Other

Max Klymyshyn вот про это вот говорил

Tags: JS, fwdays