SlideShare a Scribd company logo
Баба-яга против! 
Роман Дворнов 
Екатеринбург, 19 cентября 2014
О себе 
• Работал в ostrovok.ru, 
Единный кошелек 
• Автор basis.js 
2
О себе 
• Работал в ostrovok.ru, 
Единный кошелек 
3 
• Автор basis.js
Сказка 
4
Сначала был Интернет… 
5
Microsoft vs. Netscape 
6
7
IE6 
8
IE, ты все делаешь не так – уходи! 
9
10
Победила дружба… 
любовь к стандартам 
11
Стандарты 
Средство от мигреней* 
* …зуда, запора, вопросов о смысле жизни 
12
“Проприетарные фичи, которые не 
прошли процесс стандартизации 
обычно имеют плохой дизайн, 
даже когда идея была хорошей.” 
– Lea Verou 
Каждый раз, когда вы выдаете проприетарную фичу за CSS3 — умирает котенок 
http://habrahabr.ru/post/138252/ 
13
В идеале 
• предложение и обсуждение 
• черновик стандарта 
• пробные реализации 
• стандарт 
• официальные реализации 
14
В идеале 
• предложение и обсуждение 
• черновик стандарта 
• пробные реализации 
• стандарт 
• официальные реализации 
14 
с префиксом или 
«за флагом»
В идеале 
• предложение и обсуждение 
• черновик стандарта 
• пробные реализации 
• стандарт 
• официальные реализации 
14 
с префиксом или 
«за флагом» 
можно 
безопасно 
использовать
В действительности 
• предложение и обсуждение 
• черновик стандарта 
• пробные реализации 
• стандарт 
• официальные реализации 
15
16
Promise 
Я обещаю быть лапочкой 
17
Promise – "лекарство" от 
callback-hell 
Михаил Давыдов «Promise – это не больно» 
fronttalks.ru/events/2013-07/presentations/davydov/index.html 
18
Множество реализаций 
19
Официальная спецификация 
Promises/A+ 
promisesaplus.com 
20
Давайте сделаем частью 
JavaScript! 
* стало частью ES6 
21
Мы знаем как надо – 
префиксы не нужны! 
22
Должно было быть 
! 
var promiseSupported = 'Promise' in window; 
23
В действительности 
var NativePromise = window['Promise']; 
var nativePromiseSupported = 
NativePromise && 
// Some of these methods are missing from 
// Firefox/Chrome experimental implementations 
'resolve' in NativePromise && 
'reject' in NativePromise && 
'all' in NativePromise && 
'race' in NativePromise && 
// Older version of the spec had a resolver object 
// as the arg rather than a function 
(function(){ 
var resolve; 
new NativePromise(function(r){ resolve = r; }); 
return typeof resolve === 'function'; 
})(); 
24
“Успех – паршивый учитель. 
Он заставляет умных людей 
думать, что они не могут 
проиграть.” 
– Bill Gates 
25
Хотите использовать сегодня – 
готовьте полифил 
Например, github.com/lahmatiy/es6-promise-polyfill 
26
Зато нативные реализации 
лучше! 
27
Правда? 
28 
Browser 
Time, ms Memory, MB 
Native Polyfill Native Polyfill 
Chrome 35 162 50 10,5 2,7 
Firefox 30 161 39 – – 
IE11 – 12 – 2,8 
gist.github.com/lahmatiy/d4d6316418fe349537dc
Promise-истерия 
29
Применяй с умом! 
Promise anti-patterns 
taoofcode.net/promise-anti-patterns/ 
30
Promise проникают 
в стандарты 
31
DOM4 
32
DOM4 
• декабрь 2013: 
«Черновик стандарта DOM4 включает в себя Promises 
как примитив языка...» 
WSD: Сергей Константинов — Что интересного готовит нам W3C 
www.slideshare.net/yandex/w3c-28967881 
32
DOM4 
• декабрь 2013: 
«Черновик стандарта DOM4 включает в себя Promises 
как примитив языка...» 
WSD: Сергей Константинов — Что интересного готовит нам W3C 
www.slideshare.net/yandex/w3c-28967881 
• январь 2014: 
Promise исключены из DOM4 – теперь просто часть ES6 
32
Ссылаются на DOM4 
• Web NFC 
• Quota Management 
• Web Cryptography 
• Web MIDI 
• Device Capabilities 
• Messaging 
• Contacts Manager 
• Web Telephony 
33 
Вот так одна 
спецификация может 
"отравить" другие
Ссылаются на ES6 
34 
• CSS Font Loading 
• Web animations (с июля 2014) 
• Service Workers 
• TCP and UDP Socket 
• Streams 
• Battery Status 
• Task Scheduler
Народное творчество: 
FontStatusPromise 
ResponsePromise 
AbortableProgressPromise 
… 
35
“Promises should be for 
one-and-done, non-interruptible, 
atomic-ish operations.” 
– Domenic Denicola 
Автор Q, Promises/A+, ES6 promise spec 
36
one-and-done, non-interruptible, 
Да вы 
“Promises should be for 
упоролись! 
atomic-ish operations.” 
– Domenic Denicola 
Автор Q, Promises/A+, ES6 promise spec 
36
37
Insight #1 
Один подход не может быть 
применен везде и всегда. 
У каждой задачи – свое 
решение. 
38
element.animate() 
Я заанимирую все 
39
Часть крутой спеки 
Web Animations 
dev.w3.org/fxtf/web-animations/ 
40
Интерфейсы 
! 
AnimationTimeline 
AnimationPlayer 
AnimationNode 
AnimationTimingReadOnly 
AnimationTiming 
ComputedAnimationTiming 
AnimationGroup 
AnimationNodeList 
AnimationSequence 
Animation 
Animatable 
AnimationEffect 
KeyframeEffect 
MotionPathEffect 
41 
Расширения 
! 
Document 
timeline 
Element 
animate() 
getCurrentAnimations() 
getAnimationPlayers() 
! 
PseudoElement (возможно) 
animate() 
getCurrentAnimations() 
getAnimationPlayers() 
Web animations
Реализация в Blink 
Интерфейсы 
! 
AnimationTimeline 
AnimationPlayer 
AnimationNode 
AnimationTimingReadOnly 
AnimationTiming 
ComputedAnimationTiming 
AnimationGroup 
AnimationNodeList 
AnimationSequence 
Animation 
Animatable 
AnimationEffect 
KeyframeEffect 
MotionPathEffect 
42 
Расширения 
! 
Document 
timeline 
Element 
animate() 
getCurrentAnimations() 
getAnimationPlayers() 
! 
PseudoElement (возможно) 
animate() 
getCurrentAnimations() 
getAnimationPlayers() 
AnimationPlayer 
! 
source 
timeline 
startTime 
currentTime 
playbackRate 
playState 
ready 
finished 
cancel()! 
finish() 
play() 
pause() 
reverse() 
onfinish (уже нет в спеке)
43 
caniuse 
что ты делаешь? 
прекрати!
Какой будет стиль? 
<div id="wat" style="background: green !important"> 
... 
</div> 
44
Добавим непредсказуемости 
А теперь и ты испытай неизведанное ... 
document.getElementById('wat').animate([ 
{ backgroundColor: 'red' }, 
{ backgroundColor: 'blue' } 
], { 
duration: 123 
}); 
45
Проблемы 
• нет реализации остальной части 
спецификации (достаточно критичной) 
• нет инфраструктуры 
• нет инструментов 
46
47
Insight #2 
Запилить новую штуку – мало! 
Нужны: завершенность, 
контроль и инструменты. 
48
Web Components 
Я переверну веб 
49
Совокупность технологий 
• HTML imports 
• <template> 
• Custom elements 
• Shadow DOM 
50
Html imports 
w3c.github.io/webcomponents/spec/imports/ 
51
<link rel="import" href="foo.html"> 
52
53
Кажется хорошей идеей, но 
сложно, проблемы с 
производительностью… 
54
<template> 
www.w3.org/TR/html5/scripting-1.html#the-template-element 
55
Часть HTML5, 
самое безобидное в 
Web Components 
56
Название вводит в 
заблуждение 
57
“<template> provide a 
method for declaring inert 
DOM subtrees…” 
– HTML5 
58
В действии 
59 
<template id="row"> 
<tr><td><td> 
</template> 
! 
var template = document.querySelector('#row'); 
var row = template.content.cloneNode(true);
С <template> не нужно 
• ... костылей вроде: 
<script type="text/template" id="foo">..</script> 
• ... делать преобразование: 
innerHTML → DOM 
60
Custom elements 
w3c.github.io/webcomponents/spec/custom/ 
61
document.registerElement('custom-tag', { .. }) 
<custom-tag></custom-tag> 
62
В простых случаях может 
быть полезно, 
хорошо полифилится 
63
асинхронность, бесконечное 
наследование 
= 
мерцания при загрузке* 
* FOUC (flash of unstyled content ) 
64
Shadow DOM 
w3c.github.io/webcomponents/spec/shadow/ 
65
Кажется все начиналось с 
<style scoped> 
* пока только в Firefox, удалено в Chrome 35 
66
Инкапсуляция 
DOM-фрагментов 
67
68 
Shadow tree 
Имеют собственные 
стили, которые не 
пересекаются с 
другими shadow 
tree и с основным 
документом
ад, ад, ад... 
и еще немного ада! 
69
Например – события 
70
Берем «обычное» дерево 
71 
Node 
Insertion point 
Shadow root
То же дерево «в профиль» 
72
Путь события 
73
Путь события 
73
Путь события 
73 
Поэтому теперь есть 
event.path
Все тривиально! 
* на самом деле нет 
74
Web Components 
кажутся очень сложными 
75
76
Insight #3 
Веб-технологии всегда 
стремились быть простыми – 
это обеспечило им развитие 
и популярность. 
77
и тд и тп… 
78
Почему это имеет значение? 
79
Все, что попадает в 
веб-платформу остается в 
веб-платформе 
80
Цена ошибки очень высока 
81
<!doctype HTML> 
82
<blink>, <marquee>, 
<font>, … 
83
"FrontTalks".bold().italics() 
> "<i><b>FrontTalks</b></i>" 
84
Flexbox 
3 спецификации 
Должно быть Реальность 
.block { 
display: -webkit-box; /* OLD */ 
display: -moz-box; /* OLD */ 
display: -ms-flexbox; /* TWEENER - IE 10 */ 
display: -webkit-flex; /* NEW - Chrome */ 
display: flex; /* NEW, Spec */ 
} 
85 
.block { 
display: flex; 
}
Прогресс! 
86
Больше API, больше 
функций, больше 
возможностей! 
87
А что же с тем что есть? 
88
border-radius 
Chrome 5 Firefox 3.6 Opera 10.5 IE 8 
2009 
89
Угадай браузер 
1 2 
3 4 
2010 
90
Угадай браузер 
Opera IE9 
90 
Firefox 
Chrome, 
Safari 
2010
Проходят годы… 
91 
IE 
Firefox 
Chrome, 
Safari, 
Opera 
2014
SVG – баг на баге и багом 
погоняет 
92
DOM Level 2 Traversal and Range 
• 2000й год выпуска! 
• основа для работы с текстом 
• все браузеры ведут себя по разному, свои баги 
• не используется из-за нестабильности и 
неконсистености 
• лучшая альтернатива – <canvas> 
93
80/20 
94
80% задачи – 20% времени 
20% задачи – 80% времени 
95
80% задачи – 20% времени 
20% задачи – 80% времени 
96 
никогда
97
Производители браузеров – у 
вас много технических долгов. 
Надо доделывать! 
98
К чему все это? 
99
Интересуйтесь новым 
Читайте твитеры докладчиков, 
блоги браузеров, новости W3C 
100
Пробуйте 
101
Формируйте свое мнение 
102
Будьте осторожны 
103
Критикуйте ;) 
104
No bullshit! 
105
Save the Web! 
106
Спасибо! 
107 
Роман Дворнов 
@rdvornov 
rdvornov@gmail.com 
basis.js 
basisjs.com 
github.com/basisjs

