SlideShare a Scribd company logo
1 of 107
Download to read offline
Принципы разработки гибких
и поддерживаемых интерфейсов
Вася Аксёнов
@outring
Разработка VS. Интерфейсы
3
Разработка
Реализация — абстрактные сущности
4
Интерфейсы
Реализация — визуальное представление
5
В чём разница?
Явность правил взаимодействия
Предопределённость сценариев взаимодействия
и сущностей
Гибкость и поддерживаемость
7
Гибкость
Возможность создания новых частей интерфейса
без необходимости внесения изменений в ранее
созданные части
8
Поддерживаемость
Возможность безопасного изменения интерфейса
1 SRP
Принцип единственной ответственности
10
Принцип единственной ответственности
Каждая сущность имеет только одну обязанность
Сущность должна иметь только одну
причину измениться
11
Скачать
12
Кнопка
.download-button {
! padding: 0 20px;
}
13
Размеры
.download-button {
! width: 230px;
! padding: 0 20px;
}
Позиционирование
.download-button {
! position: absolute;
! left: 50%;
! top: 50%;
! width: 230px;
! margin-top: -65px;
! margin-left: -135px;
! padding: 0 20px;
}
14
−padding
.download-button {
! position: absolute;
! left: 50%;
! top: 50%;
! width: 230px;
! margin-top: -65px;
! margin-left: -135px;
! padding: 0 20px;
}
15
16
Скачать
Скачать
17
Минусы
Необходимость изменения для
переиспользования
Сложность понимания ответственности
Небезопасность изменений
18
19
Решение
Распределение ответственности по разным
элементам
Или классам
20
Скачать
21
Функциональное разделение
по элементам
Только одна причина
изменения сущности
2 Предсказуемые раскладки
Системы позиционирования
С высокой степенью самоорганизации
С низкой
23
Низкая степень самоорганизации
<div style="position: absolute;"></div>
<div style="position: absolute;">
! <div style="position: absolute;"></div>
</div>
24
25
26
Низкая степень самоорганизации
+ Стабильность − Трудоёмкость
27
Высокая степень самоорганизации
<div>
! <div style="float: right;"></div>
! <span>...</span>
! <div>
! ! <span>...</span>
! </div>
</div>
<div>
! <span>...</span><span>...</span>
</div>
28
29
Высокая степень самоорганизации
+ Простота использования
+ Большие возможности
− Сложность поддержки
− Непредсказуемость
Потоковая
система позиционирования
31
Создать Изменить Удалить Навсегда
Панель
<div class="panel">
! <button>Создать</button>
! <button>Изменить</button>
! <button>Удалить</button>
! <input type="checkbox">
! <label>Навсегда</label>
</div>
32
33
Входящие▼ Переместить
34
Компонент
<div class="mover">
! <select>
! ! <option>Входящие</option>
! ! <option>Исходящие</option>
! ! ...
! </select>
! <button>Переместить</button>
</div>
35
Создать Изменить Удалить НавсегдаВходящие▼ Переместить
36
Интеграция
<div class="panel">
! ...
! <button>Изменить</button>
! <div class="mover">
! ...
! </div>
! <button>Удалить</button>
! ...
</div>
37
Создать Изменить
Удалить Навсегда
Входящие▼ Переместить
38
Субъекты контекста являются объектами
того же контекста и наоборот
Субъект создаёт контекст
Объект находится в контексте
39
40
Создать Изменить Удалить НавсегдаВходящие▼ Переместить
41
Создать Изменить
Удалить Навсегда
Входящие▼ Переместить
42
Создать Изменить
Удалить Навсегда
Входящие▼ Переместить
Решение
Разделение субъекта и объекта контекста
43
CSS3 Flexible Box Layout
Включение Flexbox
.panel {
! display: flex;
}
45
46
Создать Изменить Удалить НавсегдаВходящие▼ Переместить
Направление
.panel {
! display: flex;
! flex-direction: column; /** @default row */
}
47
48
Создать
Изменить
Удалить
Навсегда
Входящие▼ Переместить
49
Родитель контролирует поведение
своих детей
Поддержка браузерами 70%
50
caniuse.com
.horizontal-box > * {
! float: left;
}
.vertical-box > * {
! display: block;
! width: auto;
}
51
Альтернатива
Панель
<div class="panel horizontal-box">
! ...
! <button>Изменить</button>
! <div class="mover horizontal-box">
! ...
! </div>
! <button>Удалить</button>
! ...
</div>
52
Сетки
54
CSS сетки
<div class="container-12">
! <div class="grid-3"></div>
! <div class="grid-3"></div>
! <div class="grid-3"></div>
! <div class="grid-3"></div>
</div>
55
grid-3 grid-3 grid-3 grid-3
56
−модуль
<div class="container-12">
! <div class="grid-3"></div>
! <div class="grid-3"></div>
! <div class="grid-3"></div>
! <div class="grid-3"></div>
</div>
57
grid-3 grid-3 grid-3
58
Решение
Независимость модулей
CSS3 Grid Layout
60
news content activity
HTML
<div class="layout">
! <div class="news"></div>
! <div class="content"></div>
! <div class="activity"></div>
</div>
61
CSS
.layout {
! display: grid;
! grid-columns: (80px)[12];
}
.news {
! grid-column: 1;
! grid-column-span: 3;
}
.content {
! grid-column: 4;
! grid-column-span: 6;
}
.activity {
! grid-column: 10;
! grid-column-span: 3;
}
62
–news
<div class="layout">
! <div class="news"></div>
! <div class="content"></div>
! <div class="activity"></div>
</div>
63
64
content activity
65
Поддержка браузерами?
<div class="g-12">
! <div class="g-col-1 g-span-3 news"></div>
! <div class="g-col-3 g-span-6 content"></div>
! <div class="g-col-10 g-span-3 activity"></div>
</div>
66
Альтернатива
anygrid.net
Родитель контролирует поведение
своих детей
Элементы должны быть независимы
друг от друга
67
3 Явное наложение
69
70
z-index: 1
71
z-index: 1
72
z-index: 1
z-index: 1 z-index: 1
z-index: 1
Расслоение z-index по назначению
0
...
128
...
256 74
Решение?
}
}
контент
диалоги и попапы
Контекст наложения
Корневой элемент
Спозиционированный элемент c z-index ≠ auto
Элементы с opacity < 1
75
z-index локален для каждого
контекста наложения
76
77
z-index: 128
z-index: 1 z-index: 1
z-index: 1
Явные слои и отказ от z-index
78
Решение
Явные слои
<body>
! <div class="layer" id="background-layer"></div>
! <div class="layer" id="content-layer"></div>
! <div class="layer" id="overlay-layer"></div>
! <div class="layer" id="dialogs-layer"></div>
! <div class="layer" id="popups-layer"></div>
</body>
79
.layer {
! position: relative;
! z-index: 1;
}
80
Слой
Минимальный набор
Контент
Диалоги
Попапы
81
Явное наложение элементов слоёв
Отказ от z-index как средства
функционального наложения
82
4 Абстрактная реализация
Абстракция
84
Абстракция определяет семантику сущности и
позволяет работать с ней без знания деталей
реализации
Олдскул кнопка
Никаких градиентов
Никаких радиусов
Никаких псевдоэлементов
Только картинки
85
Минимальная реализация
<span class="button download-button">
! Скачать
! <span class="button-side"></span>
</span>
86
Минимальная реализация
.button {
! position: relative;
!
! display: inline-block;
! padding-left: 20px;
}
.button-side {
! position: absolute;
! left: 100%;
!
! width: 20px;
}
87
88
Скачать
89
Скачать Без SMS
Без SMS
90
Скачать
91
Решение?
.button {
! position: relative;
!
! display: inline-block;
!
! margin-right: 20px;
! padding-left: 20px;
}
.button-side {
! position: absolute;
! left: 100%;
!
! width: 20px;
}
92
Скачать Без SMS
93
Скачать Без SMS50px
94
Решение?
/** @note К любому margin-right надо прибавить 20! */
.button {
! position: relative;
!
! display: inline-block;
!
! margin-right: 20px;
! padding-left: 20px;
}
.download-button {
! margin-right: 70px; /** 50 + 20 */
}
Развитие реализации
<span class="button download-button">
! <span class="button-content">Скачать</span>
! <span class="button-side"></span>
</span>
95
Развитие реализации
.button {
! display: inline-block;
}
.button-content {
! display: inline-block;
!
! padding-left: 20px;
}
.button-side {
! display: inline-block;
!
! width: 20px;
}
96
97
Скачать
98
Скачать
50px50px
Избавление от отступов
.button {
! display: inline-block;
}
.button-content {
! display: inline-block;
! padding-left: 20px;
}
.button-side {
! display: inline-block;
!
! width: 20px;
}
99
100
Скачать
50px50px
101
Решение
<span class="button">
! <span class="button-left"></span>
! <span class="button-right"></span>
! <span class="button-content">Скачать</span>
</span>
Решение
.button {
! position: relative;
!
! display: inline-block;
}
.button-content {
! position: relative;
}
.button-left {
! position: absolute;
! left: 0;
! right: 20px;
}
.button-right {
! position: absolute;
! right: 0;
!
! width: 20px;
}
102
103
Скачать
50px50px
104
Соответствие семантики и реализации
Реализация по подобию
стандартных реализаций
Принципы разработки гибких
и поддерживаемых интерфейсов
Вася Аксёнов
@outring

