Yandex.Frontend: complex services, complex solutions

Yelena Jetpyspayeva
Yelena JetpyspayevaDeveloper Marketing at Bright Computing
Yandex.Frontend: complex services, complex solutions
Фронтенд в Яндексе:
сложные сервисы,
непростые решения
Сергей Бережной, Сергей Максимов,
Марат Дулин и Елена Джетпыспаева
Обо мне
veged@yandex-team.ru
@veged
github.com/veged
в Яндексе восемь лет
руководитель отдела
разработки поисковых интерфейсов
соавтор БЭМ
3
Фронтенд в Яндексе
Разработка интерфейсов
в Яндексе
yandex.ru/all — больше 40 сервисов
api.yandex.ru — больше 25 API
на самом деле 180 сервисов
более 250 разработчиков интерфейсов
3 страны
6 городов
кодовая база 001011000100100001111000110
6
Поиск
Сергей Бережной
8
Поиск
TT2 -> JS
Yandex.Frontend: complex services, complex solutions
Yandex.Frontend: complex services, complex solutions
TT2: Плюсы
совместим с Perl
простой
достаточно быстрый
12
TT2: Минусы
Perl
невыразительный
достаточно медленный
13
Yandex.Frontend: complex services, complex solutions
JavaScript: Плюсы
JavaScript
выразительный
достаточно быстрый
15
Yandex.Frontend: complex services, complex solutions
БЭМ: Плюсы
больше порядка в коде
общепортальная библиотека
инструменты
17
SERP-4695:
Переверстать Cерп с TT2 на JS
18
Переписывание: Стратегия
без остановки основного производства
параллельно держим две версии
19
Переписывание: Технологии
Perl + JavaScript::V8
github.com/ezhi/javascript-v8
search.cpan.org/dist/JavaScript-V8
JavaScript + BEMHTML
bit.ly/yac2011-bemhtml
20
Переписывание: Этапы
первый прототип 20%
полностью переписанный сервис 50%
полный релиз и отказ от TT2 30%
21
Переписывание: Итого
получили плюсы от JavaScript и БЭМ
опыт полного переписывания
22
Поиск
Распределённость
24
Yandex.Frontend: complex services, complex solutions
Yandex.Frontend: complex services, complex solutions
Yandex.Frontend: complex services, complex solutions
Yandex.Frontend: complex services, complex solutions
Yandex.Frontend: complex services, complex solutions
Распределённость
Команды в разных городах
Команды в разных городах
больше суммарный рынок труда
специальные процессы по объединению команды
31
Яндекс.Поиск: когда команда
распределена по «островам»
bit.ly/yasubbotnik-kiev-2013-serp
bit.ly/yasubbotnik-spb-2013-serp
32
Команды в разных городах
более 20 человек
4 города + ещё 2
33
Распределённость
Код и технологии
Код и технологии
более 80 независимых библиотек блоков
БЭМ-методология
инструменты
35
Распределённость
Острова
Острова
islands.yandex.ru
37
Острова
распределяемся дальше
используем опыт полного переписывания
38
Гуртом і батька легше бити.
украинская пословица
39
40
veged@yandex-team.ru
@veged
veged
Сергей Бережной
Руководитель отдела
разработки поисковых интерфейсов
Директ
Сергей Максимов
Обо мне
ddos@yandex-team.ru
@dosyara
github.com/dosyara
в Яндексе около трех лет
разрабатывал околопоисковые интерфейсы
руководитель группы интерфейсов
Справочника и Директа
42
Яндекс.Директ
43
Сервис для размещения поисковой
и тематической контекстной
рекламы.
Проект с 12-ти летней историей,
сложносочиненным интерфейсом,
большой кодовой базой.
Yandex.Frontend: complex services, complex solutions
Yandex.Frontend: complex services, complex solutions
Архитектура
46
Насущные проблемы
скорость генерации (шаблонизация)
версии библиотек
клиентская скорость
поддерживаемость
47
Выбрали технологический стек
BEMTREE.XJST + BEMHTML
i-bem + bem-mvc
48
Вперед! Все на БЭМ!
Железный занавес устоял
Будем переходить поэтапно
Отселились в отдельное место
Настроили инфраструктуру
Наметили постраничный план переезда
51
Перевод страницы
Переключаем шаблонизатор
Реализуем блоки (или используем имеющиеся)
Выполняем минимальный рефакторинг
Тестируем
Запускаем
52
Планирование
Для начала, для страниц
посчитали посещаемость
дали коэффициент важности
составили таблицу
Выбираем
смотрим важность
смотрим трудоемкость
количество общих блоков
53
Переводи и поддерживай
Постепенно обновляем проект
Не останавливаем разработку в основном коде
54
Часть вторая
причинно-следственная
Как мы генерируем интерфейсы
56
У нас есть данные
0000 0010 1001 1010
57
Много данных
11.0010010000111111011010101000100010000101101000110000100011010011000100110001100110001010001011100000001101110000011
1001101000100101001000000100100111000001000100010100110011111001100011101000000001000001011101111101010011000111011000
1001110011011001000100101000101001010000010000111100110001110001101000000010011011101111011111001010100011001101100111
1001101001110100100001100011011001100000010101100001010011011011111001001011111000101000011011101001111111000010011010
1011011010110110101010001110000100100010111100100100001011011010101110110011000100101111001111110110001101111010001001
1000100001011101001101001100011011111101101011010110000101111111111010111001011011011110100000001101011011111101101111
0111000111000011010111111101101011010100010011001111110100101101011101001111100100100000100010111110001001011000111111
1100110010010010010100001100110010100011110110011100100010110110011110111000010000000000111110010111000101000010110001
1101111110000010110011000110110100100100000110110000111000101010111010011100110100110100100010110001111111010100011111
1010010010011001111010111111000001101100101010111010010001111011100101000111010110110010110000111000110001011110011010
1011000100000100001010101001010111011100111101101010100101001000001110111000010010110100101100110110101100111000011000
0110101010011100100101010111100100110000000010011110001011101000110110000001000110010100001100000100001011111000011001
0100100000101111001000110001011100011011011001110001110111110001110011110011101110010110000011000000011101000011000000
0111001101100100111100000111010001011101100000001111010001010001111101101011100010101011101111100000110111101001100010
1001011001001110111100010101111001011111101101001010101011000000101110001100000111001100101010100100101111100111010101
0010101011010101110010100010101110100100010011000011000100110001111101000000101000100000001010101110010100011100101101
0100010101010101011000100001011011010110100110011000101110000110100000100010100000111101000110011101010000101010100100
0011010101111011111000111001011101001100100111011001111101110000101000001000101100011011011111011110000101010001010111
0101001110001010101110101110100000110000011000111110110110011100101110000111110000101101001101110000111100100110001111
0101011111101011010111010001100110110110000100100110011110101110001111010001100100101001110000001001010001001010110000
1100111011100111011100011110100100010011000011010110100101110111001101011111100010010111111111010000001101101100110001
0100000100001100100110110000111011000000010011100110011111011001000011010100110010001010010000111110010101100011000000
1011101111011001000000000110010111011111000010001011101010111011110100110000101011101011011000111011100001001100010001
1000000101110101101100101000110111000100000100011100010010011111010000001110100111001011010101100110001010000111101101
1010110111111110011100000111111010001000010001110010010111000001011010001001000001010100100100001000010000000000100011
0100111001000111100000100101010011110000111111001101101011110001000011100011001101000010000101111011011101001011011001
58
Которые нужно отобразить
Напишем шаблон
Разобьем на части
Шаблонизируем в два этапа
62
view%
ctx%
data%
ctx%
view%
BEMTREE.XJST% BEMHTML%
BEMTREE.XJST – технология генерации БЭМ-дерева
github.com/bem/bem-core/blob/v1/.bem/techs/bemtree.js
Подробнее на BEMup
63
Как мы управляем интерфейсом
64
У нас есть баннер
65
66
getData&
setData&
onChange&
getField&
setField&
fix&
rollback&
clear&
validate&
bem-mvc – реализация MVC паттерна осуществляющего
провязку с DOM-ом в БЭМ-терминах
http://github.com/bem/bem-mvc
Подробнее на BEMup
67
Кроме того
68
Ввели обязательное code review
Синтаксический анализ (jshint, jscs)
Пишем json-схемы на данные json-schema.org
Валидируем данные по этим схемам
Исследуем скорость интерфейса
69
ddos@yandex-team.ru
@dosyara
dosyara
Сергей Максимов
Руководитель группы
интерфейсов Справочника и Директа
Карты
Марат Дулин
Обо мне
mdevils@yandex-team.ru
@mdevils
github.com/mdevils
В Яндексе с 2008 года
Техлид в Яндекс.Картах
71
Сервис, который отвечает
на два вопроса: где и как добраться?
Посещаемость более 3 млн. в день.
72
Продукты
Сервис maps.yandex.ru
– Публичный сервис
API Яндекс Карт
– Публичное API
73
Общие требования
Единый стиль для API и Карт.
Лего позволяет придерживаться единого стиля, использовать одну и ту же
верстку.
74
75
Карты
API
Лего Прочие сервисы
7625
Карты
API
Лего 2.8
Лего 2.6
Проблемы Лего
Нет обратной совместимости
Трудоемкое обновление
Нужно просить помощи у команды Лего
77
Требования к удобной библиотеке
78
Полная обратная совместимость
Быстрое обновление
Легкость расширения библиотеки
Реализация удобной библиотеки
Строгое API
79
80
BEViS
Block
Element
View
State
81
Beavis and Butt-head
Mike Judge
Обратная совместимость
API — зафиксированный набор интерфейсов
Вместо доопределений — параметры блока
Нет модификаторов
Отображение блока отделено от поведения
82
Наши технологии
BTJSON — диалект BEMJSON
83
BTJSON
{
block: "button",
view: "red",
autoInit: true,
text: "Press me",
icon: {block: "icon", view: "close"}
}
84
Наши технологии
BTJSON — диалект BEMJSON
BT — шаблонизатор
85
BT
Шаблонизатор для BTJSON.
Не поддерживает доопределение, переопределение.
Работает очень быстро за счет своей простоты.
github.com/enb-make/bt
86
HTML
Лего:
<button class="button button_theme_big button_disabled_yes"
onclick="return {button:{}}">
BEViS:
<button class="button_big _disabled"
data-block="button">
87
Наши технологии
BTJSON — диалект BEMJSON
BT — шаблонизатор
YBlock — базовый визуальный блок
88
YBlock
// i-bem
BEM.DOM.decl("button", { ... });
var button = BEM.DOM.init(
$(BEMHTML.apply({block: "button"}))
).bem("button");
// YBlock
var Button = inherit(YBlock, { ... });
var button = new Button();
89
YBlock
Ориентирован на проекты с упором на JS
Полное разграничение публичного и приватного API
Связан с BT
Чистое наследование, совместимое с различными библиотеками
90
Наши технологии
BTJSON — диалект BEMJSON
BT — шаблонизатор
YBlock — базовый визуальный блок
ENB — сборщик. Подробнее на BEMup.
91
Yandex.Frontend: complex services, complex solutions
Будущее
Использовать BEViS вместе с командой API.
Выйти в OpenSource?
93
Futurama
Matt Groening
94
mdevils@yandex-team.ru
@mdevils
mdevils
Дулин Марат
Технический лидер
группы интерфейсов геопоиска
Айда на гитхаб!
или зачем БЭМу все это?
Обо мне
mursya@yandex-team.ru
@mursya_ru
Мурся
третий год в Яндексе
Я.Субботники, группа собственных
мероприятий, YaC...
теперь — Developer Relations & BEM
96
Блок__Элемент_Модификатор = БЭМ
97
98
info@bem.info
@bem_ru @bem_en #b_
clubs.ya.ru/bem
БЭМ
Блок__Элемент_Модификатор
groups/bem.info
bem
БЭМ — способ разработки сайтов,
позволяющий писать код, который легко
поддерживать и развивать
99
А точнее?
100
А точнее?
bem.info БЭМ-методология bem-core БЭМ-технологии
bem-tools Москва bem-history СНГbem-mvc РИТ++ Киев bem-bl
Я.Субботники i-bem.js YaC Симферополь twitter Web Standards
Days Клуб БЭМ в Я.Ру borschik in English facebook по-русски
WebConf ЕвропаМинск bemhtml Санкт-Петербург
~30 докладов в год
100
http://images2.wikia.nocookie.net/__cb20100219193952/marvel_dc/images/3/3f/Legion_of_Super-Heroes_001.jpg
http://fc04.deviantart.net/fs71/i/2011/131/a/0/love_at_first_sight_by_metadragonart-d3g4i2h.jpg
103
«Когда я спросил Харисова на Я.Субботнике в
2009 (я тогда в Яндексе не работал), почему они
бесплатно рассказывают и выкладывают
наработки, он ответил: „Когда делаешь что-то
долго и хорошо, со временем появляется желание
поделиться“»,
— из разговора с одним
неизвестным Лего-разработчиком
БЭМ — первый технологический
продукт Яндекса
104
Зачем нам опенсорс?
105
Зачем нам опенсорс?
105
Закрытая разработка рано или поздно умирает
Зачем нам опенсорс?
105
Закрытая разработка рано или поздно умирает
Нужна новая кровь
Зачем нам опенсорс?
105
Закрытая разработка рано или поздно умирает
Нужна новая кровь
Хотим аутсорс, но сложно интегрировать код
Зачем нам опенсорс?
105
Закрытая разработка рано или поздно умирает
Нужна новая кровь
Хотим аутсорс, но сложно интегрировать код
Хотим расти, но сложно интегрировать людей
Зачем нам опенсорс?
105
Закрытая разработка рано или поздно умирает
Нужна новая кровь
Хотим аутсорс, но сложно интегрировать код
Хотим расти, но сложно интегрировать людей
Хотим делиться, потому что вместе веселей
Приоритезируй это!
106
Приоритезируй это!
Online vs. Offline
106
Приоритезируй это!
Online vs. Offline
Внедрение vs. Распространение знания
106
Приоритезируй это!
Online vs. Offline
Внедрение vs. Распространение знания
Написание кода vs. Знание методологии
106
Приоритезируй это!
Online vs. Offline
Внедрение vs. Распространение знания
Написание кода vs. Знание методологии
Наше коммьюнити vs. Какие-то конференции
106
107
Чему мы научились?
1. Не переставать говорить!
109
2. Стабильность — это хорошо
110
3. Не только писать, но и употреблять :)
111
4. Лидерство — хорошо,
контроль — плохо
112
5. Никаких рок-звезд!
113
6. Дай! Дай! Дай!
114
7. Сообщество равных
115
8, 9, 10... 100500
116
by Jaison Justus, India
«Не бойтесь быть первопроходцами.
Худшее, что может случиться, — вы опозоритесь и все!»
— Дима Барановский, Adobe на YaC 2012
118
Stay BEMed & Приходи на BEMup!
119
15:00 Дмитрий Барановский — topcoat — открытый проект от Адобе для
быстрой и удобной разработки веб- приложений
15:30 Антон Виноградов — БЭМ on Rails
16:00 Марат Дулин — ENB — сборщик проектов на БЭМ
16:20 Сергей Татаринцев — bem-tools 1.0.0
16:40 Сергей Бережной — bem-core
17:20 Сергей Максимов — BEMTREE.XJST – генерируй дерево
17:40 Владимир Варанкин — Сервер-сайд в БЭМ- терминах (Node.js)
18:00 Сергей Пузанков — Новый Поиск по Блогам на bem- node
18:20 Сергей Максимов — bem-mvc, или как клеить моделей
18:40 Владимир Довыденко — БЭМ в ТКС
19:00 Антон Кузнецов — БЭМ в Битриксе
19:20 Александр Баумгертнер — Плюсы использования БЭМ для небольших
проектов и компаний
120
mursya@yandex-team.ru
@mursya_ru
mursya
Елена Джетпыспаева
BEM Developer Relations
12122
Спасибо за внимание
1 of 131

