SlideShare a Scribd company logo
1 of 65
Download to read offline
ШРИ


Шаблонизаторы


Сергей Бережной
руководитель отдела
разработки поисковых интерфейсов
2   Многообразие видов
Многообразие видов




    • Задачи




3
Многообразие видов




    • Задачи
      – HTML




4
Многообразие видов




    • Задачи
      – HTML
      – текст




5
Многообразие видов




    • Задачи
      – HTML
      – текст
      – DOM




6
Многообразие видов




    • Задачи
    • Семантика




7
Многообразие видов




    • Задачи
    • Семантика
      – интерполяция строк




8
Многообразие видов
    • Семантика
      – интерполяция строк




       "Шоколад ни в чем не виноват, %username%."




9
Многообразие видов


     • Задачи
     • Семантика
       – интерполяция строк
        -Mustache
        -Handlebars
        -Dust
        -Jade
        -…


10
Многообразие видов




     • Задачи
     • Семантика
       – интерполяция строк
       – data bind




12
Многообразие видов
     • Семантика
       – data bind



        var html = 'Шоколад ни в чем не виноват,'
            + '<span class="name"/>.'
          , data = { username: 'John Smith' }
          , map = plates.Map();

        map.class('name').to('username');
        plates.bind(html, data, map);
13
Многообразие видов



     • Семантика
       – data bind
        -Flatiron.js templates
        -Transparency
        -Angular.js
        -Pure



14
Многообразие видов




     • Задачи
     • Семантика
       – интерполяция строк
       – data bind
       – live data bind



16
Многообразие видов



     • Задачи
     • Семантика
       – интерполяция строк
       – data bind
       – live data bind
        -Knockout.js



17
Многообразие видов



     • Задачи
     • Семантика
       – интерполяция строк
       – data bind
       – live data bind
       – data driven



19
Многообразие видов
     • Семантика
       – data driven




        <xsl:template match="username">
            <span class="name">
                <xsl:apply-templates/>
            </span>
        </xsl:template>
20
Многообразие видов
     • Семантика
       – data driven




        <xsl:template match="username">
            <span class="name">
                <xsl:apply-templates/>
            </span>
        </xsl:template>

        Шоколад ни в чем не виноват, <username>John Smith</username>.
        Вы просто созданы для лепрозория, <username>veged</username>!
21
Многообразие видов
     • Семантика
       – data driven




        Шоколад ни в чем не виноват, <span class="name">John Smith</span>.
        Вы просто созданы для лепрозория, <span class="name">veged</span>!




22
Многообразие видов


     • Задачи
     • Семантика
       – интерполяция строк
       – data bind
       – live data bind
       – data driven
        -XSLT
        -BEMHTML


23
Многообразие видов




     • Задачи
     • Семантика
     • Синтаксис




25
Многообразие видов




     • Задачи
     • Семантика
     • Синтаксис
       – текст в финальном виде + вставки




26
Многообразие видов
     • Синтаксис
       – текст в финальном виде + вставки




       <span class="name">[% username %]</span>




27
Многообразие видов




     • Задачи
     • Семантика
     • Синтаксис
       – текст в финальном виде + вставки
       – сокращённый синтаксис



28
Многообразие видов
     • Синтаксис
       – текст в финальном виде + вставки
       – сокращённый синтаксис




       span.name #{username}




29
Многообразие видов



     • Задачи
     • Семантика
     • Синтаксис
       – текст в финальном виде + вставки
       – сокращённый синтаксис
       – предметно-ориентированный синтаксис



30
Многообразие видов
     • Синтаксис
       – текст в финальном виде + вставки
       – сокращённый синтаксис
       – предметно-ориентированный синтаксис


       <xsl:template match="username">
           <span class="name">
               <xsl:apply-templates/>
           </span>
       </xsl:template>


