SlideShare a Scribd company logo
1 of 73
Download to read offline
Написание
технологий для
bem-tools
Татаринцев Сергей, Яндекс
BEMup в Питере, 29 ноября 2013
bem-tools

!2
bem-tools

• сборщик BEM-проектов

!2
bem-tools

• сборщик BEM-проектов
• расширяемый при помощи:

!2
bem-tools

• сборщик BEM-проектов
• расширяемый при помощи:
• узлов сборки

!2
bem-tools

• сборщик BEM-проектов
• расширяемый при помощи:
• узлов сборки
• подкоманд (в 1.0.0)

!2
bem-tools

• сборщик BEM-проектов
• расширяемый при помощи:
• узлов сборки
• подкоманд (в 1.0.0)
• модулей технологий

!2
Ссылки

!3
Ссылки

• документация: ru.bem.info/tools/bem

!3
Ссылки

• документация: ru.bem.info/tools/bem
• принимаем пожелания: github.com/bem/bem-tools/issues

!3
Модули технологий

!4
Модули технологий

• технологии — средства описания БЭМ-сущностей

!4
Модули технологий

• технологии — средства описания БЭМ-сущностей
• модуль технологии — Node.JS модуль для сборки файлов
технологий

!4
Пример

!5
Пример

• Блок описан в технологиях css, js, bemhtml
/block
block.css
block.js
block.bemhtml

!5
Пример

• Блок описан в технологиях css, js, bemhtml
/block
block.css
block.js
block.bemhtml
• css страницы собирается модулем технологии css

!5
Технологии в bem-tools
bemdecl
css
deps.js
dir
docs
examples
ie.css
js
js-i
level
level-proto
project
tech-docs
!6
Технологии в bem-core
bemhtml
bemtree
html
vanilla.js
node.js
browser.js
browser.js+bemhtml
!7
!8

Маловато будет
Пишем свою технологию
На примере CoffeeScript
Назначение модулей технологий

!10
Назначение модулей технологий

• создание файлов по шаблону (bem create)

!10
Назначение модулей технологий

• создание файлов по шаблону (bem create)
bem create —l common.block --block my-block —T css

!10
Назначение модулей технологий

• создание файлов по шаблону (bem create)
bem create —l common.block --block my-block —T css

• сборка результатов (bem build)

!10
Назначение модулей технологий

• создание файлов по шаблону (bem create)
bem create —l common.block --block my-block —T css

• сборка результатов (bem build)
• исходные файлы — внутри блоков

!10
Назначение модулей технологий

• создание файлов по шаблону (bem create)
bem create —l common.block --block my-block —T css

• сборка результатов (bem build)
• исходные файлы — внутри блоков
• блоки — внутри уровней переопределения

!10
Назначение модулей технологий

• создание файлов по шаблону (bem create)
bem create —l common.block --block my-block —T css

• сборка результатов (bem build)
• исходные файлы — внутри блоков
• блоки — внутри уровней переопределения
• результат — в бандл

!10
Сборка

Результат =
префикс + суффиксы + декларация + уровни

!11
Префикс и суффикс

Суффикс

/path/to/some/file.tech.js
!

!12

Префикс
Декларация

!13
Декларация

• список сущностей для сборки

!13
Декларация

• список сущностей для сборки
• строится из bemjson.js бандлов и deps.js блоков

!13
Декларация - пример
bemjson

block1.deps.js

({

({
block: 'page',
content: [
{block: 'block1'}
]

mustDeps: [
{block: 'block2'}
]
})

})

Декларация
[
{block: 'page'},
{block: 'block2'},
{block: 'block1'}
]
!14
Уровни переопределения

!15
Уровни переопределения

• папки, содержащие bem-сущности

!15
Уровни переопределения

• папки, содержащие bem-сущности
• каждая следующая переопределяет предыдущую

!15
Уровни переопределения

• папки, содержащие bem-сущности
• каждая следующая переопределяет предыдущую
• примеры:
• common
• desktop
• touch