Recommended

Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров by
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
833 views51 slides
Алексей Андросов "Криокамера для статики" by
Алексей Андросов "Криокамера для статики"Алексей Андросов "Криокамера для статики"
Алексей Андросов "Криокамера для статики"Yandex
1.3K views61 slides
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса" by
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"
Олег Мохов "Куда движется вёрстка и верстальщики Яндекса"Yandex
1.1K views120 slides
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак... by
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...Yandex
767 views42 slides
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека... by
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...Yandex
1.8K views242 slides
Мастер-класс наоборот: вы пишете БЭМ-проект, а мы подсказываем — Евгений Конс... by
Мастер-класс наоборот: вы пишете БЭМ-проект, а мы подсказываем — Евгений Конс...Мастер-класс наоборот: вы пишете БЭМ-проект, а мы подсказываем — Евгений Конс...
Мастер-класс наоборот: вы пишете БЭМ-проект, а мы подсказываем — Евгений Конс...Yandex
982 views116 slides

More Related Content

Viewers also liked

Rachel Kerr, Creative Inc on their work for Skoff Pies at Outstanding By Design by
Rachel Kerr, Creative Inc on their work for Skoff Pies at Outstanding By DesignRachel Kerr, Creative Inc on their work for Skoff Pies at Outstanding By Design
Rachel Kerr, Creative Inc on their work for Skoff Pies at Outstanding By DesignBank of Ireland
1.8K views54 slides
Pinterest – a beginners guide for business by
Pinterest – a beginners guide for businessPinterest – a beginners guide for business
Pinterest – a beginners guide for businessBambi Gordon
475 views61 slides
Krasnaya kniga by
Krasnaya knigaKrasnaya kniga
Krasnaya knigaОльга Климантова
563 views6 slides
Breda Maher - the rebrand of Cooleeney Cheese by
Breda Maher - the rebrand of Cooleeney CheeseBreda Maher - the rebrand of Cooleeney Cheese
Breda Maher - the rebrand of Cooleeney CheeseBank of Ireland
1.1K views9 slides
TWERM by
TWERMTWERM
TWERMWm Baty
362 views13 slides
Social Media - introduction by
Social Media - introductionSocial Media - introduction
Social Media - introductionBambi Gordon
299 views22 slides