31
Многообразие видов
     • Синтаксис
       – текст в финальном виде + вставки
       – сокращённый синтаксис
       – предметно-ориентированный синтаксис


       var html = 'Шоколад ни в чем не виноват,<span class="name"/>.'
         , data = { username: 'John Smith' }
         , map = plates.Map();

       map.class('name').to('username');
       plates.bind(html, data, map);



32
Многообразие видов




     •   Задачи
     •   Семантика
     •   Синтаксис
     •   Базовый язык




33
Многообразие видов




     •   Задачи
     •   Семантика
     •   Синтаксис
     •   Базовый язык
         – один базовый язык



34
Многообразие видов



     •   Задачи
     •   Семантика
     •   Синтаксис
     •   Базовый язык
         – один базовый язык
         – компилируется в несколько языков



35
Многообразие видов




     •   Задачи
     •   Семантика
     •   Синтаксис
     •   Базовый язык




36
37   Особенности в боевых условиях
Особенности
     • возможности по программированию логики




38
Особенности
     • возможности по программированию логики
       – переменные




38
Особенности
     • возможности по программированию логики
       – переменные
       – циклы




38
Особенности
     • возможности по программированию логики
       – переменные
       – циклы
       – функции




38
Особенности
     • возможности по программированию логики
       – переменные
       – циклы
       – функции
       – инклуды




38
Особенности
     • возможности по программированию логики
       – переменные
       – циклы
       – функции
       – инклуды
       – наследование




38
Особенности
     • возможности по программированию логики
       – переменные
       – циклы
       – функции
       – инклуды
       – наследование
     • оптимизации скорости




38
Особенности
     • возможности по программированию логики
       – переменные
       – циклы
       – функции
       – инклуды
       – наследование
     • оптимизации скорости
     • ескейпинг




38
Особенности
     • возможности по программированию логики
       – переменные
       – циклы
       – функции
       – инклуды
       – наследование
     • оптимизации скорости
     • ескейпинг
     • валидность "по построению"




38
Особенности
     • возможности по программированию логики
       – переменные
       – циклы
       – функции
       – инклуды
       – наследование
     • оптимизации скорости
     • ескейпинг
     • валидность "по построению"
     • асинхронность



38
Особенности
     • возможности по программированию логики
       – переменные
       – циклы
       – функции
       – инклуды
       – наследование
     • оптимизации скорости
     • ескейпинг
     • валидность "по построению"
     • асинхронность
     • вывод ошибок

38
Особенности
     • возможности по программированию логики
       – переменные
       – циклы
       – функции
       – инклуды
       – наследование
     • оптимизации скорости
     • ескейпинг
     • валидность "по построению"
     • асинхронность
     • вывод ошибок
     • инфраструктура
38
Заключение
• Низкий порог входа
• Низкий порог входа
• Небольшая выразительность
• Низкий порог входа
• Небольшая выразительность
• Текстовая ориентированность
• Средний порог входа
• Средний порог входа
• Больше выразительность
• Средний порог входа
• Больше выразительность
• Предметная ориентированность
• Высокий порог входа
• Высокий порог входа
• Большая выразительность
• Высокий порог входа
• Большая выразительность
• Предметная ориентированность
Сергей Бережной

     руководитель отдела
     разработки
     поисковых интерфейсов


     veged@yandex-team.ru
     github.com/veged
     @veged




Спасибо
54   Домашнее задание

More Related Content

Similar to Сергей Бережной — Шаблонизаторы

Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...Ontico
 
D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"Dev2Dev
 
Mihail Korepanov
Mihail KorepanovMihail Korepanov
Mihail Korepanovyaevents
 
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...Yandex
 
Дизайн больших приложений в ФП
Дизайн больших приложений в ФПДизайн больших приложений в ФП
Дизайн больших приложений в ФПAlexander Granin
 
Никулин Павел. Machine learning для текстового анализа
Никулин Павел. Machine learning для текстового анализаНикулин Павел. Machine learning для текстового анализа
Никулин Павел. Machine learning для текстового анализаДмитрий Шахов
 
Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей. Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей. Levon Avakyan
 
