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

65

Click here to load reader

Upload: yandex

Post on 05-Jul-2015

3.554 views

Category:

Technology


2 download

TRANSCRIPT

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

ШРИ

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

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

Сергей Бережной

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

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

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

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

• Задачи

3

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

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

• Задачи– HTML

4

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

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

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

5

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

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

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

6

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

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

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

7

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

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

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

– интерполяция строк

8

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

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

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

9

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

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

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

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

– интерполяция строк-Mustache-Handlebars-Dust-Jade-…

10

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

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

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

– интерполяция строк– data bind

12

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

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

• Семантика– data bind

13

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

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

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

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

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

– интерполяция строк– data bind– live data bind

16

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

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

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

– интерполяция строк– data bind– live data bind

-Knockout.js

17

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

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

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

– интерполяция строк– data bind– live data bind– data driven

19

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

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

• Семантика– data driven

20

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

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

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

• Семантика– data driven

21

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

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

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

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

• Семантика– data driven

22

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

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

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

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

– интерполяция строк– data bind– live data bind– data driven

-XSLT-BEMHTML

23

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

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

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

25

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

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

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

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

26

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

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

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

27

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

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

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

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

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

28

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

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

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

29

span.name #{username}

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

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

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

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

30

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

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

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

31

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

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

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

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

32

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

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

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

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

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

33

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

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

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

– один базовый язык

34

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

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

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

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

35

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

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

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

36

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

Особенности в боевых условиях37

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

Особенности

• возможности по программированию логики

38

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

Особенности

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

38

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

Особенности

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

38

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

Особенности

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

38

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

Особенности

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

38

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

Особенности

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

38

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

Особенности

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

• оптимизации скорости

38

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

Особенности

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

• оптимизации скорости• ескейпинг

38

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

Особенности

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

• оптимизации скорости• ескейпинг• валидность "по построению"

38

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

Особенности

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

• оптимизации скорости• ескейпинг• валидность "по построению"• асинхронность

38

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

Особенности

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

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

38

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

Особенности

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

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

38

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

Заключение

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

• Низкий порог входа

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

• Низкий порог входа• Небольшая выразительность

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

• Низкий порог входа• Небольшая выразительность• Текстовая ориентированность

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

• Средний порог входа

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

• Средний порог входа• Больше выразительность

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

• Средний порог входа• Больше выразительность• Предметная ориентированность

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

• Высокий порог входа

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

• Высокий порог входа• Большая выразительность

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

• Высокий порог входа• Большая выразительность• Предметная ориентированность

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

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

[email protected]

Спасибо

Сергей Бережной

@veged

github.com/veged

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

Домашнее задание54