Viewers also liked(20)

Rachel Kerr, Creative Inc on their work for Skoff Pies at Outstanding By Design by Bank of Ireland
Rachel Kerr, Creative Inc on their work for Skoff Pies at Outstanding By DesignRachel Kerr, Creative Inc on their work for Skoff Pies at Outstanding By Design
Rachel Kerr, Creative Inc on their work for Skoff Pies at Outstanding By Design
Bank of Ireland1.8K views
Pinterest – a beginners guide for business by Bambi Gordon
Pinterest – a beginners guide for businessPinterest – a beginners guide for business
Pinterest – a beginners guide for business
Bambi Gordon475 views
Breda Maher - the rebrand of Cooleeney Cheese by Bank of Ireland
Breda Maher - the rebrand of Cooleeney CheeseBreda Maher - the rebrand of Cooleeney Cheese
Breda Maher - the rebrand of Cooleeney Cheese
Bank of Ireland1.1K views
TWERM by Wm Baty
TWERMTWERM
TWERM
Wm Baty362 views
Social Media - introduction by Bambi Gordon
Social Media - introductionSocial Media - introduction
Social Media - introduction
Bambi Gordon299 views
ER_model by jiannrong
ER_modelER_model
ER_model
jiannrong3.9K views
Firefox Update by jiannrong
Firefox UpdateFirefox Update
Firefox Update
jiannrong438 views
ผลงานวิชาการและคลังความรู้กับประเด็นที่ควรคำนึงในยุคดิจิทัล Reference tools &... by Satapon Yosakonkun
ผลงานวิชาการและคลังความรู้กับประเด็นที่ควรคำนึงในยุคดิจิทัล Reference tools &...ผลงานวิชาการและคลังความรู้กับประเด็นที่ควรคำนึงในยุคดิจิทัล Reference tools &...
ผลงานวิชาการและคลังความรู้กับประเด็นที่ควรคำนึงในยุคดิจิทัล Reference tools &...
Satapon Yosakonkun563 views
If i could be where you are by ybq
If i could be where you areIf i could be where you are
If i could be where you are
ybq267 views
Iv Lectures Carlos by bwood
Iv  Lectures CarlosIv  Lectures Carlos
Iv Lectures Carlos
bwood442 views
Time Management: for establishing and controlling your priorities by Mitchell Manning Sr.
Time Management: for establishing and controlling your prioritiesTime Management: for establishing and controlling your priorities
Time Management: for establishing and controlling your priorities
ต้นวิจัย ใบเศรษฐกิจ ผลิตผลสังคม by Satapon Yosakonkun
ต้นวิจัย ใบเศรษฐกิจ ผลิตผลสังคมต้นวิจัย ใบเศรษฐกิจ ผลิตผลสังคม
ต้นวิจัย ใบเศรษฐกิจ ผลิตผลสังคม
Satapon Yosakonkun584 views