!15
Let’s code!
Заготовка

• используется вторая версия API
• techMixin будет «примешан» к классу TechV2
!
exports.API_VER = 2;!
exports.techMixin = {!
//здесь будет код!
};

!17
getBuildSuffixesMap
{!
"что": ["из чего", "из чего еще", …],!
"что еще": […],!
…!
}

!18
Наш случай
Собираем js из coffee и js
exports.API_VER = 2;!
exports.techMixin = {!
getBuildSuffixesMap: function() {!
return {"js": ["coffee", "js"]};!
}!
}

!19
Процесс сборки

Декларация

Префикс результата

getBuildResults(decl, levels, output, opts);
Уровни

!20

Опции
getBuildResults, по умолчанию

!21
getBuildResults, по умолчанию

• сканирует все уровни переопределения

!21
getBuildResults, по умолчанию

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

!21
getBuildResults, по умолчанию

• сканирует все уровни переопределения
• собирает исходные файлы для сущностей из декларации
• проверяет, нужна ли пересборка

!21
getBuildResults, по умолчанию

•
•
•
•

!21

сканирует все уровни переопределения
собирает исходные файлы для сущностей из декларации
проверяет, нужна ли пересборка
вызывает getBuildResult для каждого выходного файла
Пример
•
•
•
•

уровни: common.blocks, desktop.blocks
декларация: [{block: "block1"}, {block: "block2"}]
build suffixes map: {js: ["coffee", "js"]}
файлы:

common.blocks/
block1/
block1.bemhtml
block1.css
block1.coffee
block2/
block2.bemhtml
block2.js
desktop.blocks/
block1/
block1.coffee
block1.css
block2/
block2.js

!22
Пример
•
•
•
•

уровни: common.blocks, desktop.blocks
декларация: [{block: "block1"}, {block: "block2"}]
build suffixes map: {js: ["coffee", "js"]}
файлы:

common.blocks/
block1/
block1.bemhtml
block1.css
block1.coffee
block2/
block2.bemhtml
block2.js
desktop.blocks/
block1/
block1.coffee
block1.css
block2/
block2.js

!23
Процесс сборки

Исходные
файлы

Префикс
выходного файла

getBuildResult(files, suffix, output, opts);
Выходной
суффикс

!24

Опции
Процесс сборки

getBuildResult(files, suffix, output, opts);
Для каждого файла

getBuildResultChunk(relPath, path, suffix)

!25
Процесс сборки

абсолютный
путь
getBuildResultChunk(relPath, path, suffix);
относительный
путь

!26

исходный
суффикс
Пример
•
•
•
•
•

