
Внезапно новый 52й выпуск. В гостях Андрей Мелихов и Вячеслав Слинько. Тема разговора: микросервисы на фронтенде.
Когда-то, еще работая в крупной компании, была у нас идея фикс — создать такую архитектуру на фронтенде, чтобы можно было сочетать в себе разные технологии и фреймворки. Например, можно было бы сочетать React и Angular. И чтобы это все взаимодействовало как микросервисы. Зачем? Переход на новую технологию в энерпрайзе очень дорого. Чтобы что-то попробовать — надо получить ресурсы (люди, время). Можно завести отдел RnD и делать там эксперименты. Но это так же не дешево.
А еще хочется ускорить разработку. Представьте себе, что вы нашли себе компонент мечты, и понимаете что вы можете взять его и заюзать, но он написан на Angular. А у вас React. Писать свой? А представьте, что если было бы можно его встроить в текущую архитектуру. Мечта? Мы думали что мы безумцы но, как показывает практика, не мы одни думали в этом направлении. Мы даже рассматривали некоторые подходы и техники и пытались придумать что-то свое.
В этом подкасте мы попытались понять что такое микросервисы на фронтенде.
- Что такое микросервисы на фронтенде? 00:00:08
- Можем ли мы скрестить React с Angular?
- Фронтенд микросервисы на SSI/ESI ? 00:18:29
- iFrame в качестве контейнера для микроприложений – почему нет? 00:20:44
- Обсуждаем проект Mosaic (https://www.mosaic9.org) 00:27:08
- Web Components созданы для реализации микросервисов на фронтенде 00:32:07
- Open Components 35:00:24
- Выводы: проблемы множества фреймворков и разных версий библиотек присущи только большим энтепрайзным проектам 37:34:00
- В чем прелесть Vue.js 38:48:00
- AWS Lambda и Cloudflare Workers как инструмент построения микросервисов на фронтенде 43:09
- Смешивать Angular и React – это издевательство над пользователями 46:21:00
- Вывод: микросервисы на фронтенде – это подход при котором мы собираем результирующий фронтенд из частей с разных сервисов 48:00:00
- Новости: в JS завезли BigInt 49:05:00
- Регистраторы продают уже заблокированные домены! 55:28:00
- Книга “Чистая архитектура” 58:50:00
- Авторы фреймворков не знают ваших проблем и знают свои проблемы. Поэтому создавая фреймворки они решают свои проблемы! 01:00:37
- Почему наши крупные компании больше не пишут свои фронтенд фреймворки и зависят от Google и других? 01:01:36
- Новая книга Фаулера с примерами на JavaScript – это победа JS или хайп? 01:07:30
- Не нужно замыкаться на чем-то одном и быть узко специализированным разработчиком. Нужно учить не фронтенд и бекенд, нужно изучать весь мир программирования 01:07:48
- Конференции 01:19:10
- https://devconf.ru/ru 18 мая в Москве. Секцию Frontend ведет Александр Майоров
- http://frontendconf.ru/moscow-rit/2018 28-29 мая в Москве
- https://holyjs.ru/ 19-20 мая в Питере
- Cut! 01:22:50
Пики
В первой части подкаста у нас в гостях Алексей Гурьянов, один из мейнтейнеров фреймворка Cerebral, с рассказом про нелегкую, но интересную, жизнь разработчика в опенсорсе, про развитие фрейморка в условиях жесткой конкуренции, его преимущества по сравнению с Redux и MobX и немного про кишочки. Во второй части Саша рассказывает про текущее состояние VR и AR в вебе и на телефонах, а ближе к концу мы мечтаем о том, какое будущее нас ждет, когда эти технологии стабилизируются и будут нормой жизни.
- Алексей Гурьянов про разработку фреймворка Cerebral
- Как пришел во фронтенд 00:00:33
- Как пришел в проект Cerebral во временя хайпа React и Redux 00:04:40
- Почему решили создавать Cerebral, похожий на React/Redux 00:08:14
- ES6 template strings в сигналах 00:12:35
- Оптимизация рендеринга 00:16:31
- Что мотивировало продолжать разработку при таком хайпе Redux 00:17:47
- Экскурс в историю: от CerebralJS к Cerebral 2 00:18:33
- Инструменты отладки состояния приложения и производительности 00:21:45
- Примеры продакшн приложений Unity Connect и WebpackBin 00:26:01
- Как происходит бутстрап и разработка приложения с использованием Cerebral 00:27:32
- Сложности перехода с npm на yarn 00:29:18
- Как готовится миграцию на Cerebral 2 00:31:52
- полуавтоматическая миграция с помощью codemod toolkit 00:35:09
- Официальные модули для работы c HTTP, Firebase, формами, localStorage и другим 00:40:36
- Как позиционируется относительно MobX: между Redux и MobX 00:44:28
- Управление сайдэффектами 00:46:50
- Как устроена модель 00:48:54
- Статья “Доводы в пользу function tree” 00:51:22
- Вынесение побочных эффектов из ядра в отдельные модули 00:56:30
- Концепция сигналов, которая никак не связана с другими языками 01:02:32
- Поддержка биндингов к inferno 01:03:46
- Развитие комьюнити: мы ищем таланты 01:06:18
- Саша про VR и AR в вебе
В новогодний выпуск к нам в гости пришел Сергей Рубанов (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
По случаю накопившихся вопросов (а также опыта, что гораздо важнее) по 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
- Пики
Как нельзя кстати к нам в гости пришел Олег Слободской – автор JSS, докладчик React Amsterdam и крестный отец CSS Modules, который как никто другой может рассказать про то, чем так ужасен CSS на крупных и долгих проектах, какие есть преимущества у инлайн-стилей, и как вообще жить в современном мире, когда каждый норовит придумать, как бы так еще теснее связать CSS с JS. О решениях наболевших проблем CSS и проблемах новых мы и поговорили, записав с Олегом часовое интервью.
- Как зародилась идея JSS 04:30
- В чем проблема CSS 08:00
- Глобальные селекторы 10:15
- Есть ли им место (типографика, Normalize.css)
- Все ли стили должны быть изолированы в компоненте
- Дублирование кода 13:16
- Мертвый код и неявные зависимости 16:50
- Специфичность 20:00
- Какие есть подходы к CSS в JS
- Инлайн-стили через JS 22:05
- Генерация стилей в JS 27:43
- CSS Modules и прочий постпроцессинг 31:03
- Особенности работы JSS
- Все ли проблемы решает библиотека 35:49
- Проблемы производительности 37:00
- Минификация 42:33
- Недостатки 44:31
- Сравнение с похожими решениями (radium и aphrodite) 48:40
- Модульность как в PostCSS 51:36
- JSS как compilation-таргет для CSSX 54:32
- Примеси JS в CSS 59:25