More Related Content

What's hot

Опыт разработки эффективного SPA
Опыт разработки эффективного SPAОпыт разработки эффективного SPA
Опыт разработки эффективного SPA
Eugene Abrosimov
 
Unit-тестирование скриншотами: преодолеваем звуковой барьер
Unit-тестирование скриншотами: преодолеваем звуковой барьерUnit-тестирование скриншотами: преодолеваем звуковой барьер
Unit-тестирование скриншотами: преодолеваем звуковой барьер
Roman Dvornov
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй это
Roman Dvornov
 
JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.
Igor Shkulipa
 
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ruБаба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
Yandex
 
SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014
SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014
SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014
Dmytro Zharii
 
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Ontico
 
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDkranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDKrivoy Rog IT Community
 
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyЧитабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
Dmytro Zharii
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
IT-Portfolio
 
БЭМ в дикой природе
БЭМ в дикой природеБЭМ в дикой природе
БЭМ в дикой природе
Ihor Zenich
 
JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.
Igor Shkulipa
 
Как сделать ваш JavaScript быстрее
Как сделать ваш JavaScript быстрееКак сделать ваш JavaScript быстрее
Как сделать ваш JavaScript быстрее
Roman Dvornov
 
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ontico
 
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)Dmytro Zharii
 
Внутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpackВнутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpack
Alexey Ivanov
 
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Yandex
 
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"
Yandex
 

What's hot (20)

Опыт разработки эффективного SPA
Опыт разработки эффективного SPAОпыт разработки эффективного SPA
Опыт разработки эффективного SPA
 
Unit-тестирование скриншотами: преодолеваем звуковой барьер
Unit-тестирование скриншотами: преодолеваем звуковой барьерUnit-тестирование скриншотами: преодолеваем звуковой барьер
Unit-тестирование скриншотами: преодолеваем звуковой барьер
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй это
 
JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.
 
Chef @DevWeb
Chef @DevWebChef @DevWeb
Chef @DevWeb
 
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ruБаба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
 
SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014
SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014
SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014
 
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
 
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDkranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
 
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyЧитабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
 
Kranonit s16 (python). dmitry furzenko
Kranonit s16 (python). dmitry furzenkoKranonit s16 (python). dmitry furzenko
Kranonit s16 (python). dmitry furzenko
 
БЭМ в дикой природе
БЭМ в дикой природеБЭМ в дикой природе
БЭМ в дикой природе
 
JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.
 
Как сделать ваш JavaScript быстрее
Как сделать ваш JavaScript быстрееКак сделать ваш JavaScript быстрее
Как сделать ваш JavaScript быстрее
 
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
 
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
 
Внутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpackВнутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpack
 
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
 
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"
 

Viewers also liked

CSSO – compress CSS (english version)
CSSO – compress CSS (english version)CSSO – compress CSS (english version)
CSSO – compress CSS (english version)
Roman Dvornov
 
CSS parsing: performance tips & tricks
CSS parsing: performance tips & tricksCSS parsing: performance tips & tricks
CSS parsing: performance tips & tricks
Roman Dvornov
 
Парсим CSS: performance tips & tricks
Парсим CSS: performance tips & tricksПарсим CSS: performance tips & tricks
Парсим CSS: performance tips & tricks
Roman Dvornov
 
Парсим CSS
Парсим CSSПарсим CSS
Парсим CSS
Roman Dvornov
 
CSSO – история ускорения
CSSO – история ускоренияCSSO – история ускорения
CSSO – история ускорения
Roman Dvornov
 
CSSO — минимизируем CSS
 CSSO — минимизируем CSS CSSO — минимизируем CSS
CSSO — минимизируем CSS
Roman Dvornov
 
Карточный домик
Карточный домикКарточный домик
Карточный домик
Roman Dvornov
 
Remote (dev)tools своими руками
Remote (dev)tools своими рукамиRemote (dev)tools своими руками
Remote (dev)tools своими руками
Roman Dvornov
 