More Related Content

Similar to DUMP-2013 Frontend - Принципы разработки поддерживаемых и гибких интерфейсов - Аксенов Василий

Адаптивный веб-дизайн на практике (Антон Епрев)
Адаптивный веб-дизайн на практике (Антон Епрев)Адаптивный веб-дизайн на практике (Антон Епрев)
Адаптивный веб-дизайн на практике (Антон Епрев)Ontico
 
Конструктор карточек Docsvision 5: конструктор состояний
Конструктор карточек Docsvision 5: конструктор состоянийКонструктор карточек Docsvision 5: конструктор состояний
Конструктор карточек Docsvision 5: конструктор состоянийDocsvision
 
всплывающее окно при закрытии сайта
всплывающее окно при закрытии сайта  всплывающее окно при закрытии сайта
всплывающее окно при закрытии сайта Olga Pirozhenko
 
Тестирование CSS-регрессий с Gemini — Сергей Татаринцев
Тестирование CSS-регрессий с Gemini — Сергей ТатаринцевТестирование CSS-регрессий с Gemini — Сергей Татаринцев
Тестирование CSS-регрессий с Gemini — Сергей ТатаринцевYandex
 
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"Yandex
 
Sozdanie saita v_ mc_mediadw3_steps
Sozdanie saita v_ mc_mediadw3_stepsSozdanie saita v_ mc_mediadw3_steps
Sozdanie saita v_ mc_mediadw3_stepsStiv-redter
 