Жизнь в изоляции
Жизнь в изоляцииЖизнь в изоляции
Жизнь в изоляцииRoman Dvornov
 
SPA инструменты
SPA инструментыSPA инструменты
SPA инструментыRoman Dvornov
 
Tk conf daniel-podolsky-sqlvsnosql
Tk conf daniel-podolsky-sqlvsnosqlTk conf daniel-podolsky-sqlvsnosql
Tk conf daniel-podolsky-sqlvsnosqlDaniel Podolsky
 
SQL vs NoSQL: 
проблема выбора
SQL vs NoSQL: 
проблема выбораSQL vs NoSQL: 
проблема выбора
SQL vs NoSQL: 
проблема выбораTKConf
 
Практические аспекты разработки ПО #3
Практические аспекты разработки ПО #3Практические аспекты разработки ПО #3
Практические аспекты разработки ПО #3Denis Umnov
 
JavaScript. Introduction (in russian)
JavaScript. Introduction (in russian)JavaScript. Introduction (in russian)
JavaScript. Introduction (in russian)Mikhail Davydov
 
Аналитическая инфраструктура оптимизации рекламной сети (Александр Зайцев)
Аналитическая инфраструктура оптимизации рекламной сети (Александр Зайцев)Аналитическая инфраструктура оптимизации рекламной сети (Александр Зайцев)
Аналитическая инфраструктура оптимизации рекламной сети (Александр Зайцев)Ontico
 
Введение в отладку производительности MySQL приложений
Введение в отладку производительности MySQL приложенийВведение в отладку производительности MySQL приложений
Введение в отладку производительности MySQL приложенийSveta Smirnova
 