Viewers also liked (8)

CSSO – compress CSS (english version)
CSSO – compress CSS (english version)CSSO – compress CSS (english version)
CSSO – compress CSS (english version)
 
CSS parsing: performance tips & tricks
CSS parsing: performance tips & tricksCSS parsing: performance tips & tricks
CSS parsing: performance tips & tricks
 
Парсим CSS: performance tips & tricks
Парсим CSS: performance tips & tricksПарсим CSS: performance tips & tricks
Парсим CSS: performance tips & tricks
 
Парсим CSS
Парсим CSSПарсим CSS
Парсим CSS
 
CSSO – история ускорения
CSSO – история ускоренияCSSO – история ускорения
CSSO – история ускорения
 
CSSO — минимизируем CSS
 CSSO — минимизируем CSS CSSO — минимизируем CSS
CSSO — минимизируем CSS
 
Карточный домик
Карточный домикКарточный домик
Карточный домик
 
Remote (dev)tools своими руками
Remote (dev)tools своими рукамиRemote (dev)tools своими руками
Remote (dev)tools своими руками
 

Similar to Баба Яга против!

D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"
Dev2Dev
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
Yandex
 
Игры с виртуализацией в JavaScript, или как я переписал эмулятор, Евгений Пот...
Игры с виртуализацией в JavaScript, или как я переписал эмулятор, Евгений Пот...Игры с виртуализацией в JavaScript, или как я переписал эмулятор, Евгений Пот...
Игры с виртуализацией в JavaScript, или как я переписал эмулятор, Евгений Пот...
Ontico
 
Codeception Introduction
Codeception IntroductionCodeception Introduction
Codeception Introduction
automated-testing.info
 
Codeception UATestingDays
Codeception UATestingDaysCodeception UATestingDays
Codeception UATestingDays
davertmik
 
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2   кэширование для pro. Родионов ИгорьEasy authcache 2   кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов ИгорьPVasili
 
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2   кеширование для pro родионов игорьEasy authcache 2   кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорьdrupalconf
 
Тестирование серверной конфигурации
Тестирование серверной конфигурацииТестирование серверной конфигурации
Тестирование серверной конфигурации
Timur Batyrshin
 
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
Provectus
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrusAlex Chistyakov
 
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TKConf
 
InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015
InterSystems
 
Компонентный подход: скучно, неинтересно, бесперспективно
Компонентный подход: скучно, неинтересно, бесперспективноКомпонентный подход: скучно, неинтересно, бесперспективно
Компонентный подход: скучно, неинтересно, бесперспективно
Roman Dvornov
 
Client Side Autotesting Flash
Client Side Autotesting FlashClient Side Autotesting Flash
Client Side Autotesting Flashguestb0af15
 
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Yandex
 
Cовременный станок верстальщика
Cовременный станок верстальщикаCовременный станок верстальщика
Cовременный станок верстальщикаmcslayer
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012InTRUEdeR
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияYandex
 
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
IT-Portfolio
 

Similar to Баба Яга против! (20)

D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
 