Similar to Yandex.Frontend: complex services, complex solutions

Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее" by
Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"
Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"Yandex
3.6K views78 slides
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од... by
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...GoSharp
1.2K views28 slides
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один by
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только одинSECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только одинSECON
198 views82 slides
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один by
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только одинSECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только одинSECON
343 views82 slides
Микросервисы: взгляд сверху и в бок by
Микросервисы: взгляд сверху и в бокМикросервисы: взгляд сверху и в бок
Микросервисы: взгляд сверху и в бокDotNetConf
855 views84 slides
Ещё один поиск Яндекса by
Ещё один поиск ЯндексаЕщё один поиск Яндекса
Ещё один поиск ЯндексаAlexander Koshelev
103 views23 slides

Similar to Yandex.Frontend: complex services, complex solutions(20)

Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее" by Yandex
Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"
Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"
Yandex3.6K views
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од... by GoSharp
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
GoSharp1.2K views
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один by SECON
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только одинSECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON198 views
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один by SECON
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только одинSECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON343 views
Микросервисы: взгляд сверху и в бок by DotNetConf
Микросервисы: взгляд сверху и в бокМикросервисы: взгляд сверху и в бок
Микросервисы: взгляд сверху и в бок
DotNetConf855 views
Правильная семантическая разметка для всех by Yuliya Tikhokhod
Правильная семантическая разметка для всехПравильная семантическая разметка для всех
Правильная семантическая разметка для всех
Yuliya Tikhokhod539 views
Javascript-фреймворки:
 должен остаться только один by Sergey Xek
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
Sergey Xek1.7K views
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis) by Ontico
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Ontico1.4K views
Владислав Моргун by SEO.UA
Владислав МоргунВладислав Моргун
Владислав Моргун
SEO.UA145 views
Архитектурные решения при создании облачного сервиса на Asp.Net by GoSharp
Архитектурные решения при создании облачного сервиса на Asp.NetАрхитектурные решения при создании облачного сервиса на Asp.Net
Архитектурные решения при создании облачного сервиса на Asp.Net
GoSharp660 views
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс by it-people
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
it-people398 views
Архитектура кода нового 2ГИС Web API или куда мы дели MVC by DevDay
Архитектура кода нового 2ГИС Web API или куда мы дели MVCАрхитектура кода нового 2ГИС Web API или куда мы дели MVC
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
DevDay1.1K views
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один by HappyDev
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
HappyDev294 views
State of the Standardized Web by Yandex
State of the Standardized WebState of the Standardized Web
State of the Standardized Web
Yandex240 views
Приложения для соцсетей. Универсальные приложения на БЭМ by Aleksandr Boichenko
Приложения для соцсетей. Универсальные приложения на БЭМПриложения для соцсетей. Универсальные приложения на БЭМ
Приложения для соцсетей. Универсальные приложения на БЭМ
Aleksandr Boichenko1.6K views
Автоматизация SEO-процессов в продуктовых компаниях - DVOMA.pro 30.08 by Vladislav Morgun
Автоматизация SEO-процессов в продуктовых компаниях - DVOMA.pro 30.08Автоматизация SEO-процессов в продуктовых компаниях - DVOMA.pro 30.08
Автоматизация SEO-процессов в продуктовых компаниях - DVOMA.pro 30.08
Vladislav Morgun985 views
введение в SharePoint by Ivan Padabed
введение в SharePointвведение в SharePoint
введение в SharePoint
Ivan Padabed422 views
2013 09 17 архитектура веб-приложений by Yandex
2013 09 17 архитектура веб-приложений2013 09 17 архитектура веб-приложений
2013 09 17 архитектура веб-приложений
Yandex5.3K views
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза... by IT-Portfolio
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Оптимиза...
IT-Portfolio1.9K views