JavaScript on frontend and backend (in Russian
JavaScript on frontend and backend (in RussianJavaScript on frontend and backend (in Russian
JavaScript on frontend and backend (in RussianMikhail Davydov
 
Денис Иванов
Денис ИвановДенис Иванов
Денис ИвановCodeFest
 

Similar to Сергей Бережной — Шаблонизаторы (20)

Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...
 
D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"
 
Mihail Korepanov
Mihail KorepanovMihail Korepanov
Mihail Korepanov
 
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...
Михаил Корепанов "Скорость рендеринга страниц: исследования, замеры, автомати...
 
Дизайн больших приложений в ФП
Дизайн больших приложений в ФПДизайн больших приложений в ФП
Дизайн больших приложений в ФП
 
Никулин Павел. Machine learning для текстового анализа
Никулин Павел. Machine learning для текстового анализаНикулин Павел. Machine learning для текстового анализа
Никулин Павел. Machine learning для текстового анализа
 
Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей. Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей.
 
Жизнь в изоляции
Жизнь в изоляцииЖизнь в изоляции
Жизнь в изоляции
 
18.08.2012 meta ruby
18.08.2012 meta ruby18.08.2012 meta ruby
18.08.2012 meta ruby
 
SPA инструменты
SPA инструментыSPA инструменты
SPA инструменты
 
Tk conf daniel-podolsky-sqlvsnosql
Tk conf daniel-podolsky-sqlvsnosqlTk conf daniel-podolsky-sqlvsnosql
Tk conf daniel-podolsky-sqlvsnosql
 
SQL vs NoSQL: 
проблема выбора
SQL vs NoSQL: 
проблема выбораSQL vs NoSQL: 
проблема выбора
SQL vs NoSQL: 
проблема выбора
 
Практические аспекты разработки ПО #3
Практические аспекты разработки ПО #3Практические аспекты разработки ПО #3
Практические аспекты разработки ПО #3
 
Ryazan
RyazanRyazan
Ryazan
 
JavaScript. Introduction (in russian)
JavaScript. Introduction (in russian)JavaScript. Introduction (in russian)
JavaScript. Introduction (in russian)
 
Аналитическая инфраструктура оптимизации рекламной сети (Александр Зайцев)
Аналитическая инфраструктура оптимизации рекламной сети (Александр Зайцев)Аналитическая инфраструктура оптимизации рекламной сети (Александр Зайцев)
Аналитическая инфраструктура оптимизации рекламной сети (Александр Зайцев)
 
Введение в отладку производительности MySQL приложений
Введение в отладку производительности MySQL приложенийВведение в отладку производительности MySQL приложений
Введение в отладку производительности MySQL приложений
 
Little Service in 2h
Little Service in 2hLittle Service in 2h
Little Service in 2h
 
JavaScript on frontend and backend (in Russian
JavaScript on frontend and backend (in RussianJavaScript on frontend and backend (in Russian
JavaScript on frontend and backend (in Russian
 
Денис Иванов
Денис ИвановДенис Иванов
Денис Иванов
 

More from Yandex

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksYandex
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Yandex
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаYandex
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаYandex
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Yandex
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Yandex
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Yandex
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Yandex
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Yandex
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Yandex
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Yandex
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Yandex
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Yandex
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Yandex
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Yandex
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Yandex
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Yandex
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Yandex
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Yandex
 

More from Yandex (20)

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of Tanks
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
 

Сергей Бережной — Шаблонизаторы

  • 2. 2 Многообразие видов
  • 4. Многообразие видов • Задачи – HTML 4
  • 5. Многообразие видов • Задачи – HTML – текст 5
  • 6. Многообразие видов • Задачи – HTML – текст – DOM 6
  • 7. Многообразие видов • Задачи • Семантика 7
  • 8. Многообразие видов • Задачи • Семантика – интерполяция строк 8
  • 9. Многообразие видов • Семантика – интерполяция строк "Шоколад ни в чем не виноват, %username%." 9
  • 10. Многообразие видов • Задачи • Семантика – интерполяция строк -Mustache -Handlebars -Dust -Jade -… 10
  • 11.
  • 12. Многообразие видов • Задачи • Семантика – интерполяция строк – data bind 12
  • 13. Многообразие видов • Семантика – data bind var html = 'Шоколад ни в чем не виноват,' + '<span class="name"/>.' , data = { username: 'John Smith' } , map = plates.Map(); map.class('name').to('username'); plates.bind(html, data, map); 13
  • 14. Многообразие видов • Семантика – data bind -Flatiron.js templates -Transparency -Angular.js -Pure 14
  • 15.
  • 16. Многообразие видов • Задачи • Семантика – интерполяция строк – data bind – live data bind 16
  • 17. Многообразие видов • Задачи • Семантика – интерполяция строк – data bind – live data bind -Knockout.js 17
  • 18.
  • 19. Многообразие видов • Задачи • Семантика – интерполяция строк – data bind – live data bind – data driven 19
  • 20. Многообразие видов • Семантика – data driven <xsl:template match="username"> <span class="name"> <xsl:apply-templates/> </span> </xsl:template> 20
  • 21. Многообразие видов • Семантика – data driven <xsl:template match="username"> <span class="name"> <xsl:apply-templates/> </span> </xsl:template> Шоколад ни в чем не виноват, <username>John Smith</username>. Вы просто созданы для лепрозория, <username>veged</username>! 21
  • 22. Многообразие видов • Семантика – data driven Шоколад ни в чем не виноват, <span class="name">John Smith</span>. Вы просто созданы для лепрозория, <span class="name">veged</span>! 22
  • 23. Многообразие видов • Задачи • Семантика – интерполяция строк – data bind – live data bind – data driven -XSLT -BEMHTML 23
  • 24.
  • 25. Многообразие видов • Задачи • Семантика • Синтаксис 25
  • 26. Многообразие видов • Задачи • Семантика • Синтаксис – текст в финальном виде + вставки 26
  • 27. Многообразие видов • Синтаксис – текст в финальном виде + вставки <span class="name">[% username %]</span> 27
  • 28. Многообразие видов • Задачи • Семантика • Синтаксис – текст в финальном виде + вставки – сокращённый синтаксис 28
  • 29. Многообразие видов • Синтаксис – текст в финальном виде + вставки – сокращённый синтаксис span.name #{username} 29
  • 30. Многообразие видов • Задачи • Семантика • Синтаксис – текст в финальном виде + вставки – сокращённый синтаксис – предметно-ориентированный синтаксис 30
  • 31. Многообразие видов • Синтаксис – текст в финальном виде + вставки – сокращённый синтаксис – предметно-ориентированный синтаксис <xsl:template match="username"> <span class="name"> <xsl:apply-templates/> </span> </xsl:template> 31
  • 32. Многообразие видов • Синтаксис – текст в финальном виде + вставки – сокращённый синтаксис – предметно-ориентированный синтаксис var html = 'Шоколад ни в чем не виноват,<span class="name"/>.' , data = { username: 'John Smith' } , map = plates.Map(); map.class('name').to('username'); plates.bind(html, data, map); 32
  • 33. Многообразие видов • Задачи • Семантика • Синтаксис • Базовый язык 33
  • 34. Многообразие видов • Задачи • Семантика • Синтаксис • Базовый язык – один базовый язык 34
  • 35. Многообразие видов • Задачи • Семантика • Синтаксис • Базовый язык – один базовый язык – компилируется в несколько языков 35
  • 36. Многообразие видов • Задачи • Семантика • Синтаксис • Базовый язык 36
  • 37. 37 Особенности в боевых условиях
  • 38. Особенности • возможности по программированию логики 38
  • 39. Особенности • возможности по программированию логики – переменные 38
  • 40. Особенности • возможности по программированию логики – переменные – циклы 38
  • 41. Особенности • возможности по программированию логики – переменные – циклы – функции 38
  • 42. Особенности • возможности по программированию логики – переменные – циклы – функции – инклуды 38
  • 43. Особенности • возможности по программированию логики – переменные – циклы – функции – инклуды – наследование 38
  • 44. Особенности • возможности по программированию логики – переменные – циклы – функции – инклуды – наследование • оптимизации скорости 38
  • 45. Особенности • возможности по программированию логики – переменные – циклы – функции – инклуды – наследование • оптимизации скорости • ескейпинг 38
  • 46. Особенности • возможности по программированию логики – переменные – циклы – функции – инклуды – наследование • оптимизации скорости • ескейпинг • валидность "по построению" 38
  • 47. Особенности • возможности по программированию логики – переменные – циклы – функции – инклуды – наследование • оптимизации скорости • ескейпинг • валидность "по построению" • асинхронность 38
  • 48. Особенности • возможности по программированию логики – переменные – циклы – функции – инклуды – наследование • оптимизации скорости • ескейпинг • валидность "по построению" • асинхронность • вывод ошибок 38
  • 49. Особенности • возможности по программированию логики – переменные – циклы – функции – инклуды – наследование • оптимизации скорости • ескейпинг • валидность "по построению" • асинхронность • вывод ошибок • инфраструктура 38
  • 51.
  • 53. • Низкий порог входа • Небольшая выразительность
  • 54. • Низкий порог входа • Небольшая выразительность • Текстовая ориентированность
  • 55.
  • 57. • Средний порог входа • Больше выразительность
  • 58. • Средний порог входа • Больше выразительность • Предметная ориентированность
  • 59.
  • 61. • Высокий порог входа • Большая выразительность
  • 62. • Высокий порог входа • Большая выразительность • Предметная ориентированность
  • 63.
  • 64. Сергей Бережной руководитель отдела разработки поисковых интерфейсов veged@yandex-team.ru github.com/veged @veged Спасибо
  • 65. 54 Домашнее задание