Игры с виртуализацией в JavaScript, или как я переписал эмулятор, Евгений Пот...
Игры с виртуализацией в JavaScript, или как я переписал эмулятор, Евгений Пот...Игры с виртуализацией в JavaScript, или как я переписал эмулятор, Евгений Пот...
Игры с виртуализацией в JavaScript, или как я переписал эмулятор, Евгений Пот...
 
Codeception Introduction
Codeception IntroductionCodeception Introduction
Codeception Introduction
 
Codeception UATestingDays
Codeception UATestingDaysCodeception UATestingDays
Codeception UATestingDays
 
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2   кэширование для pro. Родионов ИгорьEasy authcache 2   кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов Игорь
 
Little Service in 2h
Little Service in 2hLittle Service in 2h
Little Service in 2h
 
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2   кеширование для pro родионов игорьEasy authcache 2   кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорь
 
Тестирование серверной конфигурации
Тестирование серверной конфигурацииТестирование серверной конфигурации
Тестирование серверной конфигурации
 
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrus
 
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.
 
InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015
 
Компонентный подход: скучно, неинтересно, бесперспективно
Компонентный подход: скучно, неинтересно, бесперспективноКомпонентный подход: скучно, неинтересно, бесперспективно
Компонентный подход: скучно, неинтересно, бесперспективно
 
Client Side Autotesting Flash
Client Side Autotesting FlashClient Side Autotesting Flash
Client Side Autotesting Flash
 
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
 
Cовременный станок верстальщика
Cовременный станок верстальщикаCовременный станок верстальщика
Cовременный станок верстальщика
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
 
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
 

More from Roman Dvornov

Масштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаМасштабируемая архитектура фронтенда
Масштабируемая архитектура фронтенда
Roman Dvornov
 
CSS глазами машин
CSS глазами машинCSS глазами машин
CSS глазами машин
Roman Dvornov
 
My Open Source (Sept 2017)
My Open Source (Sept 2017)My Open Source (Sept 2017)
My Open Source (Sept 2017)
Roman Dvornov
 
Rempl – крутая платформа для крутых инструментов
Rempl – крутая платформа для крутых инструментовRempl – крутая платформа для крутых инструментов
Rempl – крутая платформа для крутых инструментов
Roman Dvornov
 
CSSO — сжимаем CSS (часть 2)
CSSO — сжимаем CSS (часть 2)CSSO — сжимаем CSS (часть 2)
CSSO — сжимаем CSS (часть 2)
Roman Dvornov
 
Component Inspector
Component InspectorComponent Inspector
Component Inspector
Roman Dvornov
 
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)
Roman Dvornov
 
basis.js - почему я не бросил разрабатывать свой фреймворк
basis.js - почему я не бросил разрабатывать свой фреймворкbasis.js - почему я не бросил разрабатывать свой фреймворк
basis.js - почему я не бросил разрабатывать свой фреймворк
Roman Dvornov
 

More from Roman Dvornov (8)

Масштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаМасштабируемая архитектура фронтенда
Масштабируемая архитектура фронтенда
 
CSS глазами машин
CSS глазами машинCSS глазами машин
CSS глазами машин
 
My Open Source (Sept 2017)
My Open Source (Sept 2017)My Open Source (Sept 2017)
My Open Source (Sept 2017)
 
Rempl – крутая платформа для крутых инструментов
Rempl – крутая платформа для крутых инструментовRempl – крутая платформа для крутых инструментов
Rempl – крутая платформа для крутых инструментов
 
CSSO — сжимаем CSS (часть 2)
CSSO — сжимаем CSS (часть 2)CSSO — сжимаем CSS (часть 2)
CSSO — сжимаем CSS (часть 2)
 
Component Inspector
Component InspectorComponent Inspector
Component Inspector
 
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)
 
basis.js - почему я не бросил разрабатывать свой фреймворк
basis.js - почему я не бросил разрабатывать свой фреймворкbasis.js - почему я не бросил разрабатывать свой фреймворк
basis.js - почему я не бросил разрабатывать свой фреймворк
 

Баба Яга против!