SlideShare a Scribd company logo
1 of 39
Download to read offline
POLYMER 
New Era 
of 
Web Development
ЧТО ТАКОЕ POLYMER? 
Библиотека, которая использует 
новейшие веб-технологии 
Elements 
Core 
(polymer.js) 
Foundation 
(platform.js) 
для создания 
пользовательских HTML элементов
ЧТО ТАКОЕ POLYMER? 
Elements 
Core 
(polymer.js) 
Foundation 
(platform.js)
ВСЕ ЕСТЬ ЭЛЕМЕНТ
ВСЕ ЕСТЬ ЭЛЕМЕНТ 
Layout 
Data 
View 
Services/libs 
<polymer-layout> 
<polymer-flex-layout> 
<polymer-grid-layout> 
<polymer-media-query> 
<polymer-page> 
<polymer-localstorage> 
<polymer-xhr> 
<polymer-jsonp> 
<polymer-file> 
<polymer-meta> 
<your-custom-lib> 
<google-doc> 
<google-map> 
<google-youtube> 
<google-sheets>
ЗАГЛЯНЕМ ГЛУБЖЕ
ЗАГЛЯНЕМ ГЛУБЖЕ 
Декларирование элемента
ЗАГЛЯНЕМ ГЛУБЖЕ 
Шаблон элемента
ЗАГЛЯНЕМ ГЛУБЖЕ 
Shadow DOM
ЗАГЛЯНЕМ ГЛУБЖЕ 
Code and logic…
ПОДРОБНЕЕ О ВЕБ-КОМПОНЕНТАХ 
(ШАБЛОНЫ) 
• Поведение как у привычных шаблонов 
• Контент шаблона инертен (не происходит подгрузки внешних 
элементов) пока шаблон не активирован 
• Не возникает краевых эффектов с внешними элементами 
• Как-бы «не в документе» - селекторы его не возвращают 
содержимое шаблона
Shadow DOM 
Всем выйти 
из сумрака! 
http://illustrators.ru/illustrations/195271
SHADOW DOM 
множество DOM деревьев в пределах родительского 
… 
shadow host 
Document Tree 
child … child 
Shadow Trees 
Shadow 
shadow root 
chil chil 
… … 
…
SHADOW DOM 
• Light DOM
SHADOW DOM 
• Light DOM 
• Shadow DOM 
Light DOM + Shadow DOM = Logical DOM (с этим работает разработчик)
SHADOW DOM 
• Light DOM 
• Shadow DOM 
• Composed (rendered) DOM 
Браузер использует Composed DOM для вывода на странице
SHADOW DOM 
Polymer позволяет перейти 
на светлую сторону 
от императивной работы с Shadow DOM к декларативной
HTML IMPORTS 
• Нативные способы доставки ресурсов 
(<script src>, <link rel="stylesheet">, <img>, <video>, <audio>) 
• А если нужно доставить HTML? 
• <iframe> 
• AJAX (xhr.responseType = ‘document') 
• CrazyHacks™ (<script type="text/html">)
HTML IMPORTS 
• Веб-компоненты позволяют делать это проще 
• … даже с другого домена
HTML IMPORTS 
• Мы хотим больше! (HTML/CSS/JS)
HTML IMPORTS 
• А что с производительностью? 
• Vulcanize (https://github.com/Polymer/vulcanize) 
• активно используется кэширование браузера 
• асинхронная загрузка компонентов 
• импорты не блокируют парсинг 
• импорты не заставляют компонент «исполняться» сразу
DATA BINDING 
• Двусторонняя (two-way) связка данных
DATA BINDING 
(ТИПЫ СВЯЗЫВАНИЯ) 
• Экземпляры одного шаблона
DATA BINDING 
(ТИПЫ СВЯЗЫВАНИЯ) 
• Итеративные шаблоны
DATA BINDING 
(ТИПЫ СВЯЗЫВАНИЯ) 
• Шаблоны с условием
DATA BINDING 
(ТИПЫ СВЯЗЫВАНИЯ) 
• Использование шаблонов по ссылке
DATA BINDING 
(ТИПЫ СВЯЗЫВАНИЯ) 
• Использование шаблонов по ссылке 
… или так
DATA BINDING 
(ТИПЫ СВЯЗЫВАНИЯ) 
• Binding to text 
• Binding to attributes 
• Binding to input values 
<input>, <select>, <option>, <textarea>
DATA BINDING 
{{ВЫРАЖЕНИЯ}} 
• Устраняет использование сложной логики в 
представлениях (view) 
• Выражения не являются скриптом 
• Не вставляют HTML (позволяют избежать XSS) 
• Поддерживают вложенность
DATA BINDING 
ДЕКЛАРАТИВНЫЕ ОБРАБОТЧИКИ СОБЫТИЙ
DATA BINDING 
АВТОМАТИЧЕСКИЙ ПОИСК ЭЛЕМЕНТА
СТИЛИЗАЦИЯ ЭЛЕМЕНТОВ
СТИЛИЗАЦИЯ ЭЛЕМЕНТОВ 
• Polymer умеет вставлять файлы стилей в элементы 
(нативный Shadow DOM это НЕ умеет)
СТИЛИЗАЦИЯ ЭЛЕМЕНТОВ 
• Polymer умеет вставлять файлы стилей в элементы 
(нативный Shadow DOM это НЕ умеет) 
Разворачивается в
НАТИВНАЯ ПОДДЕРЖКА
POLYMER 
Elements 
Core 
(polymer.js) 
Foundation 
(platform.js) 
когда все браузеры 
реализуют спецификацию 
этот слой станет не нужен
ЧТО ЕСТЬ УЖЕ СЕЙЧАС? 
• Core Elements 
• Paper Elements (+Material Design) 
• Community Elements (Github, etc…)
POLYMER DESIGNER 
https://www.polymer-project.org/tools/designer/ 
Создание прототипов простым перетаскиванием
СПАСИБО ЗА ВНИМАНИЕ 
• https://www.polymer-project.org/ 
• https://plus.google.com/+PolymerProject 
• http://customelements.io/ 
• http://habrahabr.ru/post/180377/ 
Кириллов Александр 
Twitter: @saratovsource 
LinkedIn: ru.linkedin.com/in/kirillovalexander/

More Related Content

Viewers also liked

сервисы создания и хранения презентаций
сервисы создания и хранения презентацийсервисы создания и хранения презентаций
сервисы создания и хранения презентаций
magabova
 

Viewers also liked (11)

Новое Ялагино
Новое ЯлагиноНовое Ялагино
Новое Ялагино
 
Enhancing Performance of Biopolymers Through Polymer and Formulation Design
Enhancing Performance of Biopolymers Through Polymer and Formulation DesignEnhancing Performance of Biopolymers Through Polymer and Formulation Design
Enhancing Performance of Biopolymers Through Polymer and Formulation Design
 
Synthesis and properties of Polyaniline
Synthesis and properties of PolyanilineSynthesis and properties of Polyaniline
Synthesis and properties of Polyaniline
 
Spiral Dynamics and Agile Software Development
Spiral Dynamics and Agile Software DevelopmentSpiral Dynamics and Agile Software Development
Spiral Dynamics and Agile Software Development
 
Organic light emitting diode (oled)
Organic light emitting diode (oled)Organic light emitting diode (oled)
Organic light emitting diode (oled)
 
CROSS Development Group
CROSS Development Group CROSS Development Group
CROSS Development Group
 
Умный Жилой Комплекс 2015
Умный Жилой Комплекс 2015Умный Жилой Комплекс 2015
Умный Жилой Комплекс 2015
 
Polymer processing, characterisation and applications
Polymer processing, characterisation and applicationsPolymer processing, characterisation and applications
Polymer processing, characterisation and applications
 
Ch08
Ch08Ch08
Ch08
 
сервисы создания и хранения презентаций
сервисы создания и хранения презентацийсервисы создания и хранения презентаций
сервисы создания и хранения презентаций
 
Processing polymer
Processing polymerProcessing polymer
Processing polymer
 

Similar to Polymer - New Era of Web Development

Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?
buranLcme
 
сравнение Drupal и 1с битрикс
сравнение Drupal и 1с битрикссравнение Drupal и 1с битрикс
сравнение Drupal и 1с битрикс
Andrii Podanenko
 
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
GetDev.NET
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Yandex
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
Yandex
 

Similar to Polymer - New Era of Web Development (20)

Фронтенд разработка без боли
Фронтенд разработка без болиФронтенд разработка без боли
Фронтенд разработка без боли
 
Catalyst – MVC framework на Perl (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl (RIT 2008)
 
Mobile web apps
Mobile web appsMobile web apps
Mobile web apps
 
Meet Magento Belarus 2015: Denis Bosak
Meet Magento Belarus 2015: Denis BosakMeet Magento Belarus 2015: Denis Bosak
Meet Magento Belarus 2015: Denis Bosak
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
 
Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?
 
сравнение Drupal и 1с битрикс
сравнение Drupal и 1с битрикссравнение Drupal и 1с битрикс
сравнение Drupal и 1с битрикс
 
Быстро о быстром
Быстро о быстромБыстро о быстром
Быстро о быстром
 
Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéРазработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для Caché
 
Web and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard LebedyukWeb and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard Lebedyuk
 
My Open Source (Sept 2017)
My Open Source (Sept 2017)My Open Source (Sept 2017)
My Open Source (Sept 2017)
 
09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворки09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворки
 
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ruБаба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
 
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
 
Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"
Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"
Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
 
Есть ли жизнь с ORM или типовая архитектура CRUD приложения
Есть ли жизнь с ORM или типовая архитектура CRUD приложенияЕсть ли жизнь с ORM или типовая архитектура CRUD приложения
Есть ли жизнь с ORM или типовая архитектура CRUD приложения
 
Отполифиль свой CSS - MinskCSS 2
Отполифиль свой CSS - MinskCSS 2Отполифиль свой CSS - MinskCSS 2
Отполифиль свой CSS - MinskCSS 2
 

More from Alexander Kirillov (9)

Rom - Ruby Object Mapper
Rom - Ruby Object MapperRom - Ruby Object Mapper
Rom - Ruby Object Mapper
 
Окружение разработчика - от виртуализации к контейнеризации
Окружение разработчика - от виртуализации к контейнеризацииОкружение разработчика - от виртуализации к контейнеризации
Окружение разработчика - от виртуализации к контейнеризации
 
Виртуализация как инструмент разработчика
Виртуализация как инструмент разработчикаВиртуализация как инструмент разработчика
Виртуализация как инструмент разработчика
 
Application deployment & configuration management
Application deployment & configuration managementApplication deployment & configuration management
Application deployment & configuration management
 
XSLT. Basic.
XSLT. Basic.XSLT. Basic.
XSLT. Basic.
 
Предметно-ориентированные языки программирования (DSL)
Предметно-ориентированные языки программирования (DSL)Предметно-ориентированные языки программирования (DSL)
Предметно-ориентированные языки программирования (DSL)
 
Securing Rails Applications
Securing Rails ApplicationsSecuring Rails Applications
Securing Rails Applications
 
Ruby gui
Ruby guiRuby gui
Ruby gui
 
I18n
I18nI18n
I18n
 

Polymer - New Era of Web Development

  • 1. POLYMER New Era of Web Development
  • 2. ЧТО ТАКОЕ POLYMER? Библиотека, которая использует новейшие веб-технологии Elements Core (polymer.js) Foundation (platform.js) для создания пользовательских HTML элементов
  • 3. ЧТО ТАКОЕ POLYMER? Elements Core (polymer.js) Foundation (platform.js)
  • 5. ВСЕ ЕСТЬ ЭЛЕМЕНТ Layout Data View Services/libs <polymer-layout> <polymer-flex-layout> <polymer-grid-layout> <polymer-media-query> <polymer-page> <polymer-localstorage> <polymer-xhr> <polymer-jsonp> <polymer-file> <polymer-meta> <your-custom-lib> <google-doc> <google-map> <google-youtube> <google-sheets>
  • 11. ПОДРОБНЕЕ О ВЕБ-КОМПОНЕНТАХ (ШАБЛОНЫ) • Поведение как у привычных шаблонов • Контент шаблона инертен (не происходит подгрузки внешних элементов) пока шаблон не активирован • Не возникает краевых эффектов с внешними элементами • Как-бы «не в документе» - селекторы его не возвращают содержимое шаблона
  • 12. Shadow DOM Всем выйти из сумрака! http://illustrators.ru/illustrations/195271
  • 13. SHADOW DOM множество DOM деревьев в пределах родительского … shadow host Document Tree child … child Shadow Trees Shadow shadow root chil chil … … …
  • 14. SHADOW DOM • Light DOM
  • 15. SHADOW DOM • Light DOM • Shadow DOM Light DOM + Shadow DOM = Logical DOM (с этим работает разработчик)
  • 16. SHADOW DOM • Light DOM • Shadow DOM • Composed (rendered) DOM Браузер использует Composed DOM для вывода на странице
  • 17. SHADOW DOM Polymer позволяет перейти на светлую сторону от императивной работы с Shadow DOM к декларативной
  • 18. HTML IMPORTS • Нативные способы доставки ресурсов (<script src>, <link rel="stylesheet">, <img>, <video>, <audio>) • А если нужно доставить HTML? • <iframe> • AJAX (xhr.responseType = ‘document') • CrazyHacks™ (<script type="text/html">)
  • 19. HTML IMPORTS • Веб-компоненты позволяют делать это проще • … даже с другого домена
  • 20. HTML IMPORTS • Мы хотим больше! (HTML/CSS/JS)
  • 21. HTML IMPORTS • А что с производительностью? • Vulcanize (https://github.com/Polymer/vulcanize) • активно используется кэширование браузера • асинхронная загрузка компонентов • импорты не блокируют парсинг • импорты не заставляют компонент «исполняться» сразу
  • 22. DATA BINDING • Двусторонняя (two-way) связка данных
  • 23. DATA BINDING (ТИПЫ СВЯЗЫВАНИЯ) • Экземпляры одного шаблона
  • 24. DATA BINDING (ТИПЫ СВЯЗЫВАНИЯ) • Итеративные шаблоны
  • 25. DATA BINDING (ТИПЫ СВЯЗЫВАНИЯ) • Шаблоны с условием
  • 26. DATA BINDING (ТИПЫ СВЯЗЫВАНИЯ) • Использование шаблонов по ссылке
  • 27. DATA BINDING (ТИПЫ СВЯЗЫВАНИЯ) • Использование шаблонов по ссылке … или так
  • 28. DATA BINDING (ТИПЫ СВЯЗЫВАНИЯ) • Binding to text • Binding to attributes • Binding to input values <input>, <select>, <option>, <textarea>
  • 29. DATA BINDING {{ВЫРАЖЕНИЯ}} • Устраняет использование сложной логики в представлениях (view) • Выражения не являются скриптом • Не вставляют HTML (позволяют избежать XSS) • Поддерживают вложенность
  • 30. DATA BINDING ДЕКЛАРАТИВНЫЕ ОБРАБОТЧИКИ СОБЫТИЙ
  • 31. DATA BINDING АВТОМАТИЧЕСКИЙ ПОИСК ЭЛЕМЕНТА
  • 33. СТИЛИЗАЦИЯ ЭЛЕМЕНТОВ • Polymer умеет вставлять файлы стилей в элементы (нативный Shadow DOM это НЕ умеет)
  • 34. СТИЛИЗАЦИЯ ЭЛЕМЕНТОВ • Polymer умеет вставлять файлы стилей в элементы (нативный Shadow DOM это НЕ умеет) Разворачивается в
  • 36. POLYMER Elements Core (polymer.js) Foundation (platform.js) когда все браузеры реализуют спецификацию этот слой станет не нужен
  • 37. ЧТО ЕСТЬ УЖЕ СЕЙЧАС? • Core Elements • Paper Elements (+Material Design) • Community Elements (Github, etc…)
  • 38. POLYMER DESIGNER https://www.polymer-project.org/tools/designer/ Создание прототипов простым перетаскиванием
  • 39. СПАСИБО ЗА ВНИМАНИЕ • https://www.polymer-project.org/ • https://plus.google.com/+PolymerProject • http://customelements.io/ • http://habrahabr.ru/post/180377/ Кириллов Александр Twitter: @saratovsource LinkedIn: ru.linkedin.com/in/kirillovalexander/