Доклад, с которым я выступал 27 ноября 2014 г. на MoscowJS 17. Видеозапись самого выступления:
https://www.youtube.com/watch?v=kuXIgUsvpLo
Актуальные технологии и тренды в веб-разработкеDenis Izmaylov
Доклад, с которым я выступал на международной IT-конференции GeekWeek 2015. Видеозапись доклада:
http://geekbrains.ru/events/169
Микросервисная архитектура на базе CoreOS и KubernetesDenis Izmaylov
13 июля 2016 состоялся восьмой Node.js Meetup в Москве. В этом докладе мы рассмотрели Scale Cube, Docker, CoreOS и кратко Kubernetes и Concourse CI.
В следующем докладе взглянем более подробно на Kubernetes и Concourse CI, посмотрим как с помощью этих быстрых и прекрасных инструментов построить Deployment Automation.
"Изоморфная разработка на javascript с помощью react.js" Максим КлимишинFwdays
Современная разработка на JavaScript быстро эволиционирует – в язык входят инструменты, которые позволяют создавать прогнозируемые и надежные продукты как на сервере, так и на клиенте. С ES6 пришли генератор и итераторы, из Clojure – трансдюсеры и CSP каналы, Facebook дал React.js и Immutable.js.
Изоморфная разработка – когда один и тот же код может работать как на сервере, так и на клиенте, набирает популярность. В моем докладе я хочу раскрыть последние тренды в этой области и как это можно сделать с помощью React.js.
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальностьScrumTrek
2016 год. Добро пожаловать в новую реальность.
Сегодня позиция JavaScript-разработчика является одной из самых востребованных и хорошо оплачиваемых в мире. Современные возможности JavaScript - это квестистенция всего, что произошло в отрасли разработки за всё её время существования: универсальные React-компоненты и композиция, декларативная анимация, изоморфные приложения, отсутствие side effects, авто-генерация тестов, симбиоз ООП и функционального программирования.
Последние три года выдались самые насыщенные революционные для веб-разработки. Многие разработчики, кто не успел уследить за произошедшим, задают лишь один вопрос ЧТО ПРОИСХОДИТ?
В рамках этого доклада мы попробуем синхронизироваться с JavaScript сообществом и посмотреть, что же он предоставляет нам сегодня? Как решать задачи привычные задачи? Что является актуальным направлением, а что может стать пустой тратой сил и времени?
Изоморфные React-приложения производительность и масштабирование / Денис Изма...Ontico
Взглянем ещё раз на концепцию изоморфных приложений. На первый взгляд, всё красиво — полный порядок, высокая организованность, быстрая выдача результата. Но так ли всё оптимистично? Что случится после того, как мы развернём приложение на сервере? Почему при росте нагрузки наше React-приложение начинает тормозить? Как масштабироваться? Купить ещё несколько серверов? Потом ещё немного? Есть способ лучше.
В рамках доклада рассмотрим следующие темы:
1. Что представляют собой изоморфные приложения?
2. Зачем они на самом деле нужны?
3. Рассмотрим варианты архитектуры.
4. Найдём слабые места (bottleneck).
5. Посмотрим на способы решения и оценим их эффективность.
6. Обсудим возможности масштабирования изоморфных приложений.
7. И, самое главное, ответим на вопрос — стоит ли игра свеч?
Javascript-фреймворки: должен остаться только одинSergey Xek
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет.
В докладе пойдет речь о том, что производительность фронтенда — это больше про слаженную работу команды, про понятный и масштабируемый код, чем про сухие циферки. Но циферки тоже будут.
1) Какие у нас были проблемы с текущим фреймворком — UI, архитектура, код.
2) Как измеряли, что примерно стоит брать (исследование популярности).
3) Что рассматривали.
4) На пути к демо-проекту, какие были сложности (то, что уперли идею с Typescript, собственный компилятор шаблонов, четыре Flux-фреймворка и все плохи).
5) Два пилотных демо-проекта: цифры.
6) Оценка трудоемкости перехода.
#KharkivJS 2015, Харьков
- Мои впечатления от Webpack.
- Рассказ о его принципах работы.
- Интересные фишки Webpack 1 и 2.
- Что еще есть аналогичного и выводы.
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...Pavel Dovbush
История развития проекта с точки зрения клиентских технологий - от веб-сайта к появлению мобильных клиентов и смещению фокуса к mobile-first разработке. Общие черты нашей архитектуры и их отличия от стандартных решений.
Единый протокол общения с приложениями iOS/Android/WindowsMobile/MobileWeb/Web и особенности реализации для JavaScript платформ (десктопные и мобильные браузеры).
Изменение процесса разработки и подходов к реализации нового функционала для переключения на mobile-first стратегию.
"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- соединение с авторизацией.
Многие аналитики предрекают реактивному программированию большое будущее в решении задач Mobile и Big Data.
TypeSafe, разработчики языка Scala, создали многообещающий реактивный фреймворк Akka, который "дружит" с Java.
Чем он может быть интересен Java-разработчикам? Сможет ли Akka+Java конкурировать с Akka+Scala? И как ей в этом помогут новые фичи Java 8?
Об этом я расскажу в своем докладе "Посмотрим на Акку-Джаву".
Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016РИФ-Воронеж
"Тема выступления рассчитана, в основном, на начинающих разработчиков. В ней освещены основные концепции веб разработки с помощью фреймворка ""Ruby On Rails"". Выступление будет разделено на основные тематики:
- что это за фреймворк и что значит выражение “Ruby On Rails”
- будет рассмотрен паттерн MVC в Rails
- подробно рассмотрены соотвествующие уровни (модель, контроллер, представление)
- отправка почты, нюансы и решения
- отложенные и периодические задачи
- особое внимание будет уделено тестированию приложений"
Субъективная точка зрения на фронтенд разработку.
Площадка: IT-бар КЛЮЧ, https://vk.com/event69759919
Видео с доклада: https://www.youtube.com/watch?v=pyAYbbDJjPo
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.
Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...Yandex
Доклад о том, как решалась задача надёжного хранения файлов и данных миллионов пользователей. Рассказ про развитие архитектуры кластера Диска: от первого черновика к реальности
Доклад, с которым я выступал 24 сентября 2015 г. на MoscowJS 25. Видеозапись самого выступления:
https://www.youtube.com/watch?v=Uyk_8WWna6s
JavaScript сегодня: React, Redux и новая реальностьDenis Izmaylov
2016 год. Добро пожаловать в новую реальность.
Сегодня позиция JavaScript-разработчика является одной из самых востребованных и хорошо оплачиваемых в мире. Современные возможности JavaScript - это квестистенция всего, что произошло в отрасли разработки за всё её время существования: универсальные React-компоненты и композиция, декларативная анимация, изоморфные приложения, отсутствие side effects, авто-генерация тестов, симбиоз ООП и функционального программирования.
Последние три года выдались самые насыщенные революционные для веб-разработки. Многие разработчики, кто не успел уследить за произошедшим, задают лишь один вопрос ЧТО ПРОИСХОДИТ?
В рамках этого доклада мы попробуем синхронизироваться с JavaScript сообществом и посмотреть, что же он предоставляет нам сегодня? Как решать задачи привычные задачи? Что является актуальным направлением, а что может стать пустой тратой сил и времени?
Performance and Scalability Art of Isomorphic React ApplicationsDenis Izmaylov
A couple weeks ago I have talked at React Amsterdam Meetup about Performance and Scalability of Isomorphic React Application.
Have a look at the video from this talk: https://www.youtube.com/watch?list=PLNBNS7NRGKMGLeJj3cuE4JDqJ0_9xAbZV&v=kI19MCP-wIE
Изоморфные React-приложения производительность и масштабирование / Денис Изма...Ontico
Взглянем ещё раз на концепцию изоморфных приложений. На первый взгляд, всё красиво — полный порядок, высокая организованность, быстрая выдача результата. Но так ли всё оптимистично? Что случится после того, как мы развернём приложение на сервере? Почему при росте нагрузки наше React-приложение начинает тормозить? Как масштабироваться? Купить ещё несколько серверов? Потом ещё немного? Есть способ лучше.
В рамках доклада рассмотрим следующие темы:
1. Что представляют собой изоморфные приложения?
2. Зачем они на самом деле нужны?
3. Рассмотрим варианты архитектуры.
4. Найдём слабые места (bottleneck).
5. Посмотрим на способы решения и оценим их эффективность.
6. Обсудим возможности масштабирования изоморфных приложений.
7. И, самое главное, ответим на вопрос — стоит ли игра свеч?
Javascript-фреймворки: должен остаться только одинSergey Xek
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет.
В докладе пойдет речь о том, что производительность фронтенда — это больше про слаженную работу команды, про понятный и масштабируемый код, чем про сухие циферки. Но циферки тоже будут.
1) Какие у нас были проблемы с текущим фреймворком — UI, архитектура, код.
2) Как измеряли, что примерно стоит брать (исследование популярности).
3) Что рассматривали.
4) На пути к демо-проекту, какие были сложности (то, что уперли идею с Typescript, собственный компилятор шаблонов, четыре Flux-фреймворка и все плохи).
5) Два пилотных демо-проекта: цифры.
6) Оценка трудоемкости перехода.
#KharkivJS 2015, Харьков
- Мои впечатления от Webpack.
- Рассказ о его принципах работы.
- Интересные фишки Webpack 1 и 2.
- Что еще есть аналогичного и выводы.
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...Pavel Dovbush
История развития проекта с точки зрения клиентских технологий - от веб-сайта к появлению мобильных клиентов и смещению фокуса к mobile-first разработке. Общие черты нашей архитектуры и их отличия от стандартных решений.
Единый протокол общения с приложениями iOS/Android/WindowsMobile/MobileWeb/Web и особенности реализации для JavaScript платформ (десктопные и мобильные браузеры).
Изменение процесса разработки и подходов к реализации нового функционала для переключения на mobile-first стратегию.
"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- соединение с авторизацией.
Многие аналитики предрекают реактивному программированию большое будущее в решении задач Mobile и Big Data.
TypeSafe, разработчики языка Scala, создали многообещающий реактивный фреймворк Akka, который "дружит" с Java.
Чем он может быть интересен Java-разработчикам? Сможет ли Akka+Java конкурировать с Akka+Scala? И как ей в этом помогут новые фичи Java 8?
Об этом я расскажу в своем докладе "Посмотрим на Акку-Джаву".
Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016РИФ-Воронеж
"Тема выступления рассчитана, в основном, на начинающих разработчиков. В ней освещены основные концепции веб разработки с помощью фреймворка ""Ruby On Rails"". Выступление будет разделено на основные тематики:
- что это за фреймворк и что значит выражение “Ruby On Rails”
- будет рассмотрен паттерн MVC в Rails
- подробно рассмотрены соотвествующие уровни (модель, контроллер, представление)
- отправка почты, нюансы и решения
- отложенные и периодические задачи
- особое внимание будет уделено тестированию приложений"
Субъективная точка зрения на фронтенд разработку.
Площадка: IT-бар КЛЮЧ, https://vk.com/event69759919
Видео с доклада: https://www.youtube.com/watch?v=pyAYbbDJjPo
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.
Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...Yandex
Доклад о том, как решалась задача надёжного хранения файлов и данных миллионов пользователей. Рассказ про развитие архитектуры кластера Диска: от первого черновика к реальности
Доклад, с которым я выступал 24 сентября 2015 г. на MoscowJS 25. Видеозапись самого выступления:
https://www.youtube.com/watch?v=Uyk_8WWna6s
JavaScript сегодня: React, Redux и новая реальностьDenis Izmaylov
2016 год. Добро пожаловать в новую реальность.
Сегодня позиция JavaScript-разработчика является одной из самых востребованных и хорошо оплачиваемых в мире. Современные возможности JavaScript - это квестистенция всего, что произошло в отрасли разработки за всё её время существования: универсальные React-компоненты и композиция, декларативная анимация, изоморфные приложения, отсутствие side effects, авто-генерация тестов, симбиоз ООП и функционального программирования.
Последние три года выдались самые насыщенные революционные для веб-разработки. Многие разработчики, кто не успел уследить за произошедшим, задают лишь один вопрос ЧТО ПРОИСХОДИТ?
В рамках этого доклада мы попробуем синхронизироваться с JavaScript сообществом и посмотреть, что же он предоставляет нам сегодня? Как решать задачи привычные задачи? Что является актуальным направлением, а что может стать пустой тратой сил и времени?
Performance and Scalability Art of Isomorphic React ApplicationsDenis Izmaylov
A couple weeks ago I have talked at React Amsterdam Meetup about Performance and Scalability of Isomorphic React Application.
Have a look at the video from this talk: https://www.youtube.com/watch?list=PLNBNS7NRGKMGLeJj3cuE4JDqJ0_9xAbZV&v=kI19MCP-wIE
Isomorphic React Applications: Performance And ScalabilityDenis Izmaylov
Isomorphic React applications allow code to run on both the client and server, improving performance and scalability. Server-side rendering builds HTML on the server so the page loads immediately before JavaScript loads. This improves the user experience but requires loading data asynchronously. Caching pre-rendered components and separating rendering can improve performance. Progressive rendering and Facebook's BigPipe technique can further optimize loading. Performance can also be improved through code optimizations like using direct React files and load balancing with multiple server instances.
PreJSS is a CSS-to-JavaScript adapter that allows developers to write CSS and have it converted to JavaScript and JSS syntax for use in React applications. It aims to eliminate the "CSS wars" by providing a way to leverage existing CSS while still using CSS-in-JS libraries. PreJSS uses a CSS parser, adapter, and optional PostCSS processing to take CSS code and output compatible JavaScript and JSS objects. This avoids many of the complexities that arose from different CSS preprocessor formats and libraries, and helps developers focus on their applications rather than stylistic differences.
Подводные камни, костыли и полученный опыт.
В первую очередь, рассказ ориентирован на тех, кто хочет заменить сборку Грантом или Гальпом на вебпак. Я рассмотрю тонкости настройки и необычные проблемы, с которыми мы столкнулись, ибо стандартные ситуации хорошо описаны на просторах интернета.
https://github.com/blackie1019/ReactNetDemo
This is a sample for demo how to use .Net MVC5 + Webpack + React + Babel to build Web Application
Universal Design is an approach to designing products and environments to be usable by all people without needing adaptation or specialized design. It aims to make learning accessible for students with disabilities, English language learners, gifted students, and others who may struggle with traditional designs by incorporating multiple means of representation, action and expression, and engagement. This includes providing various options for how students receive and understand information, demonstrate their knowledge, and maintain interest in learning. Assessment of students also follows these principles of universality and flexibility.
IDC interviewed nine organizations that are using Red Hat OpenShift as their primary application development platform. These organizations reported that OpenShift helps them deliver timely and compelling applications and features across their complex and heterogeneous IT environments and supports key IT initiatives such as containerization, microservices, and cloud migration strategies.
Slideshare allows users to share presentations online with small or no file size limits. It offers web-based presentation sharing without large file uploads. Users can upload and embed presentations on their website or blog for others to view without downloading files.
В лекции мы попробуем взглянуть на страницу глазами пользователей и понять, что можно сделать для ускорения ее загрузки. Рассмотрим основные оптимизации на стороне браузера, познакомимся с инструментами для измерения времени отображения.
Доклад об особенностях фронтенд-разработки. Речь пойдет о специфике разработки интерфейсов в больших и маленьких компаниях и о том, что должен знать хороший фронтенд-разработчик. Вы узнаете также, как устроен процесс разработки в Яндексе и какие интерфейсные задачи мы решаем.
Доклад об особенностях фронтенд-разработки. Речь пойдет о специфике разработки интерфейсов в больших и маленьких компаниях и о том, что должен знать хороший фронтенд-разработчик. Вы узнаете также, как устроен процесс разработки в Яндексе и какие интерфейсные задачи мы решаем.
Доклад об особенностях фронтенд-разработки. Речь пойдет о специфике разработки интерфейсов в больших и маленьких компаниях и о том, что должен знать хороший фронтенд-разработчик. Вы узнаете также, как устроен процесс разработки в Яндексе и какие интерфейсные задачи мы решаем.
Построение собственного JS SDK — зачем и как?buranLcme
Многие разработчики любят делать свои велосипеды, но не все задумываются зачем. Мы расскажем о том, зачем вам может понадобится собственный JavaScript SDK и полезно ли кататься на велосипедах.
Мы делали собственный JS SDK для того, чтобы дать возможность создания плагинов в рамках большой enterprise системы - <b>Parallels Automation</b> и <b>Plesk Panel</b>. Сам SDK является частью общего стандарта <b>APS</b>, который является шиной, объединяющей все наши продукты по автоматизации. Обе панели брендируются и мы должны были сохранить брендинг при уже существующей кодовой базе верстки и существующих правилах оформления. И главное - надо было дать возможность создания UI сторонним девелоперам, которые могут иметь абсолютно разный уровень - от пришедших бекэндеров до профессиональных js-разработчиков.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TKConf
Расскажу об организации процесса разработки Frontend в единый конвейер, чтобы увеличить скорость и минимизировать затраты с рисками.
Как организовать верстку макета по фантастичному макету дизайнера при этом не вогнав в когнитивный диссонанс результатом на Bootstrap.
Каким образом объединить воинствующие стороны: Frontend, Backend и дизайнеров.
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (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 - в их числе.
SECON'2016. Аверин Сергей, Javascript-фреймворки: должен остаться только одинSECON
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет.
SECON'2016. Сергей Аверин. Javascript-фреймворки: должен остаться только одинSECON
Рассказ от 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) Оценка трудоемкости перехода.
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Yandex
Рассказ о том, что представляет собой наш «станок» верстальщика сегодня. Рассказывается с примерами, какие браузеры поддерживаем, как производим кроссбраузерное тестирование и какие инструменты используем, готовя проект к выходу в свет.
State of the Standardized Web
В 2014 году принципы Extensible Web начали воплощаться в новых стандартах. Поговорим о Web Crypto, Web Animations, Service Worker и других вещах, которые должны принципиально изменить веб-платформу в ближайшем будущем.
Сергей Константинов, Яндекс
Руководитель группы разработки API Яндекс.Карт. Окончил Южно-Уральский государственный университет. Разработкой API Яндекс.Карт занимается с 2008 года. С 2013 — участник Технической архитектурной группы Консорциума W3C.
12. Локальные проблемы проектов
• Зависимости
• Загружены ли стили?
• А шаблоны?
• А библиотека?
• А нужный jQuery-плагин?
• А локализация для него?
• А стили?…
12
13. Локальные проблемы проектов
• Версии
• Один плагин требует jQuery 1.8
• Второй плагин требует jQuery 2.1
• Что делать?
13
19. CommonJS
Преимущества перед AMD:
• читабельность
• “писабельность”
• изоморфизм:
var _ = require("lodash");
var data = require("./stock.json");
module.exports = _.where(data, function (item) {
return item[‘count’] > 0;
});
19
20. AMD & CommonJS
• создавать изолированные модули
• использовать их
• не думать о порядке загрузки
• подключать любую статику
• собирать всё в один JS-файл
• использовать разные версии библиотек
20
21. Итого
• Глобальные проблемы веб-разработки
• многообразие решения, версии, форматы
• Локальные проблемы проектов
• функциональный и технологический
• управление зависимостями и версиями
• Способы решения
• AMD
• CommonJS - лучшее
21
32. API для плагинов
• Логика сборки и поиска модулей
• Самое сердце процесса
• Рассмотрим примеры:
• DefinePlugin
• BowerWebpackPlugin
• ExtractTextPlugin
32
37. BowerWebpackPlugin
• Прозрачное использование bower-компонент
• Использование:
$ bower install jquery —save
в коде:
var $ = require("jquery");
$("body").html("Hello MoscowJS!");
• Уже более 20000 пакетов
37
38. ExtractTextPlugin
• Позволяет извлекать данные и собирать их в один файл
• Настройка:
…
module: {
loaders: {
test: /.css$/,
loader: ExtractTextPlugin.extract("style-loader",
"css-loader")
}
},
plugins: [
new ExtractTextPlugin("style.css")
]
…
38
44. Пример подключения JSX
Использование:
var React = require("react");
// loads toolbar.jsx
var Toolbar = require("./toolbar");
React.render(
React.createElement(Toolbar, null),
document.getElementById("toolbar")
);
44
45. webpack-dev-server
• Инструмент для ускорения разработки
• Автоматическое обновления страницы без
пересборки проекта
• Можно запускать, как модуль или CLI
45
46. webpack-dev-server
• Как это работает:
• Веб-сервер на основе assets-директории
• При подключении файла-сборки,
устанавливает соединение через socket.io
• Как только что-то изменилось -
автоматически обновляется страница
46
47. Hot Module Replacement
• Обновления изменённых частей в реальном
времени
• Без перезагрузки страниц
• Это опция webpack-dev-server
47
48. Hot Module Replacement
Как это работает с React:
• В окне IDE изменяете код компонента
• В это время через открытое socket-соединение
передаётся информация об изменённой части
• Происходит “горячая” замена компонента
(unmount + mount)
• На странице обновляется только компонент
48
49. Итого
• AMD и CommonJS
• Более 30 готовых плагинов
• Более 50 готовых загрузчиков
• Асинхронной сборка
• Чанки (chunks)
• Развитые инструменты разработки
49
52. Так можно доверять?
• Команда Facebook использует webpack для веб-
интерфейса Instagram
• Twitter использует webpack для своих проектов
(Fronteers 2014, Nicholas Gallagher)
52
53. Заключение
• Глобальные проблемы веб-разработки
• Многообразие, версия, форматов
• Локальные проблемы проектов
• Функциональный и технологический рост
• Управление зависимостями и версиями
• Решение
• CommonJS и webpack
53