Saita v mc_mediadw3_steps
Saita v  mc_mediadw3_stepsSaita v  mc_mediadw3_steps
Saita v mc_mediadw3_stepsStiv-redter
 
Приемы верстки страниц
Приемы верстки страницПриемы верстки страниц
Приемы верстки страницDenis Latushkin
 
Box model, display and position (HTML5 тема 07 - box model, display position)
Box model, display and position (HTML5 тема 07 - box model, display position)Box model, display and position (HTML5 тема 07 - box model, display position)
Box model, display and position (HTML5 тема 07 - box model, display position)Noveo
 
Михаил Черномордиков Ie9
Михаил Черномордиков   Ie9Михаил Черномордиков   Ie9
Михаил Черномордиков Ie9Siel01
 
Вадим Макишвили "Вёрстка в IntelliJIDEA"
Вадим Макишвили "Вёрстка в IntelliJIDEA"Вадим Макишвили "Вёрстка в IntelliJIDEA"
Вадим Макишвили "Вёрстка в IntelliJIDEA"Yandex
 
Александр Кашеверов - Коротко про WEB
Александр Кашеверов - Коротко про WEBАлександр Кашеверов - Коротко про WEB
Александр Кашеверов - Коротко про WEBDataArt
 
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации..."Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...Yandex
 
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)Ontico
 
Что нового в Visual Studio 2010 и .Net 4.0
Что нового в Visual Studio 2010 и .Net 4.0Что нового в Visual Studio 2010 и .Net 4.0
Что нового в Visual Studio 2010 и .Net 4.0akrakovetsky
 
Презентация по курсу «Проектирования в Axure»
Презентация по курсу  «Проектирования в Axure» Презентация по курсу  «Проектирования в Axure»
Презентация по курсу «Проектирования в Axure» Ekaterina Mironova
 
Автоматизация UI тестирования под Windows и Windows Phone
Автоматизация UI тестирования под Windows и Windows PhoneАвтоматизация UI тестирования под Windows и Windows Phone
Автоматизация UI тестирования под Windows и Windows PhoneCodeFest
 
Cовременный станок верстальщика
Cовременный станок верстальщикаCовременный станок верстальщика
Cовременный станок верстальщикаmcslayer
 
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Yandex
 

