"Prom.ua shopping cart workflow as a microfrontend", Danylo KazymyrovFwdays
For a long time, the Prom.ua shopping cart was part of a monolith. After migration to SSR there was a need to reuse it and make it a separate application.
In my talk, I will tell about the approach to building interaction between frontend applications and show how we applied it to Prom.ua shopping cart.
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"Fwdays
В докладе расскажу о шишках, набитых в процессе настройки SEO для конкретного проекта. Речь пойдет о настройке SEO для своего одностраничного приложения как с привлечением сторонних сервисов, так и самостоятельно, используя PhantomJS или рендеринг на стороне сервера. Также, поделюсь особенностями размещения share-кнопок от различных провайдеров.
"Web Vitals monitoring & optimizations", Erik HimiranovFwdays
Performance is one of the key factors in determining a product's user experience. It is very important that the site loads quickly, is responsive and interactive, and the content remains stable.
I want to share why you need to monitor application performance, talk about Web Vitals metrics and tools for measuring them.
I also want to tell you about examples of optimizations that can positively affect performance and what results it can bring.
Сергей Морковкин "Разработка realtime SPA с использованием VueJS и RethinkDB"Fwdays
В процессе доклада мы рассмотрим преимущества использования связки VueJS + RethinkDB для создания realtime SPA приложений, построим базовый проект, рассмотрим ключевые особенности VueJS, а также установим socket- соединение с авторизацией.
В докладе будет:
- что такое F.I.R.S.T
- организация кода приложения для повышения его тестируемости, поддерживаемости и производительности
- какой тест-фреймворк выбрать для решения какой задачи?
- какие виды тестирования бывают и за какие из них отвечают разработчики?
- как тратить больше времени на код, а не на тесты
- как и какие метрики тестирования собирать
"Prom.ua shopping cart workflow as a microfrontend", Danylo KazymyrovFwdays
For a long time, the Prom.ua shopping cart was part of a monolith. After migration to SSR there was a need to reuse it and make it a separate application.
In my talk, I will tell about the approach to building interaction between frontend applications and show how we applied it to Prom.ua shopping cart.
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"Fwdays
В докладе расскажу о шишках, набитых в процессе настройки SEO для конкретного проекта. Речь пойдет о настройке SEO для своего одностраничного приложения как с привлечением сторонних сервисов, так и самостоятельно, используя PhantomJS или рендеринг на стороне сервера. Также, поделюсь особенностями размещения share-кнопок от различных провайдеров.
"Web Vitals monitoring & optimizations", Erik HimiranovFwdays
Performance is one of the key factors in determining a product's user experience. It is very important that the site loads quickly, is responsive and interactive, and the content remains stable.
I want to share why you need to monitor application performance, talk about Web Vitals metrics and tools for measuring them.
I also want to tell you about examples of optimizations that can positively affect performance and what results it can bring.
Сергей Морковкин "Разработка realtime SPA с использованием VueJS и RethinkDB"Fwdays
В процессе доклада мы рассмотрим преимущества использования связки VueJS + RethinkDB для создания realtime SPA приложений, построим базовый проект, рассмотрим ключевые особенности VueJS, а также установим socket- соединение с авторизацией.
В докладе будет:
- что такое F.I.R.S.T
- организация кода приложения для повышения его тестируемости, поддерживаемости и производительности
- какой тест-фреймворк выбрать для решения какой задачи?
- какие виды тестирования бывают и за какие из них отвечают разработчики?
- как тратить больше времени на код, а не на тесты
- как и какие метрики тестирования собирать
"Electron. How the most modern framework works" Oleksii HolubievFwdays
Have you ever wondered why all the top companies are developing their desktop versions of applications? Spotify, Teams, Skype, WhatsApp, VS Code, etc. All these modern programs use one framework and that is Electron. But why? What's in it that WPF or JavaFX doesn't have? A small spoiler - JavaScript. But this is not the only thing.
So in this speech we:
1. Let's remember the history of origin and understand who really maintains this product
2. Let's look under the hood and see how it really works
3. Let's talk about why VS Code has so many processes
4. Let's deal with the main killer features
5. Let's evaluate the framework cons
6. Let's meet the community
This topic is suitable for everyone who is already familiar with JS and is interested in desktop applications.
Презентация методологии git-flow для стабильной разработки
Текстовая версия: https://medium.com/ruopsdev/git-flow-presentation-b80643390888
Скачать презентацию в формате pptx: https://docs.google.com/presentation/d/1Bgx5GP9ykGYKUnAaD53Y0YIpPpHHSbvT/edit?usp=sharing&ouid=106302903983671723423&rtpof=true&sd=true
Svyatoslav Login "How to test authentication and authorization for security"Fwdays
The login page is the most important page on the site since with the help of it we understand to give access to this or that user. Most often, hackers crack this particular functionality, in order to get access to the accounts, especially access to admin accounting. Using the Burp Suite tool and beef, I'll show you how you can check it out.
"Изоморфная разработка на javascript с помощью react.js" Максим КлимишинFwdays
Современная разработка на JavaScript быстро эволиционирует – в язык входят инструменты, которые позволяют создавать прогнозируемые и надежные продукты как на сервере, так и на клиенте. С ES6 пришли генератор и итераторы, из Clojure – трансдюсеры и CSP каналы, Facebook дал React.js и Immutable.js.
Изоморфная разработка – когда один и тот же код может работать как на сервере, так и на клиенте, набирает популярность. В моем докладе я хочу раскрыть последние тренды в этой области и как это можно сделать с помощью React.js.
Микросервисная архитектура на базе CoreOS и KubernetesDenis Izmaylov
13 июля 2016 состоялся восьмой Node.js Meetup в Москве. В этом докладе мы рассмотрели Scale Cube, Docker, CoreOS и кратко Kubernetes и Concourse CI.
В следующем докладе взглянем более подробно на Kubernetes и Concourse CI, посмотрим как с помощью этих быстрых и прекрасных инструментов построить Deployment Automation.
Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"IT Event
Последние несколько лет в индустрии активно развивается WebRTC — технология, которая позволяет делать голосовые и видеозвонки прямо из браузеров. Но мало кто знает, что эта же технология может быть использована в нативных мобильных приложениях и основанных на них SDK. В своем докладе я хочу рассказать про опыт заворачивания существующих Android и iOS SDK в React Native:
— Как поддерживать несколько разных архитектур
— Как работать с нативными виджетами, такими как «вывод видео»
— Синхронизация event loop между C-реализацией и — JavaScript движком React Native
— Планы на будущее: React Native WebRTC
"React application structure at project start", Maksym ShestopalFwdays
This talk describes in detail how to approach the creation of a project structure at the stage of its launch in order for the product to be of excellent quality, simple and stable in support, prone to expansion and development in the future, universal and understandable within the team.
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальностьScrumTrek
2016 год. Добро пожаловать в новую реальность.
Сегодня позиция JavaScript-разработчика является одной из самых востребованных и хорошо оплачиваемых в мире. Современные возможности JavaScript - это квестистенция всего, что произошло в отрасли разработки за всё её время существования: универсальные React-компоненты и композиция, декларативная анимация, изоморфные приложения, отсутствие side effects, авто-генерация тестов, симбиоз ООП и функционального программирования.
Последние три года выдались самые насыщенные революционные для веб-разработки. Многие разработчики, кто не успел уследить за произошедшим, задают лишь один вопрос ЧТО ПРОИСХОДИТ?
В рамках этого доклада мы попробуем синхронизироваться с JavaScript сообществом и посмотреть, что же он предоставляет нам сегодня? Как решать задачи привычные задачи? Что является актуальным направлением, а что может стать пустой тратой сил и времени?
Вместе с Алексеем Ашурком мы расскажем о том, как проект «Фламп» релизится по 2n раз в неделю и комфортно себя при этом чувствует:
— Ветки - это хорошо или о переходе с SVN на Git.
— Чем плоха «классическая» модель релизов.
— Что такое модель пофичных релизов, в чём её плюсы и минусы.
— Почему она подходит для веб-сервисов.
— Как идти в ногу со временем или частые деплои.
— Как ловить ошибки и минимизировать их число.
Видео доклада: http://devday.2gis.ru/report/15
QA Fes 2016. Александр Неделяев. Система мониторинга производительности своим...QAFest
Как известно, то, что не может быть измерено, не может быть улучшено.
В своем докладе я расскажу вам о том, как с помощью open source инструментов можно построить систему мониторинга производительности приложения, а также представить полученные данные в доступной и наглядной форме. А технология контейнеров Docker поможет сделать это максимально быстро и просто.
HighLoad++ 2017
Зал Дели + Калькутта, 7 ноября, 13:00
Тезисы:
http://www.highload.ru/2017/abstracts/2867.html
Последние несколько лет в продуктовой разработке проблемы масштабирования решаются через переход на микросервисную архитектуру. На эту тему было сказано много про подходы, плюсы и минусы, но мало кто рассматривал эту проблематику со стороны фронтенда.
В ЦИАН мы идем по пути перехода от монолита к микросервисам, в том числе и на фронтенде. Задачи и проблемы, с которыми мы сталкиваемся, очень близки к аналогичным на бэкенде, но в то же время совершенно другие.
Последние несколько лет в продуктовой разработке проблемы масштабирования решаются через переход на микросервисную архитектуру. На эту тему было сказано много про подходы, плюсы и минусы, но мало кто рассматривал эту проблематику со стороны фронтенда.
В ЦИАН мы идем по пути перехода от монолита к микросервисам, в том числе и на фронтенде. Задачи и проблемы, с которыми мы сталкиваемся, очень близки к аналогичным на бэкенде, но в то же время совершенно другие.
В своем докладе я расскажу про архитектуру фронтенда (и так называемого миддленда) в ЦИАН: какие задачи перед нами стояли, что мы решили, где мы находимся сейчас и с какими проблемами мы столкнулись.
"Electron. How the most modern framework works" Oleksii HolubievFwdays
Have you ever wondered why all the top companies are developing their desktop versions of applications? Spotify, Teams, Skype, WhatsApp, VS Code, etc. All these modern programs use one framework and that is Electron. But why? What's in it that WPF or JavaFX doesn't have? A small spoiler - JavaScript. But this is not the only thing.
So in this speech we:
1. Let's remember the history of origin and understand who really maintains this product
2. Let's look under the hood and see how it really works
3. Let's talk about why VS Code has so many processes
4. Let's deal with the main killer features
5. Let's evaluate the framework cons
6. Let's meet the community
This topic is suitable for everyone who is already familiar with JS and is interested in desktop applications.
Презентация методологии git-flow для стабильной разработки
Текстовая версия: https://medium.com/ruopsdev/git-flow-presentation-b80643390888
Скачать презентацию в формате pptx: https://docs.google.com/presentation/d/1Bgx5GP9ykGYKUnAaD53Y0YIpPpHHSbvT/edit?usp=sharing&ouid=106302903983671723423&rtpof=true&sd=true
Svyatoslav Login "How to test authentication and authorization for security"Fwdays
The login page is the most important page on the site since with the help of it we understand to give access to this or that user. Most often, hackers crack this particular functionality, in order to get access to the accounts, especially access to admin accounting. Using the Burp Suite tool and beef, I'll show you how you can check it out.
"Изоморфная разработка на javascript с помощью react.js" Максим КлимишинFwdays
Современная разработка на JavaScript быстро эволиционирует – в язык входят инструменты, которые позволяют создавать прогнозируемые и надежные продукты как на сервере, так и на клиенте. С ES6 пришли генератор и итераторы, из Clojure – трансдюсеры и CSP каналы, Facebook дал React.js и Immutable.js.
Изоморфная разработка – когда один и тот же код может работать как на сервере, так и на клиенте, набирает популярность. В моем докладе я хочу раскрыть последние тренды в этой области и как это можно сделать с помощью React.js.
Микросервисная архитектура на базе CoreOS и KubernetesDenis Izmaylov
13 июля 2016 состоялся восьмой Node.js Meetup в Москве. В этом докладе мы рассмотрели Scale Cube, Docker, CoreOS и кратко Kubernetes и Concourse CI.
В следующем докладе взглянем более подробно на Kubernetes и Concourse CI, посмотрим как с помощью этих быстрых и прекрасных инструментов построить Deployment Automation.
Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"IT Event
Последние несколько лет в индустрии активно развивается WebRTC — технология, которая позволяет делать голосовые и видеозвонки прямо из браузеров. Но мало кто знает, что эта же технология может быть использована в нативных мобильных приложениях и основанных на них SDK. В своем докладе я хочу рассказать про опыт заворачивания существующих Android и iOS SDK в React Native:
— Как поддерживать несколько разных архитектур
— Как работать с нативными виджетами, такими как «вывод видео»
— Синхронизация event loop между C-реализацией и — JavaScript движком React Native
— Планы на будущее: React Native WebRTC
"React application structure at project start", Maksym ShestopalFwdays
This talk describes in detail how to approach the creation of a project structure at the stage of its launch in order for the product to be of excellent quality, simple and stable in support, prone to expansion and development in the future, universal and understandable within the team.
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальностьScrumTrek
2016 год. Добро пожаловать в новую реальность.
Сегодня позиция JavaScript-разработчика является одной из самых востребованных и хорошо оплачиваемых в мире. Современные возможности JavaScript - это квестистенция всего, что произошло в отрасли разработки за всё её время существования: универсальные React-компоненты и композиция, декларативная анимация, изоморфные приложения, отсутствие side effects, авто-генерация тестов, симбиоз ООП и функционального программирования.
Последние три года выдались самые насыщенные революционные для веб-разработки. Многие разработчики, кто не успел уследить за произошедшим, задают лишь один вопрос ЧТО ПРОИСХОДИТ?
В рамках этого доклада мы попробуем синхронизироваться с JavaScript сообществом и посмотреть, что же он предоставляет нам сегодня? Как решать задачи привычные задачи? Что является актуальным направлением, а что может стать пустой тратой сил и времени?
Вместе с Алексеем Ашурком мы расскажем о том, как проект «Фламп» релизится по 2n раз в неделю и комфортно себя при этом чувствует:
— Ветки - это хорошо или о переходе с SVN на Git.
— Чем плоха «классическая» модель релизов.
— Что такое модель пофичных релизов, в чём её плюсы и минусы.
— Почему она подходит для веб-сервисов.
— Как идти в ногу со временем или частые деплои.
— Как ловить ошибки и минимизировать их число.
Видео доклада: http://devday.2gis.ru/report/15
QA Fes 2016. Александр Неделяев. Система мониторинга производительности своим...QAFest
Как известно, то, что не может быть измерено, не может быть улучшено.
В своем докладе я расскажу вам о том, как с помощью open source инструментов можно построить систему мониторинга производительности приложения, а также представить полученные данные в доступной и наглядной форме. А технология контейнеров Docker поможет сделать это максимально быстро и просто.
HighLoad++ 2017
Зал Дели + Калькутта, 7 ноября, 13:00
Тезисы:
http://www.highload.ru/2017/abstracts/2867.html
Последние несколько лет в продуктовой разработке проблемы масштабирования решаются через переход на микросервисную архитектуру. На эту тему было сказано много про подходы, плюсы и минусы, но мало кто рассматривал эту проблематику со стороны фронтенда.
В ЦИАН мы идем по пути перехода от монолита к микросервисам, в том числе и на фронтенде. Задачи и проблемы, с которыми мы сталкиваемся, очень близки к аналогичным на бэкенде, но в то же время совершенно другие.
Последние несколько лет в продуктовой разработке проблемы масштабирования решаются через переход на микросервисную архитектуру. На эту тему было сказано много про подходы, плюсы и минусы, но мало кто рассматривал эту проблематику со стороны фронтенда.
В ЦИАН мы идем по пути перехода от монолита к микросервисам, в том числе и на фронтенде. Задачи и проблемы, с которыми мы сталкиваемся, очень близки к аналогичным на бэкенде, но в то же время совершенно другие.
В своем докладе я расскажу про архитектуру фронтенда (и так называемого миддленда) в ЦИАН: какие задачи перед нами стояли, что мы решили, где мы находимся сейчас и с какими проблемами мы столкнулись.
В рамках доклада я хотел бы рассмотреть сложности, которые мы испытываем с построением инфраструктуры распределенных систем.
Можно ли строить приложения и не думать о серверах и контейнерах? Насколько это будет дорого?
Ответить на эти вопросы помогут принципы «Бессерверной архитектуры». На простых примерах мы рассмотрим из чего состоит приложение, не зависящее от серверов. А также, рассмотрим возможности, которые предоставляют популярные провайдеры облачных сервисов, для построения таких приложений.
Javascript-фреймворки: должен остаться только одинSergey Xek
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет.
В докладе пойдет речь о том, что производительность фронтенда — это больше про слаженную работу команды, про понятный и масштабируемый код, чем про сухие циферки. Но циферки тоже будут.
1) Какие у нас были проблемы с текущим фреймворком — UI, архитектура, код.
2) Как измеряли, что примерно стоит брать (исследование популярности).
3) Что рассматривали.
4) На пути к демо-проекту, какие были сложности (то, что уперли идею с Typescript, собственный компилятор шаблонов, четыре Flux-фреймворка и все плохи).
5) Два пилотных демо-проекта: цифры.
6) Оценка трудоемкости перехода.
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Ontico
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет.
В докладе пойдет речь о том, что производительность фронтенда — это больше про слаженную работу команды, про понятный и масштабируемый код, чем про сухие циферки. Но циферки тоже будут.
1) Какие у нас были проблемы с текущим фреймворком — UI, архитектура, код.
2) Как измеряли, что примерно стоит брать (исследование популярности).
3) Что рассматривали.
4) На пути к демо-проекту, какие были сложности (то, что уперли идею с Typescript, собственный компилятор шаблонов, четыре Flux-фреймворка и все плохи).
5) Два пилотных демо-проекта: цифры.
6) Оценка трудоемкости перехода.
Внедрение зависимостей в ASP.NET MVС и ASP.NET vNextGoSharp
По мере развития веб-проекта сложность бизнес-логики неизбежно растёт. Это замедляет темпы разработки, системы становятся непонятными и запутанными. Связной – не исключение. Одним из наших решений проблемы является Dependency Injection. В докладе вы узнаете о том, как DI понижает сложность бизнес-логики, почему мы в Связном считаем DI DI в ASP.NET MVC эффективным решением и что нового для DI появилось в ASP.NET vNext.
Привет, Санкт-Петербург!
В разгар летнего сезона, мы поговорим об историях обновлений,
например, с 6.4 до 7.х, с разными трюками, а также об истории исследования разных регрессий на продуктах Atlassian и других плагинов.
Наша программа будет пополняться, и мы рады к сотрудничеству.
Ждем Вас на встрече в Яндекс Деньгах.
Видео с доклада: http://getdev.net/Event/asp-net-mvc-4
Доклад об ASP.NET MVC, откуда и зачем он появился, какие задачи решает, какой подход к разработке исповедует. Этот доклад больше пригодится тем, кто хочет углубить и структурировать свои знания об ASP.NET MVC
Когда проект делает один разработчик — все просто. Когда над ним работает небольшая команда, можно синхронизироваться и договориться. А вот когда проектов (сайтов и приложений) становится много, и над ними трудится множество команд с перекрестной функциональностью и смежными зонами ответственности, все становится сложным и запутанным.
Я расскажу о своем виденье архитектуры фронтенда, какой она должна быть, чтобы обеспечить её масштабируемость. На основе своего опыта и проблем, с которыми сталкиваются большие проекты.
Видео: https://www.youtube.com/watch?list=PLknJ4Vr6efQFtZmsXmGG64Rz_PHrcXCBL&v=z9y6PNC2FL0
Если вы пишете веб-приложения только под Windows, однако рано или поздно выбор определенной ОС накладывает на вас свои ограничения, наступает время подумать о кроссплатформенной разработке веб-приложений. К чему нужно быть готовым? Mono или .Net Core? Готовы ли Вы портировать свое приложение? Я расскажу о нашем опыте перехода на mono и о том, как это было, с какими проблемами мы столкнулись в первую очередь и почему. Помимо ASP.NET приложений мы так же портировали наш MS SQL Server под Docker. А в заключении мы поговорим о веб-серверах для ASP.NET приложений: — XSP — Apache — nginx
JavaScript сегодня: React, Redux и новая реальностьDenis Izmaylov
2016 год. Добро пожаловать в новую реальность.
Сегодня позиция JavaScript-разработчика является одной из самых востребованных и хорошо оплачиваемых в мире. Современные возможности JavaScript - это квестистенция всего, что произошло в отрасли разработки за всё её время существования: универсальные React-компоненты и композиция, декларативная анимация, изоморфные приложения, отсутствие side effects, авто-генерация тестов, симбиоз ООП и функционального программирования.
Последние три года выдались самые насыщенные революционные для веб-разработки. Многие разработчики, кто не успел уследить за произошедшим, задают лишь один вопрос ЧТО ПРОИСХОДИТ?
В рамках этого доклада мы попробуем синхронизироваться с JavaScript сообществом и посмотреть, что же он предоставляет нам сегодня? Как решать задачи привычные задачи? Что является актуальным направлением, а что может стать пустой тратой сил и времени?
Владимир Никонов "Вызовы при разработке enterprise продукта"Fwdays
В докладе мы рассмотрим этапы развития приложения, начиная от монолитного Web приложения, до распределенной платформы по управлению бизнес-процессами. Покажем этапы развития, задачи и вызовы, которые возникали на каждом их них. Проанализируем различные аспекты, влияющие на развитие архитектуры, такие как бизнес-требования, технологические тренды и возможные ограничения.
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Ontico
HighLoad++ 2017
Зал «Пекин + Шанхай», 8 ноября, 17:00
Тезисы:
http://www.highload.ru/2017/abstracts/2991.html
Нынче стало модно выделять UI-компоненты в отдельную библиотеку и использовать её в нескольких проектах. Мы в команде почты Mail.ru делаем так же, но столкнулись с проблемой: каждый разработчик, меняя библиотеку под свои нужды, обязательно ломает что-нибудь, что работало у других.
Я расскажу о том, как мы решили эту проблему, и о том, какие инструменты для этого можно использовать. Storybook, BackstopJS, Jest, Webdriver.io, TypeScript - в их числе.
Similar to "Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25 (20)
Александр Русаков - TypeScript 2 in actionMoscowJS
В докладе речь пойдет об основных нововведениях TypeScript 2.0 и 2.1 (literal types, discriminated unions, mapped types...) и их использовании в реальных проектах.
Виктор Розаев - Как не сломать обратную совместимость в Public APIMoscowJS
Представьте что у вас есть публичный JavaScript API. Им пользуются сторонние девелоперы от Индии до Канады, чтобы писать свои облачные сервисы. Эти сервисы продают телекомуникационные компании с многомиллиардными оборотами превышающими стоимость вашей компании. Любая остановка сервиса - миллионные убытки. Представили? А нам и представлять не надо - это наша работа. Добро пожаловать в нашу реальность. В рамках доклада мы расскажем о том, как сохранить обратную совместимость при активном развитии и неизвестных пользователях, ну и причем тут вообще интерны.
Контекст в React, Николай Надоричев, MoscowJS 31MoscowJS
Контекст стал документированной фичей сравнительно недавно, но его использование либо осуждается, либо не понимается. Такие библиотеки как react-redux или react-router успешно используют для своих нужд. В докладе рассмотрим основные аспекты работы с контекстом: зачем он нужен и какие проблемы решает.
Верстка Canvas, Алексей Охрименко, MoscowJS 31MoscowJS
Зачем? Как и когда нужно создавать пользовательский интерфейс с помощью Canvas и как обогнать React Native - обо всем этом вы узнаете из этого доклада.
Команда разработчиков Angular2 провела огромную работу над Change Detector, он стал быстрым и "умным". В докладе рассмотрим две основные фазы Angular2 приложения, куда все таки делся $apply(), и почему Angular2 обещает быть фантастически быстрым (в сравнении с AngularJs).
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33MoscowJS
В 2016 году интернет-изданиям недостаточно просто писать интересные материалы, нужно быстро и качественно их оформлять и показывать на разных устройствах. Я расскажу о нашем опыте создания JS-редактора, с помощью которого ежедневно публикуются десятки постов для 3 миллионов читателей.
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...MoscowJS
При увеличении количества проектов в компании, разработчики сталкиваются с задачей унификации кодовой базы. Решением подобной задачи может быть библиотека, фреймворк или общий набор компонент. Такой инструмент позволит разработчикам сконцентрироваться только на новых задачах, избежать дублирования кода и повысить производительность.
В HeadHunter с такой задачей столкнулись в 2014 году. Решением данной проблемы стало создание унифицированной библиотеки компонент, которая успешно используется на всех проектах HH. В своем докладе я хотел бы поделиться опытом развития библиотеки, проблемами, которые возникали при разработке, и их последовательным решением.
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29MoscowJS
Разработчики давно ищут способы оптимизации размера изображения без потери качества. Если вы готовы пуститься во все тяжкие, я расскажу как это сделать. Профит гарантирован!
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29MoscowJS
Для большинства пользователей мобильный интернет полон боли и страданий. При том что пользователей становится только больше — проблема не решается, а становится острее. Вас ожидает увлекательнейший доклад о том, как удалось разогнать до космической скорости мобильную Lenta.ru.
31. Выгоды
• Время загрузки страницы сокращается в 5-6 раз
• Снижаются затраты на поддержку
• Быстрый старт новых проектов
• Положительный эффект для SEO
• Снижает риск проблем memory leak
• Write once, run anywhere (WORA)
31
32. Промежуточный итог
• Flux — архитектура для создания клиентских
приложений
• Flux — больше шаблон, чем формальный фреймворк
• Flux создан сделать приложение более
масштабируемым, предсказуемым, а отладку - простой
• Изоморфные приложения повышают UX и снижают
затраты
32
40. Проблемы реализаций Flux
• Обилие boilerplate-кода
• Заточенность кода под API
• Логика сторов связана с их состоянием
• Сложно сделать record/replay состояний
40
41. Проблемы реализаций Flux
• Обилие boilerplate-кода
• Заточенность кода под API
• Логика сторов связана с их состоянием
• Сложно сделать record/replay состояний
• Сложная для понимания роль диспетчера
41
44. Проблемы диспетчера Flux
Store 2
Диспетчер
Action 1
Component 3
Action 1
Uncaught Error: Invariant Violation:
Dispatch.dispatch(...): Cannot dispatch in
the middle of a dispatch.
44
46. Проблемы реализаций Flux
• Обилие boilerplate-кода
• Заточенность кода под API
• Логика сторов связана с их состоянием
• Сложно сделать record/replay состояний
• Сложная для понимания роль диспетчера
• Проблема повторного использования
46
47. Проблемы Flux
при Server-Side Rendering
• Сложно реализовать асинхронную загрузку данных
• Передача состояния сторов от сервера клиенту
• Flux изначально создавался для клиентской части:
“Flux is the application architecture that Facebook
uses for building client-side web applications.”
~ https://facebook.github.io/flux/
- OK
47
60. Middleware
• Точка расширения, куда передаётся action, прежде, чем
попасть в reducers
• Функция, принимающая action, следующий middleware и Store:
60
64. react-redux: connect()
• Подключает к компоненту Store
• Возвращает новый компонент, который содержит
переданный компонент, как вложенный
• Ему в свойствах будут переданы подключенный
Store и функция dispatch
64
68. Подводим итоги
• Нет boilerplate кода, за счёт того, что мутации описываются функциями
• Как следствие - нет зависимости от API, его по сути нет
• При таком подходе легко сделать record/replay
• Нет диспетчера - нет проблемы его понимания
• Легкое повторное использование reducers, пример:
https://github.com/rackt/redux/blob/master/examples/real-world/reducers/
paginate.js
• За счёт middleware легко организовать асинхронную загрузку данных
для компонент:
https://github.com/DenisIzmaylov/redux-catch-promise
68
78. Отзывы
• “Love what you’re doing with Redux”
Jing Chen, creator of Flux
• “I asked for comments on Redux in FB's internal JS
discussion group, and it was universally praised. Really
awesome work.”
Bill Fisher, creator of Flux
Facebook в восторге
78