уровни: common.blocks, desktop.blocks
декларация: [{block: "block1"}, {block: «block2"}]
выходоной префикс: desktop.bundles/example/example
build suffixes map: {js: ["coffee", "js"]}
файлы:

common.blocks/
block1/
block1.bemhtml
block1.css
block1.coffee
block2/
block2.bemhtml
block2.js
desktop.blocks/
block1/
block1.coffee
block1.css
block2/
block2.js
!27

getBuildResultChunk

getBuildResultChunk
desktop.bundles/example/example.js
getBuildResultChunk

getBuildResultChunk
Полный процесс

!28
Полный процесс

• вызывается getBuildResults(decl, levels, output, opts)

!28
Полный процесс

• вызывается getBuildResults(decl, levels, output, opts)
• сканируются уровни

!28
Полный процесс

• вызывается getBuildResults(decl, levels, output, opts)
• сканируются уровни
• находятся все исходные файлы БЭМ-сущностей из
декларации

!28
Полный процесс

• вызывается getBuildResults(decl, levels, output, opts)
• сканируются уровни
• находятся все исходные файлы БЭМ-сущностей из
декларации
• для каждого выходного файла зовется getBuildResult(files,
suffix, output, opts)

!28
Полный процесс

• вызывается getBuildResults(decl, levels, output, opts)
• сканируются уровни
• находятся все исходные файлы БЭМ-сущностей из
декларации
• для каждого выходного файла зовется getBuildResult(files,
suffix, output, opts)
• для кажого исходного файла зовется
getBuildResultChunk(relPath, path, suffix)

!28
Полный процесс

• вызывается getBuildResults(decl, levels, output, opts)
• сканируются уровни
• находятся все исходные файлы БЭМ-сущностей из
декларации
• для каждого выходного файла зовется getBuildResult(files,
suffix, output, opts)
• для кажого исходного файла зовется
getBuildResultChunk(relPath, path, suffix)
• результаты склеиваются и записываются на диск

!28
Завершим код
var fs = require('fs'),!
coffee = require('coffee-script');!
!
exports.API_VER = 2;!
exports.techMixin = {!
getBuildSuffixesMap: function() {!
return {'js': ['coffee', 'js']};!
},!
!
getBuildResultChunk: function(relPath, path, suffix) {!
var content = fs.readFileSync(path);!
if (suffix === 'coffee') {!
return coffee.compile(content);!
}!
return content;!
}!
};

!29
Подключение
На уровне блоков
В .bem/levels/blocks.js добавить полный путь к модулю в getTechs:

exports.getTechs = function() {!
return {!
…!
"coffee+js": "/path/to/tech/module.js"!
};!
};

!31
В make.js
Добавить в BundleNode#getTechs

registry.decl('BundleNode', {!
getTechs: function() {!
return [!
...!
'coffee+js',!
...!
];!
}!
});

!32
Минификация (в 0.6.x и 0.7.x)
Указать в make.js как технология должна оптимизироваться
registry.decl('BundleNode', {!
!
...!
!

'create-coffee+js-optimizer-node': function() {!
this['create-js-optimizer-node'].apply(this,
arguments);!
}!
});

!33
Минификация (в 1.0.0)

!34
Минификация (в 1.0.0)

• убедиться, что технология min.js включена в сборку

!34
Минификация (в 1.0.0)

• убедиться, что технология min.js включена в сборку
– зарегистрирована на уровне бандлов

!34
Минификация (в 1.0.0)

• убедиться, что технология min.js включена в сборку
– зарегистрирована на уровне бандлов
– добавлена в BundleNode::getTechs

!34
Что дальше?
Не рассказано

•
•
•
•

!36

создание шаблонов
bem create в процессе сборки
тестирование
суммарные технологии
Ссылки

• Документация — bit.ly/techmod-doc
• Технологии bem-tools — bit.ly/tech-bemtools
• Технологии bem-core — bit.ly/tech-bemcore

!37
Татаринцев Сергей
Старший разработчик
sevinf@yandex-team.ru
@SevInf

Спасибо

More Related Content

What's hot

Web осень 2013 лекция 8
Web осень 2013 лекция 8Web осень 2013 лекция 8
Web осень 2013 лекция 8Technopark
 
Баба Яга против!
Баба Яга против!Баба Яга против!
Баба Яга против!Roman Dvornov
 
Ice Php Framework Preview Release
Ice Php Framework Preview ReleaseIce Php Framework Preview Release
Ice Php Framework Preview ReleaseDenis Shestakov
 
Vipolnenie komand na servere
Vipolnenie komand na servereVipolnenie komand na servere
Vipolnenie komand na servereygoltsev
 
Selenium: начало работы
Selenium: начало работыSelenium: начало работы
Selenium: начало работыPaul Stashevsky
 
Максим Щепелин. "Unittesting. Как?"
Максим Щепелин. "Unittesting. Как?"Максим Щепелин. "Unittesting. Как?"
Максим Щепелин. "Unittesting. Как?"Python Meetup
 
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2   кеширование для pro родионов игорьEasy authcache 2   кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорьdrupalconf
 
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...Ontico
 
Эффективное программирование на NodeJS
Эффективное программирование на NodeJSЭффективное программирование на NodeJS
Эффективное программирование на NodeJSYura Bogdanov
 
Web осень 2013 лекция 4
Web осень 2013 лекция 4Web осень 2013 лекция 4
Web осень 2013 лекция 4Technopark
 
Web осень 2013 лекция 7
Web осень 2013 лекция 7Web осень 2013 лекция 7
Web осень 2013 лекция 7Technopark
 
Asyncio для процессинга распределенной базы данных
Asyncio для процессинга  распределенной базы данныхAsyncio для процессинга  распределенной базы данных
Asyncio для процессинга распределенной базы данныхPyNSK
 
Easy selenium test automation on python
Easy selenium test automation on pythonEasy selenium test automation on python
Easy selenium test automation on pythonMykhailo Poliarush
 
Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...
Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...
Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...zfconfua
 
Михаил Боднарчук Современное функциональное тестирование с Codeception
Михаил Боднарчук Современное функциональное тестирование с CodeceptionМихаил Боднарчук Современное функциональное тестирование с Codeception
Михаил Боднарчук Современное функциональное тестирование с CodeceptionAlbina Tiupa
 
JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.Igor Shkulipa
 
Игорь Любин -- Об опыте тестирования программного компонента без пользователь...
Игорь Любин -- Об опыте тестирования программного компонента без пользователь...Игорь Любин -- Об опыте тестирования программного компонента без пользователь...
Игорь Любин -- Об опыте тестирования программного компонента без пользователь...sqadays8
 
Регрессионное тестирование верстки
Регрессионное тестирование версткиРегрессионное тестирование верстки
Регрессионное тестирование версткиTalks&Works
 
М. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionМ. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionAlbina Tiupa
 
ZFConf 2010: What News Zend Framework 2.0 Brings to Us
ZFConf 2010: What News Zend Framework 2.0 Brings to UsZFConf 2010: What News Zend Framework 2.0 Brings to Us
ZFConf 2010: What News Zend Framework 2.0 Brings to UsZFConf Conference
 

What's hot (20)

Web осень 2013 лекция 8
Web осень 2013 лекция 8Web осень 2013 лекция 8
Web осень 2013 лекция 8
 
Баба Яга против!
Баба Яга против!Баба Яга против!
Баба Яга против!
 
Ice Php Framework Preview Release
Ice Php Framework Preview ReleaseIce Php Framework Preview Release
Ice Php Framework Preview Release
 
Vipolnenie komand na servere
Vipolnenie komand na servereVipolnenie komand na servere
Vipolnenie komand na servere
 
Selenium: начало работы
Selenium: начало работыSelenium: начало работы
Selenium: начало работы
 
Максим Щепелин. "Unittesting. Как?"
Максим Щепелин. "Unittesting. Как?"Максим Щепелин. "Unittesting. Как?"
Максим Щепелин. "Unittesting. Как?"
 
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2   кеширование для pro родионов игорьEasy authcache 2   кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорь
 
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...
 
Эффективное программирование на NodeJS
Эффективное программирование на NodeJSЭффективное программирование на NodeJS
Эффективное программирование на NodeJS
 
Web осень 2013 лекция 4
Web осень 2013 лекция 4Web осень 2013 лекция 4
Web осень 2013 лекция 4
 
Web осень 2013 лекция 7
Web осень 2013 лекция 7Web осень 2013 лекция 7
Web осень 2013 лекция 7
 
Asyncio для процессинга распределенной базы данных
Asyncio для процессинга  распределенной базы данныхAsyncio для процессинга  распределенной базы данных
Asyncio для процессинга распределенной базы данных
 
Easy selenium test automation on python
Easy selenium test automation on pythonEasy selenium test automation on python
Easy selenium test automation on python
 
Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...
Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...
Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...
 
Михаил Боднарчук Современное функциональное тестирование с Codeception
Михаил Боднарчук Современное функциональное тестирование с CodeceptionМихаил Боднарчук Современное функциональное тестирование с Codeception
Михаил Боднарчук Современное функциональное тестирование с Codeception
 
JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.
 
Игорь Любин -- Об опыте тестирования программного компонента без пользователь...
Игорь Любин -- Об опыте тестирования программного компонента без пользователь...Игорь Любин -- Об опыте тестирования программного компонента без пользователь...
Игорь Любин -- Об опыте тестирования программного компонента без пользователь...
 
Регрессионное тестирование верстки
Регрессионное тестирование версткиРегрессионное тестирование верстки
Регрессионное тестирование верстки
 
М. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionМ. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с Codeception
 
ZFConf 2010: What News Zend Framework 2.0 Brings to Us
ZFConf 2010: What News Zend Framework 2.0 Brings to UsZFConf 2010: What News Zend Framework 2.0 Brings to Us
ZFConf 2010: What News Zend Framework 2.0 Brings to Us
 

Similar to Сергей Татаринцев — Написание модулей технологий для bem-tools

Сергей Белов "bem server: система сборки фронтенда"
Сергей Белов "bem server: система сборки фронтенда"Сергей Белов "bem server: система сборки фронтенда"
Сергей Белов "bem server: система сборки фронтенда"Yandex
 
Мастер-класс наоборот: вы пишете БЭМ-проект, а мы подсказываем — Евгений Конс...
Мастер-класс наоборот: вы пишете БЭМ-проект, а мы подсказываем — Евгений Конс...Мастер-класс наоборот: вы пишете БЭМ-проект, а мы подсказываем — Евгений Конс...
Мастер-класс наоборот: вы пишете БЭМ-проект, а мы подсказываем — Евгений Конс...Yandex
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияYandex
 
Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"
Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"
Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"Yandex
 
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...Yandex
 
Консольные приложения на Go
Консольные приложения на GoКонсольные приложения на Go
Консольные приложения на GoAndrey Smirnov
 
BEM IDE — прототип редактора БЭМ-проектов — Саша Белянский, Яндекс
BEM IDE — прототип редактора БЭМ-проектов — Саша Белянский, ЯндексBEM IDE — прототип редактора БЭМ-проектов — Саша Белянский, Яндекс
BEM IDE — прототип редактора БЭМ-проектов — Саша Белянский, ЯндексYandex
 
Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...
Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...
Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...Yandex
 
Владимир Варанкин "БЭМ и JavaScript: Зачем мы написали JS-фреймворк?"
Владимир Варанкин "БЭМ и JavaScript: Зачем мы написали JS-фреймворк?"Владимир Варанкин "БЭМ и JavaScript: Зачем мы написали JS-фреймворк?"
Владимир Варанкин "БЭМ и JavaScript: Зачем мы написали JS-фреймворк?"Yandex
 
Сергей Бережной — bem-core v1.0.0
Сергей Бережной — bem-core v1.0.0Сергей Бережной — bem-core v1.0.0
Сергей Бережной — bem-core v1.0.0Yandex
 
Дмитрий Кушников — БЭМ глазами бэкенд-разработчика
Дмитрий Кушников — БЭМ глазами бэкенд-разработчикаДмитрий Кушников — БЭМ глазами бэкенд-разработчика
Дмитрий Кушников — БЭМ глазами бэкенд-разработчикаYandex
 
Поддержка идентичности структуры БД при командной разработке.
Поддержка идентичности структуры БД при командной разработке.Поддержка идентичности структуры БД при командной разработке.
Поддержка идентичности структуры БД при командной разработке.REES46
 
Сергей Татаринцев — bem-tools v1.0.0
Сергей Татаринцев — bem-tools v1.0.0Сергей Татаринцев — bem-tools v1.0.0
Сергей Татаринцев — bem-tools v1.0.0Yandex
 
SPA инструменты
SPA инструментыSPA инструменты
SPA инструментыRoman Dvornov
 
Romanova techforum bash
Romanova techforum bashRomanova techforum bash
Romanova techforum bashkuchinskaya
 
Презентация к докладу про БЭМ by Mikhail Troshev
Презентация к докладу про БЭМ  by Mikhail TroshevПрезентация к докладу про БЭМ  by Mikhail Troshev
Презентация к докладу про БЭМ by Mikhail Troshev1 1
 
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Ontico
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияYandex
 

Similar to Сергей Татаринцев — Написание модулей технологий для bem-tools (20)

Сергей Белов "bem server: система сборки фронтенда"
Сергей Белов "bem server: система сборки фронтенда"Сергей Белов "bem server: система сборки фронтенда"
Сергей Белов "bem server: система сборки фронтенда"
 
Мастер-класс наоборот: вы пишете БЭМ-проект, а мы подсказываем — Евгений Конс...
Мастер-класс наоборот: вы пишете БЭМ-проект, а мы подсказываем — Евгений Конс...Мастер-класс наоборот: вы пишете БЭМ-проект, а мы подсказываем — Евгений Конс...
Мастер-класс наоборот: вы пишете БЭМ-проект, а мы подсказываем — Евгений Конс...
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
 
Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"
Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"
Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"
 
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
 
Консольные приложения на Go
Консольные приложения на GoКонсольные приложения на Go
Консольные приложения на Go
 
BEM IDE — прототип редактора БЭМ-проектов — Саша Белянский, Яндекс
BEM IDE — прототип редактора БЭМ-проектов — Саша Белянский, ЯндексBEM IDE — прототип редактора БЭМ-проектов — Саша Белянский, Яндекс
BEM IDE — прототип редактора БЭМ-проектов — Саша Белянский, Яндекс
 
Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...
Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...
Жека Константинов, Дима Белицкий, Слава Аристов — Мастер-класс: разрабатываем...
 
Владимир Варанкин "БЭМ и JavaScript: Зачем мы написали JS-фреймворк?"
Владимир Варанкин "БЭМ и JavaScript: Зачем мы написали JS-фреймворк?"Владимир Варанкин "БЭМ и JavaScript: Зачем мы написали JS-фреймворк?"
Владимир Варанкин "БЭМ и JavaScript: Зачем мы написали JS-фреймворк?"
 
Сергей Бережной — bem-core v1.0.0
Сергей Бережной — bem-core v1.0.0Сергей Бережной — bem-core v1.0.0
Сергей Бережной — bem-core v1.0.0
 
Дмитрий Кушников — БЭМ глазами бэкенд-разработчика
Дмитрий Кушников — БЭМ глазами бэкенд-разработчикаДмитрий Кушников — БЭМ глазами бэкенд-разработчика
Дмитрий Кушников — БЭМ глазами бэкенд-разработчика
 
Поддержка идентичности структуры БД при командной разработке.
Поддержка идентичности структуры БД при командной разработке.Поддержка идентичности структуры БД при командной разработке.
Поддержка идентичности структуры БД при командной разработке.
 
Сергей Татаринцев — bem-tools v1.0.0
Сергей Татаринцев — bem-tools v1.0.0Сергей Татаринцев — bem-tools v1.0.0
Сергей Татаринцев — bem-tools v1.0.0
 
SPA инструменты
SPA инструментыSPA инструменты
SPA инструменты
 
PowerShell
PowerShellPowerShell
PowerShell
 
Romanova techforum bash
Romanova techforum bashRomanova techforum bash
Romanova techforum bash
 
Презентация к докладу про БЭМ by Mikhail Troshev
Презентация к докладу про БЭМ  by Mikhail TroshevПрезентация к докладу про БЭМ  by Mikhail Troshev
Презентация к докладу про БЭМ by Mikhail Troshev
 
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
 
Erlang tasty & useful stuff
Erlang tasty & useful stuffErlang tasty & useful stuff
Erlang tasty & useful stuff
 

More from Yandex

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

More from Yandex (20)

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

Сергей Татаринцев — Написание модулей технологий для bem-tools