Similar to DUMP-2013 Frontend - Принципы разработки поддерживаемых и гибких интерфейсов - Аксенов Василий (20)

Адаптивный веб-дизайн на практике (Антон Епрев)
Адаптивный веб-дизайн на практике (Антон Епрев)Адаптивный веб-дизайн на практике (Антон Епрев)
Адаптивный веб-дизайн на практике (Антон Епрев)
 
Конструктор карточек Docsvision 5: конструктор состояний
Конструктор карточек Docsvision 5: конструктор состоянийКонструктор карточек Docsvision 5: конструктор состояний
Конструктор карточек Docsvision 5: конструктор состояний
 
всплывающее окно при закрытии сайта
всплывающее окно при закрытии сайта  всплывающее окно при закрытии сайта
всплывающее окно при закрытии сайта
 
Тестирование CSS-регрессий с Gemini — Сергей Татаринцев
Тестирование CSS-регрессий с Gemini — Сергей ТатаринцевТестирование CSS-регрессий с Gemini — Сергей Татаринцев
Тестирование CSS-регрессий с Gemini — Сергей Татаринцев
 
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"
 
Sozdanie saita v_ mc_mediadw3_steps
Sozdanie saita v_ mc_mediadw3_stepsSozdanie saita v_ mc_mediadw3_steps
Sozdanie saita v_ mc_mediadw3_steps
 
Saita v mc_mediadw3_steps
Saita v  mc_mediadw3_stepsSaita v  mc_mediadw3_steps
Saita v mc_mediadw3_steps
 
Приемы верстки страниц
Приемы верстки страницПриемы верстки страниц
Приемы верстки страниц
 
Selenium vs AJAX
Selenium vs AJAXSelenium vs AJAX
Selenium vs AJAX
 
Box model, display and position (HTML5 тема 07 - box model, display position)
Box model, display and position (HTML5 тема 07 - box model, display position)Box model, display and position (HTML5 тема 07 - box model, display position)
Box model, display and position (HTML5 тема 07 - box model, display position)
 
Михаил Черномордиков Ie9
Михаил Черномордиков   Ie9Михаил Черномордиков   Ie9
Михаил Черномордиков Ie9
 
Вадим Макишвили "Вёрстка в IntelliJIDEA"
Вадим Макишвили "Вёрстка в IntelliJIDEA"Вадим Макишвили "Вёрстка в IntelliJIDEA"
Вадим Макишвили "Вёрстка в IntelliJIDEA"
 
Александр Кашеверов - Коротко про WEB
Александр Кашеверов - Коротко про WEBАлександр Кашеверов - Коротко про WEB
Александр Кашеверов - Коротко про WEB
 
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации..."Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...
 
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
 
Что нового в Visual Studio 2010 и .Net 4.0
Что нового в Visual Studio 2010 и .Net 4.0Что нового в Visual Studio 2010 и .Net 4.0
Что нового в Visual Studio 2010 и .Net 4.0
 
Презентация по курсу «Проектирования в Axure»
Презентация по курсу  «Проектирования в Axure» Презентация по курсу  «Проектирования в Axure»
Презентация по курсу «Проектирования в Axure»
 
Автоматизация UI тестирования под Windows и Windows Phone
Автоматизация UI тестирования под Windows и Windows PhoneАвтоматизация UI тестирования под Windows и Windows Phone
Автоматизация UI тестирования под Windows и Windows Phone
 
Cовременный станок верстальщика
Cовременный станок верстальщикаCовременный станок верстальщика
Cовременный станок верстальщика
 
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
 

More from it-people

«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Coit-people
 
«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghubit-people
 
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrainsit-people
 
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologiesit-people
 
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндексit-people
 
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...it-people
 
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalrit-people
 
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...it-people
 
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАНit-people
 
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банкit-people
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Coit-people
 
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНСit-people
 
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...it-people
 
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologiesit-people
 
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn Systemit-people
 
«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologiesit-people
 
«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндексit-people
 
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...it-people
 
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognicianit-people
 
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...it-people
 

More from it-people (20)

«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
 
«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub
 
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
 
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
 
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
 
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
 
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
 
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
 
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
 
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
 
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
 
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
 
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
 
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
 
«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies
 
«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс
 
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
 
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
 
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
 

DUMP-2013 Frontend - Принципы разработки поддерживаемых и гибких интерфейсов - Аксенов Василий