Андрей привез с React Amsterdam много интересного, Миша наконец вернулся после болезни с накопившимися новостями, а Костя традиционно рассказал о последних разрабатываемых спецификациях. Майские чуток подкосили нас всех, так что выпуск выходит с большим запозданием.
Обсуждаем неприятную ситуацию с модулем left-pad, который автор убрал из репозитория и тем самым сломал сборки проектов вроде JSCS и Babel.
Говорим о новом поколении unit-testing фреймворков. Есть ли жизнь после Mocha?
Из новостей: Экспериментальная поддержка WebAssembly, новый формат сжатия изображений и критика socket.io.
Гламурные JS проекты всегда смотрели на semver свысока. Angular, Backbone, Polymer своим примером показывают что обратная совместимость не в тренде. React в этом отношении не выделялся, но 7 марта ребята наконец признали semver. Конечно без скандала не обошлось.
К другим заголовкам:
Секрет привлекательности node.js.
Идёт ли Фронтенду деловой костюм?
5 шокирующих действий на которые пошли Custom Elements чтобы попасть в WebKit.
Андрей рассказывает о своём опыте использования React Native. Обсуждаем новый V8, загрузку JS по HTTP/2.0 и оператор pipeline.
В чем разница между инструментированием кода и инструментами разработки? Какие инструменты экономят время и улучшают жизнь разработчика? Как идеи меняют ваш взгляд на проблемы и используемые в их решении инструменты? Почему идеи гораздо важнее, чем то, какие вы привыкли использовать библиотеки и фреймворки? Как написать свой собственный интсрумент и сэкономить время, а не сидеть все выходные и не добиться никакого эффекта? Ответы на все эти вопросы, а также многие другие, включая каверзные вопросы касательно текущей и будущей работы Романа Дворнова над OpenSource проектами, вы услышите в этом выпуске!
Базой для разговора стали многочисленные споры в кулуарах конференций, а также следующие выступления Ромы:
Основные тезисы и темы разговора:
- Что такое инструменты разработки и инструментирование кода? 01:26
- инструменты – это все, что позволяет эффективно достигать результата
- инструментирование – это один из подходов при создании инструментов
- IDE vs легковесные текстовые редакторы 05:00
- component-inspector 09:30
- Имплементация инструментирования 12:45
- производительность при компиляции и в рантайме
- использование плагинов к Babel
- использование WeakMap
- Линтеры 19:12
- eslint
- jscs
- CSSComb
- сложности при использовании CSSComb для линтинга
- встраивание линтеров в редактор кода
- считать ли линтерами инструменты, которые изменяют код автоматически
- линтеры для разных фреймворков
- Статический анализ кода 34:34
- области применения кроме линтинга
- статические анализ vs регулярки
- альтернатива AST – CST
- форматтеры и бьютефаеры кода
- Визуализация истории мутаций объекта и time travel 40:43
- сохранение истории мутаций, трансформировавших объект в определенное состояние
- визуализация истории мутаций
- применение визуализации для обучения программированию
- применение визуализации для объяснения работы приложения
- проблема создания подобного инструмента при работе с изменяемыми данными
- чем данный инструмент похож на time travel, популярный в сообществе ФРП
- time travel для реализации функционала undo/redo в редакторах
- time travel для отделения данных от кода и отладки разного кода с теми же данными
- доклад Никиты Прокопова “Функциональное программирование в браузере“
- remote time travel debugging для отладки ошибок в пользовательских приложениях на сохраненных данных
- Документирование кода 56:09
- Идеи и воплощение их в жизнь 1:04:09
- самое главное – это идеи и концепции, а не библиотеки и фреймворки
- адаптация идей в своем любимом фреймворке может занимать немного времени
- некоторые инструменты возможны только тогда, когда фреймворк обладает нужной степенью свободы
- проблема выбора: брать актуальные задачи по проекту или делать инструмент для решения целого класса подобных задач
- выделение времени в компании на развитие инфраструктуры инструментов
- нужны ли гениальные разработчики, чтобы интегрировать сложные инструменты в текущую кодовую базу
- Тренд интеграции IDE и среды исполнения (браузера) 1:20:35
- встраивание инструментов в Dev Tools
- браузеров много, не все используют Chrome
- на данный момент эта интеграция слабая
- за какими редакторами кода будущее
- LightTable как пример подобного тренда
Пики
- Костя 1:28:20
- popmotion – библиотека для анимаций, физики и слежением за действиями пользователя
- Миша 1:29:00
- flexboxin5 – интерактивная обучалка Flexible Box Layout
- iconic – платформа SVG-иконок с набором правил для создания свой библиотеки иконок
- Андрей 1:32:38
- Документация на контексты в React
- Elm – функциональный язык программирования для браузера
- Рома 1:34:00
- Ближайшее будущее CSSO после того, как Рома стал мейнтейнером