В новогодний выпуск к нам в гости пришел Сергей Рубанов (Twitter и GitHub): человек-энциклопедия спецификаций ECMAScript, OpenSource-контрибьютор, докладчик различных фронтенд конференций и митапов и один из оранизаторов Moscow BeerJS. Обсудили уходящий год, что он нам принес в плане поддержки новых стандартов, обновлений популярных фреймворков и библиотек, новых технологий и методологий разработки браузерных и серверных приложений на JavaScript и веб-стандартах. Немного поговорили о ближайщем будущем WebAssembly, PWA и WebVR.
- Стандарты:
- Node.js:
- кончается период поддержки старых версий, все переходят на Node 6 (LTS) 24:06
- Node.js on ChakraCore: с 20 ноября есть на всех платформах (там даже есть async/await) 25:07
- Фреймворки:
- Сборка:
- webpack 2 с поддержкой динамических импортов готовится к релизу 57:48
- yarn ворвался в нашу жизнь 1:01:29
- зачем каждому языку свой пакетный менеджер? 1:05:36
- CSS в JS: JSS, Aphrodite, Styletron (Virtual CSS), radium 1:06:57
- CSS не нужен (спойлер: HTML и JSX тоже) 1:11:03
- CSS Houdini 1:15:58
- WebAssembly почти везде (только не в Safari) 1:16:36
- Транспиляторы:
- TypeScript растет и развивается: Babel не нужен? 1:25:13
- в Babel вообще куча всего: меньше контрибьюторов, babel-preset-env, babili, пропозалы в отдельную репку 1:26:50
- VR: WebVR, A-Frame, React VR 1:32:55
- PWA: немного статистики 1 и 2 1:38:21
- Список конференций 2017 1:39:17
Скачать выпуск (mp3, 50 MB)
В гостях Андрей Михайлов (lolma.us) с рассказом про достоинства, отличительные черты и недостатки Ember.js. Где-то с середины выпуска к прямой трансляции также подключился евангелист Ember.js Андрей Листочкин (@listochkin) и поддержал коллегу по цеху, после того как мы слегка подзавалили Андрея Михайлова вопросами и своим изрядным скептицизмом. В целом получился подробный анализ фреймворка, экскурс в историю его развития, сравнение его с актуальными конкурентами и лучшими практиками. Надеемся у вас теперь достаточно знаний, чтобы как минимум дать Ember.js шанс в следующем большом или маленьком проекте, либо воспользоваться для прототипирования.
Изложение того, что обсудили (в нехронологическом порядке):
- Вводные про бэкграуд Андрея и как он пришел к Ember.js
- какие фреймворки использовал до этого
- как остановил внимание на Ember.js
- эффект утенка – почему не все готовы перелезать на другие фреймворки
- Преимущества и отличительные черты
- сразу можно сосредоточиться на бизнес логике
- готовый поддерживаемый бойлерплейт (ember-cli), который поддерживает все фичи (Angular CLI украл идею)
- идеален для прототипирования
- стабильность и обратная совместимость при достаточно высокой скорости развития
- декларативный синтаксис шаблонизатора Handlebars, а под капотом быстрый Glimmer 2
- использование своей системы классов: геттеры и сеттеры для обновления данных
- developer joy, или как сделать разработчика счастливее
- модели как хранилища данных, адаптеры и сериалайзеры для синхронизации с бекендом
- простота интеграции с любыми бекендами
- и в том числе и WebSockets очень легко (ember-phoenix)
- server side rendering (ember-cli-fastboot)
- аналог Express в браузере для прототипирования и тестирования (ember-cli-mirage)
- активное и открытое сообщество
- система аддонов, благодаря которой можно внедриться в любой процесс фреймворка
- большинство аддонов консистентны и учитывают другие аддоны в экосистеме
- новые аддоны появляютя не сразу, но на них легко перелезть и комьюнитие быстро переходит
- богатая документация
- нет конкретного владельца, развивается независимым сообществом
- сообщество очень открытое – все решения принимаются публично, есть понятная процедура принятия стандартов
- каждый 6 недель релизы (deprecation policy, feature flags, LTS-релизы)
- система тестирования из коробки с бойлерплейтами, тулинг для тестирования асинхронного кода
- ленивая загрузка модулей и rollup.js
- Спорные вопросы и сравнение с известными подходами
- сравнение подходов “собери свой фреймворк сам” и “монолитный фреймворк”
- есть ли известные проекты на Ember.js: builtwithember.io
- управление состоянием: стандартный подход и ember-redux
- сервисы как хранилища состояния независимых компонентов
- совпадение ли то, что бекенд часто тоже на Ruby on Rails? сравнение философии Rails и Ember.js
- управление зависимостями, когда используешь много аддонов
- переиспользуемость аддонов (компонентов), расширение их функционала без форка
- геттеры и сеттеры и реактивное программирование
- склеивание с другими фреймворками, особенно при переезде с легаси
- Недостатки
- невозможна из коробки генерация динамической DOM-структуры, где заранее неизвестна вложенность элементов
- геттеры и сеттеры стали громоздкий после отказа от CoffeeScript
- сложно внедрить TypeScript
- run-loop запросов через очередь приводят к сложностям с отладкой при падениях
- мало ресурсов вкладываются в маркетинг, поэтому он не такой популярный, как некоторые другие
- самый большой размер дистрибутива, особенно когда много аддонов
- нет аналога react-native
- надо думать при работе с ним: Ember.js way, когда ищешь аддон вместо написания простыни кода на каждый кейс
- Будущее
- аналог PRPL из коробки, который частично уже давно реализован и работает
- ставка на PWA на фоне кризиса нативных приложений
- ставка на веб-стандарты
- улучшение поддержки написания мобильных приложения
Скачать выпуск (mp3, 45 MB)
Мы наконец-то запустили онлайн трансляции и чат в телеграмме для telegram.me/RadioJSPodcast
Присоединяйтесь к нему, чтобы участвовать в обсуждениях во время трансляций.
В этом выпуске продолжили разговор с Алексеем Охрименко, но уже на немного отдаленные темы вокруг и около Angular, включающие подробный разбор нового RxJS, а также паттерна PRPL, который был недавно вынесен на суд общественности со стороны Google. Немного помусолили тему HTTP 2.0 и его агрессивного маркетинга.
Пики
Скачать выпуск (mp3, 39 MB)
По случаю накопившихся вопросов (а также опыта, что гораздо важнее) по Angular 2 мы позвали в гости Алексея Охрименко (Twitter, GitHub), который давно зарекомендовал себя как специалист по различным фреймворкам и библиотекам, включая AngularJS и D3.js, а также как профессиональный спикер различных российских конференций и митапов. Также к нам снова присоединился Александр Майоров, с очередными новостями из мира TypeScript, который продолжает бурно развиваться и радовать многих разработчиков. Ну и, конечно, мы не смогли пройти мимо новости о Yarn, о котором разгорелись бурные споры.
- Леша представляется 00:01:18
- Angular 2 в продакшене
- как решили начать разработку на Angular 2? 00:03:40
- почему оставили ngModel и двусторонний датабиндинг? 00:06:24
- два подхода к созданию форм 00:08:40
- старые добрые модули 00:11:26
- версионирование и роадмап 00:14:34
- server side rendering 00:18:20
- где разработка стала удобнее для программиста? 00:21:21
- Observable 00:21:44
- формы от модели 00:22:30
- новый DI 00:23:00
- дефолтный роутер vs ui-router 00:24:10
- Alpha Release Candidate 00:26:00
- фичи роутера: авторизация, анимации, lazy loading 00:27:38
- синтаксис компонентов 00:29:47
- встроенный CSS Modules 00:31:14
- как решили переписывать проект с React на Angular 2? 00:32:44
- интеграция с TypeScript 00:36:02
- перформанс в сравнении с React 00:38:20
- рендеринг в веб воркерах и других средах без DOM 00:43:39
- Angular 2 митап 17 ноября 2016 года 00:48:58
- yarn 00:50:28
- TypeScript 2.1 RC 01:12:04
- Опыт перехода на TypeScript в AngularJS 1 приложении 01:14:20
- плавный переезд на Angular 2 01:14:48
- наконец отказались от jsdoc 01:15:57
- более сахарный синтаксис классов 01:16:50
- быстрая реакция на синтаксические ошибки и неверные вызовы 01:18:33
- super не работает по стандарту 01:20:16
- линтинг tslint не настолько хорош, как у eslint 01:21:05
- медленно устаканивается единый подход к установке тайпингов 01:22:18
- холивар по поводу уменьшения багов после перехода на TypeScript 01:23:39
- Пики
Скачать выпуск (mp3, 45 MB)
Сегодня в гостях у RadioJS Александр Майоров (@frontdevops в gh и twi) из tutu.ru. Саша давно работает с TypeScript и ему есть что сказать по поводу нового релиза. Также обсуждаем отношение к типизации в командах, стоит ли писать и поддерживать серверный код и прошедшие конференции.
- Саша представляется 00:00:55
- Опыт TypeScript в tutu 00:02:30
- TypeScript 2.0 00:03:58
- Отзывы команд о TypeScript 00:13:30
- Статья Loading polyfills only when needed 00:24:35
- Serverless Architectures 00:32:50
- Конференции и митапы 00:45:25
- Пики
- Александр 01:01:30
- Андрей 01:04:41
- Костя 01:05:40
Скачать выпуск (mp3, 31 MB)