More from Yelena Jetpyspayeva

Building developer community in Russia by
Building developer community in RussiaBuilding developer community in Russia
Building developer community in RussiaYelena Jetpyspayeva
363 views63 slides
News and plan of BEM community by
News and plan of BEM communityNews and plan of BEM community
News and plan of BEM communityYelena Jetpyspayeva
171 views100 slides
inFront: на передовой событий в мире фронтенда by
inFront: на передовой событий в мире фронтендаinFront: на передовой событий в мире фронтенда
inFront: на передовой событий в мире фронтендаYelena Jetpyspayeva
1.8K views55 slides
Яндекс.Events на Я.Субботнике в Риге, 6 апреля 2013 года by
Яндекс.Events на Я.Субботнике в Риге, 6 апреля 2013 годаЯндекс.Events на Я.Субботнике в Риге, 6 апреля 2013 года
Яндекс.Events на Я.Субботнике в Риге, 6 апреля 2013 годаYelena Jetpyspayeva
644 views14 slides
Promoting New Media in Central Asia by
Promoting New Media in Central AsiaPromoting New Media in Central Asia
Promoting New Media in Central AsiaYelena Jetpyspayeva
391 views31 slides
Neweurasia.net at Educamp Almaty 2009 by
Neweurasia.net at Educamp Almaty 2009Neweurasia.net at Educamp Almaty 2009
Neweurasia.net at Educamp Almaty 2009Yelena Jetpyspayeva
437 views24 slides

More from Yelena Jetpyspayeva(12)

inFront: на передовой событий в мире фронтенда by Yelena Jetpyspayeva
inFront: на передовой событий в мире фронтендаinFront: на передовой событий в мире фронтенда
inFront: на передовой событий в мире фронтенда
Yelena Jetpyspayeva1.8K views
Яндекс.Events на Я.Субботнике в Риге, 6 апреля 2013 года by Yelena Jetpyspayeva
Яндекс.Events на Я.Субботнике в Риге, 6 апреля 2013 годаЯндекс.Events на Я.Субботнике в Риге, 6 апреля 2013 года
Яндекс.Events на Я.Субботнике в Риге, 6 апреля 2013 года

Yandex.Frontend: complex services, complex solutions