SlideShare ist ein Scribd-Unternehmen logo
1 von 64
Downloaden Sie, um offline zu lesen
TARS,сделай уровень
frontend-рутины 0%
Артем Малко
a.malko@2gis.ru @malko_artem
Над чем работаю
• Инфопортал info.2gis.ru
• Techno techno.2gis.ru
• Лендинги и promo
2
Я сильно
страдал
Копипаст html
Подготовка
графики
Все должно быть
минифицировано
Минифицируем
• Графику
• JS
• CSS
• HTML
10
Нужен помощник
Хотелось
• Автоматизировать все
• Использовать уже существующие наработки
• Базовый набор функций
• Удобный инструмент
• Кроссплатформенность
12
Ищем готовое
решение
Что нашлось
1. Headstart
2. JS App Starter
3. INIT
4. FireShell, FastShell
5. Html5boilerplate, Web Starter Kit
6. ...
14
Тогда появился
Основные фичи
• Gulp
• Выбор шаблонизатора (Jade, Handlebars, html*)
• Выбор css-препроцессора (SCSS, LESS, Stylus, css*)
• Данные отдельно от шаблона
• Модульный, легко расширяемый
16
Основные фичи
• Работа с графикой на раз, два, три
• Конфиг на все случаи жизни
• Хорошая документация
• Создание архива готовой сборки
• и многое другое...
17
Основные команды
• gulp init
• gulp или gulp build
• gulp dev
18
Основные команды
• gulp init
• gulp или gulp build (--min, --release, --ie8)
• gulp dev (--lr, --tunnel, --ie8)
19
Структура
сборщика
├── gulpfile.js # gulpfile сборщика
├── tars-config.js # Конфигурационный файл
├── package.json # Зависимости TARS
├── user-package.json # Пользовательские пакеты
└── tars/ # Таски и хелперы для gulp
└── helpers/ # Хелперы
└── tasks/ # Основные таски
└── user-tasks/ # Пользовательские таски
└── watchers/ # Основные вотчеры
└── user-watchers/ # Пользовательские вотчеры
└── markup/ # Основная папка с проектом
└── modules/ # Модули
└── pages/ # Шаблоны страниц
└── static/ # Различная статика (css, js и т.п.)
└── docs/ # Документация
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
21
Модули
и страницы
Структура модуля
exampleModule/ # Пример модуля
└── assets/ # Различная статика для текущего модуля
└── ie/ # Cтили для ie8 и ie9 (ie9/ie8.scss|less|styl)
└── data/ # Папка для хранения данных для модуля
├── data.js # Данные для модуля в виде js-объекта
├── exampleModule.html # Html|Jade-представления модуля
├── exampleModule.scss|less|styl # Scss|Less|Stylus-представление модуля
├── exampleModule.js # Js-представление модуля
01.
02.
03.
04.
05.
06.
07.
08.
23
Пример
использования
Верстаем меню
25
Html-представление
<nav class="menu {{#if mod}}_{{mod}}{{/if}}">
<ul class="menu__list">
{{#each list}}
<li class="menu__listItem">
<a href="{{url}}" class="menu__listItemLink">
{{{title}}}
</a>
<li>
{{/each}}
</ul>
</nav>
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
26
Data-представление
menu: {
top: {
mod: 'top',
list: [
{
url: 'http://2gis.ru',
title: '2gis'
}, {...}
]
},
side: {...},
bottom: {...},
}
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
27
Используем готовый модуль
<html>
<header>
{{> menu/menu menu.top}}
</header>
<aside>
{{> menu/menu menu.side}}
</aside>
<footer>
{{> menu/menu menu.footer}}
</footer>
</html>
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
28
Поговорим
о статике
Структура папки для статики
static/
└── fonts/# Шрифты
└── img/# Картинки
└── js/# Js
└── misc/# Различные дополнительные файлы
└── scss/# А тут стили
01.
02.
03.
04.
05.
06.
30
Структура папки для статики
static/
└── fonts/# Шрифты
└── img/# Картинки
└── js/# Js
└── misc/# Различные дополнительные файлы
└── scss/# А тут стили
01.
02.
03.
04.
05.
06.
31
JS и CSS
Собираем CSS
• Генерация стилей спрайтов
• Конкатинация
• Компилирование в CSS
• Autoprefixer
• Сжатие
• Добавление суффиксов min и hash
33
Собираем CSS
• Генерация стилей спрайтов
• Конкатинация
• Компилирование в CSS
• Autoprefixer
• Сжатие
• Добавление суффиксов min и hash
34
Порядок сборки CSS
modules/
└── */moduleName.scss 10
static/
└── scss/
└── etc/
└── libraries/ 2
└── plugins/ 9
└── sprites-scss/ 4
└── common.scss 8
└── fonts.scss 5
└── GUI.scss 7
└── mixins.scss 3
└── normalize.scss 1
└── vars.scss 6
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
35
Собираем JS
• JSHint + JSCS
• Конкатинация
• Перенос отдельных файлов
• Удаление console.log, debugger и т.д.*
• Минификация (uglify)
• Добавление суффиксов min и hash
36
Собираем JS
• JSHint + JSCS
• Конкатинация
• Перенос отдельных файлов
• Удаление console.log, debugger и т.д.*
• Минифкация (uglify)
• Добавление суффиксов min и hash
37
Порядок сборки JS
modules/
└── */moduleName.js 5
static/
└── js/
└── framework/ 1
└── libraries/ 2
└── plugins/ 3
??? 4,6
01.
02.
03.
04.
05.
06.
07.
08.
38
О картинках
Автоматизация хранения графики на проекте Online4
Тимофей Чаптыков
t.chaptykov@2gis.ru @chaptykov
41
Всего два миксина
@include bg($png-image-name); #png-sprite
@include bg-svg($svg-image-name); #svg-sprite
01.
02.
42
Исходник SVG-файлы gulp-svg...
Спрайт
imagemin
SVG
SVG
SVG
Спрайт Спрайт
CSS CSS
main.css
PNG
gulp-concat
Спрайт
imagemin
PNGPNG
Спрайт Спрайт
CSS CSS
main-ie8.cssgulp-concat
spritesmithPNG-файлы
svg2png
Исходник SVG-файлы gulp-svg...
Спрайт
imagemin
SVG
SVG
SVG
Спрайт Спрайт
CSS CSS
main.css
PNG
gulp-concat
Спрайт
imagemin
PNGPNG
Спрайт Спрайт
CSS CSS
main-ie8.cssgulp-concat
spritesmithPNG-файлы
svg2png
О тасках
и вотчерах
Структура таска
47
Системные таски
├── gulpfile.js # gulpfile сборщика
├── tars-config.js # Конфигурационный файл
├── package.json # Зависимости TARS
├── user-package.json # Пользовательские пакеты
└── tars/ # Таски и хелперы для gulp
└── helpers/ # Хелперы
└── tasks/ # Основные таски
└── user-tasks/ # Пользовательские таски
└── watchers/ # Основные вотчеры
└── user-watchers/ # Пользовательские вотчеры
└── markup/ # Основная папка с проектом
└── docs/ # Документация
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
48
Пользовательские таски
├── gulpfile.js # gulpfile сборщика
├── tars-config.js # Конфигурационный файл
├── package.json # Зависимости TARS
├── user-package.json # Пользовательские пакеты
└── tars/ # Таски и хелперы для gulp
└── helpers/ # Хелперы
└── tasks/ # Основные таски
└── user-tasks/ # Пользовательские таски
└── watchers/ # Основные вотчеры
└── user-watchers/ # Пользовательские вотчеры
└── markup/ # Основная папка с проектом
└── docs/ # Документация
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
49
Структура вотчера
require dependencies;
module.exports = function(watchOptions) {
return chokidar.watch('markup/controller/*.js', {
ignored: '',
persistent: true,
ignoreInitial: true
}).on('all', function(event, path) {
watcherLog(event, path);
gulp.start('js:processing');
});
};
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
50
Системные вотчеры
├── gulpfile.js # gulpfile сборщика
├── tars-config.js # Конфигурационный файл
├── package.json # Зависимости TARS
├── user-package.json # Пользовательские пакеты
└── tars/ # Таски и хелперы для gulp
└── helpers/ # Хелперы
└── tasks/ # Основные таски
└── user-tasks/ # Пользовательские таски
└── watchers/ # Основные вотчеры
└── user-watchers/ # Пользовательские вотчеры
└── markup/ # Основная папка с проектом
└── docs/ # Документация
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
51
Пользовательские вотчеры
├── gulpfile.js # gulpfile сборщика
├── tars-config.js # Конфигурационный файл
├── package.json # Зависимости TARS
├── user-package.json # Пользовательские пакеты
└── tars/ # Таски и хелперы для gulp
└── helpers/ # Хелперы
└── tasks/ # Основные таски
└── user-tasks/ # Пользовательские таски
└── watchers/ # Основные вотчеры
└── user-watchers/ # Пользовательские вотчеры
└── markup/ # Основная папка с проектом
└── docs/ # Документация
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
52
Модульность—это удобно!
Результаты
Что получилось
• Автоматизируем по полной
• Все в одном
• Модульная структура
• Удобное API
56
Сколько выигрываем по времени
По-старому С TARS
HTML 8 часов 5.5 часов
Работа с графикой 6 часов 2 часа
JS и CSS 10 часов 8 часов
Поддержка проекта 2 часа 30 минут
57
Планы на
будущее
Планы на будущее
• Gulp 4
• Добавить шаблонизаторы
• Добавить пре- и пост-процессоров для css
• ES6
• Browserify/webpack
• Другой workflow для SVG
59
Планы на будущее
• Gulp 4
• Добавить шаблонизаторы
• Добавить пре- и пост-процессоров для css
• ES6
• Browserify/webpack/systemJs
• Другой workflow для SVG
• ...
60
Присылайте
Pull request'ы
Создавайте issues
Используйте TARS,
уменьшите уровень рутины до 0%
Артем Малко
a.malko@2gis.ru
@malko_artem
https://github.com/artem_malko/tars

Weitere ähnliche Inhalte

Was ist angesagt?

base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)Ontico
 
Внутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpackВнутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpackAlexey Ivanov
 
09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворки09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворкиRoman Brovko
 
Инструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важныИнструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важныCodeFest
 
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)Ontico
 
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScriptCSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScriptAlexey Ivanov
 
Произвольная смена дизайна системного скроллбара
Произвольная смена дизайна системного скроллбараПроизвольная смена дизайна системного скроллбара
Произвольная смена дизайна системного скроллбараDevDay
 
Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...
Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...
Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...Ontico
 
МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016Anastasia Goryacheva
 
Svyatoslav Login "360 View of XSS"
Svyatoslav Login "360 View of XSS"Svyatoslav Login "360 View of XSS"
Svyatoslav Login "360 View of XSS"Fwdays
 
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15MoscowJS
 
"CommonJS для браузера", Антон Шувалов, MoscowJS 15
"CommonJS для браузера", Антон Шувалов, MoscowJS 15"CommonJS для браузера", Антон Шувалов, MoscowJS 15
"CommonJS для браузера", Антон Шувалов, MoscowJS 15MoscowJS
 
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2GoQA
 
Ice Php Framework Preview Release
Ice Php Framework Preview ReleaseIce Php Framework Preview Release
Ice Php Framework Preview ReleaseDenis Shestakov
 
Basis.js – «под капотом»
Basis.js – «под капотом»Basis.js – «под капотом»
Basis.js – «под капотом»Roman Dvornov
 
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)Roman Dvornov
 

Was ist angesagt? (20)

base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
 
Внутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpackВнутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpack
 
09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворки09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворки
 
Инструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важныИнструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важны
 
JSSDK: Начало
JSSDK: НачалоJSSDK: Начало
JSSDK: Начало
 
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
 
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScriptCSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
 
Произвольная смена дизайна системного скроллбара
Произвольная смена дизайна системного скроллбараПроизвольная смена дизайна системного скроллбара
Произвольная смена дизайна системного скроллбара
 
Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...
Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...
Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...
 
Почему Mojolicious?
Почему Mojolicious?Почему Mojolicious?
Почему Mojolicious?
 
МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016
 
Svyatoslav Login "360 View of XSS"
Svyatoslav Login "360 View of XSS"Svyatoslav Login "360 View of XSS"
Svyatoslav Login "360 View of XSS"
 
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
 
"CommonJS для браузера", Антон Шувалов, MoscowJS 15
"CommonJS для браузера", Антон Шувалов, MoscowJS 15"CommonJS для браузера", Антон Шувалов, MoscowJS 15
"CommonJS для браузера", Антон Шувалов, MoscowJS 15
 
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
 
Ice Php Framework Preview Release
Ice Php Framework Preview ReleaseIce Php Framework Preview Release
Ice Php Framework Preview Release
 
Основы MongoDB + NodeJS
Основы MongoDB + NodeJSОсновы MongoDB + NodeJS
Основы MongoDB + NodeJS
 
Basis.js – «под капотом»
Basis.js – «под капотом»Basis.js – «под капотом»
Basis.js – «под капотом»
 
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)
 
Основы JS
Основы JSОсновы JS
Основы JS
 

Andere mochten auch

«Велогосипед», Данил Ильиных
«Велогосипед», Данил Ильиных«Велогосипед», Данил Ильиных
«Велогосипед», Данил ИльиныхDevDay
 
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИСИспользуем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС2ГИС Технологии
 
Партицирование и миграции данных на примере PostgreSQL — Денис Иванов, 2ГИС
Партицирование и миграции данных на примере PostgreSQL — Денис Иванов, 2ГИСПартицирование и миграции данных на примере PostgreSQL — Денис Иванов, 2ГИС
Партицирование и миграции данных на примере PostgreSQL — Денис Иванов, 2ГИС2ГИС Технологии
 
«Открытая веб картография», Илья Таратухин
«Открытая веб картография», Илья Таратухин«Открытая веб картография», Илья Таратухин
«Открытая веб картография», Илья ТаратухинDevDay
 
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС «Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС 2ГИС Технологии
 
Автоматизация UI тестирования под Windows и Windows Phone
Автоматизация UI тестирования под Windows и Windows PhoneАвтоматизация UI тестирования под Windows и Windows Phone
Автоматизация UI тестирования под Windows и Windows PhoneCodeFest
 
«Построение Read Model-ей с использованием потоков событий» — Денис Иванов, 2ГИС
«Построение Read Model-ей с использованием потоков событий» — Денис Иванов, 2ГИС«Построение Read Model-ей с использованием потоков событий» — Денис Иванов, 2ГИС
«Построение Read Model-ей с использованием потоков событий» — Денис Иванов, 2ГИС2ГИС Технологии
 
Continuous Delivery, или волшебная кнопка для релизов по запросу — Денис Яков...
Continuous Delivery, или волшебная кнопка для релизов по запросу — Денис Яков...Continuous Delivery, или волшебная кнопка для релизов по запросу — Денис Яков...
Continuous Delivery, или волшебная кнопка для релизов по запросу — Денис Яков...2ГИС Технологии
 
DUMP-2013 Serverside - Разработка развесистого API - Коржнев Сергей
DUMP-2013 Serverside - Разработка развесистого API - Коржнев СергейDUMP-2013 Serverside - Разработка развесистого API - Коржнев Сергей
DUMP-2013 Serverside - Разработка развесистого API - Коржнев Сергейit-people
 
«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС
«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС
«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС2ГИС Технологии
 
Cергей Коржнев, 2ГИС
Cергей Коржнев, 2ГИСCергей Коржнев, 2ГИС
Cергей Коржнев, 2ГИСOntico
 
«Девиации и патологии в отношениях с руководителями и подчинёнными» — Степан ...
«Девиации и патологии в отношениях с руководителями и подчинёнными» — Степан ...«Девиации и патологии в отношениях с руководителями и подчинёнными» — Степан ...
«Девиации и патологии в отношениях с руководителями и подчинёнными» — Степан ...2ГИС Технологии
 
«Badger — инструмент для мониторинга качества продуктов» – Ирина Шрейдер, 2ГИС
«Badger — инструмент для мониторинга качества продуктов» – Ирина Шрейдер, 2ГИС«Badger — инструмент для мониторинга качества продуктов» – Ирина Шрейдер, 2ГИС
«Badger — инструмент для мониторинга качества продуктов» – Ирина Шрейдер, 2ГИС2ГИС Технологии
 
«Реактивные грабли» — Дмитрий Кулижников, 2ГИС
«Реактивные грабли» — Дмитрий Кулижников, 2ГИС«Реактивные грабли» — Дмитрий Кулижников, 2ГИС
«Реактивные грабли» — Дмитрий Кулижников, 2ГИС2ГИС Технологии
 
«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков
«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков
«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков2ГИС Технологии
 
Тимофей Чаптыков «Верстальщик должен быть ленивый»
Тимофей Чаптыков «Верстальщик должен быть ленивый»Тимофей Чаптыков «Верстальщик должен быть ленивый»
Тимофей Чаптыков «Верстальщик должен быть ленивый»DevDay
 
Дизайнер, разработчик, нет конфликта, нет драмы — Евгения Малкова
Дизайнер, разработчик, нет конфликта, нет драмы — Евгения МалковаДизайнер, разработчик, нет конфликта, нет драмы — Евгения Малкова
Дизайнер, разработчик, нет конфликта, нет драмы — Евгения МалковаCocoaHeads
 
Github Flow. Тестировщики против тестирования
Github Flow. Тестировщики против тестированияGithub Flow. Тестировщики против тестирования
Github Flow. Тестировщики против тестированияSQALab
 
Break rooms TERRA-AQUA-SYLVA (www.bel.brussels)
Break rooms TERRA-AQUA-SYLVA (www.bel.brussels)Break rooms TERRA-AQUA-SYLVA (www.bel.brussels)
Break rooms TERRA-AQUA-SYLVA (www.bel.brussels)Valérie Watillon
 

Andere mochten auch (20)

«Велогосипед», Данил Ильиных
«Велогосипед», Данил Ильиных«Велогосипед», Данил Ильиных
«Велогосипед», Данил Ильиных
 
Article25
Article25Article25
Article25
 
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИСИспользуем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС
 
Партицирование и миграции данных на примере PostgreSQL — Денис Иванов, 2ГИС
Партицирование и миграции данных на примере PostgreSQL — Денис Иванов, 2ГИСПартицирование и миграции данных на примере PostgreSQL — Денис Иванов, 2ГИС
Партицирование и миграции данных на примере PostgreSQL — Денис Иванов, 2ГИС
 
«Открытая веб картография», Илья Таратухин
«Открытая веб картография», Илья Таратухин«Открытая веб картография», Илья Таратухин
«Открытая веб картография», Илья Таратухин
 
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС «Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
 
Автоматизация UI тестирования под Windows и Windows Phone
Автоматизация UI тестирования под Windows и Windows PhoneАвтоматизация UI тестирования под Windows и Windows Phone
Автоматизация UI тестирования под Windows и Windows Phone
 
«Построение Read Model-ей с использованием потоков событий» — Денис Иванов, 2ГИС
«Построение Read Model-ей с использованием потоков событий» — Денис Иванов, 2ГИС«Построение Read Model-ей с использованием потоков событий» — Денис Иванов, 2ГИС
«Построение Read Model-ей с использованием потоков событий» — Денис Иванов, 2ГИС
 
Continuous Delivery, или волшебная кнопка для релизов по запросу — Денис Яков...
Continuous Delivery, или волшебная кнопка для релизов по запросу — Денис Яков...Continuous Delivery, или волшебная кнопка для релизов по запросу — Денис Яков...
Continuous Delivery, или волшебная кнопка для релизов по запросу — Денис Яков...
 
DUMP-2013 Serverside - Разработка развесистого API - Коржнев Сергей
DUMP-2013 Serverside - Разработка развесистого API - Коржнев СергейDUMP-2013 Serverside - Разработка развесистого API - Коржнев Сергей
DUMP-2013 Serverside - Разработка развесистого API - Коржнев Сергей
 
«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС
«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС
«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС
 
Cергей Коржнев, 2ГИС
Cергей Коржнев, 2ГИСCергей Коржнев, 2ГИС
Cергей Коржнев, 2ГИС
 
«Девиации и патологии в отношениях с руководителями и подчинёнными» — Степан ...
«Девиации и патологии в отношениях с руководителями и подчинёнными» — Степан ...«Девиации и патологии в отношениях с руководителями и подчинёнными» — Степан ...
«Девиации и патологии в отношениях с руководителями и подчинёнными» — Степан ...
 
«Badger — инструмент для мониторинга качества продуктов» – Ирина Шрейдер, 2ГИС
«Badger — инструмент для мониторинга качества продуктов» – Ирина Шрейдер, 2ГИС«Badger — инструмент для мониторинга качества продуктов» – Ирина Шрейдер, 2ГИС
«Badger — инструмент для мониторинга качества продуктов» – Ирина Шрейдер, 2ГИС
 
«Реактивные грабли» — Дмитрий Кулижников, 2ГИС
«Реактивные грабли» — Дмитрий Кулижников, 2ГИС«Реактивные грабли» — Дмитрий Кулижников, 2ГИС
«Реактивные грабли» — Дмитрий Кулижников, 2ГИС
 
«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков
«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков
«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков
 
Тимофей Чаптыков «Верстальщик должен быть ленивый»
Тимофей Чаптыков «Верстальщик должен быть ленивый»Тимофей Чаптыков «Верстальщик должен быть ленивый»
Тимофей Чаптыков «Верстальщик должен быть ленивый»
 
Дизайнер, разработчик, нет конфликта, нет драмы — Евгения Малкова
Дизайнер, разработчик, нет конфликта, нет драмы — Евгения МалковаДизайнер, разработчик, нет конфликта, нет драмы — Евгения Малкова
Дизайнер, разработчик, нет конфликта, нет драмы — Евгения Малкова
 
Github Flow. Тестировщики против тестирования
Github Flow. Тестировщики против тестированияGithub Flow. Тестировщики против тестирования
Github Flow. Тестировщики против тестирования
 
Break rooms TERRA-AQUA-SYLVA (www.bel.brussels)
Break rooms TERRA-AQUA-SYLVA (www.bel.brussels)Break rooms TERRA-AQUA-SYLVA (www.bel.brussels)
Break rooms TERRA-AQUA-SYLVA (www.bel.brussels)
 

Ähnlich wie TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС

SPA инструменты
SPA инструментыSPA инструменты
SPA инструментыRoman Dvornov
 
Типичный стек технологий для использования с Node.js
Типичный стек технологий для использования с Node.jsТипичный стек технологий для использования с Node.js
Типичный стек технологий для использования с Node.jsSerge Shirokov
 
XML Native Database на примере SednaXML
XML Native Database на примере SednaXMLXML Native Database на примере SednaXML
XML Native Database на примере SednaXMLSlach
 
Профилирование и оптимизация jQuery–кода
Профилирование и оптимизация jQuery–кодаПрофилирование и оптимизация jQuery–кода
Профилирование и оптимизация jQuery–кодаprivate_face
 
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)Ontico
 
Систематизация экспрешнов в IE
Систематизация экспрешнов в IEСистематизация экспрешнов в IE
Систематизация экспрешнов в IERoman Komarov
 
Domain Specific Languages (for business rules)
Domain Specific Languages (for business rules)Domain Specific Languages (for business rules)
Domain Specific Languages (for business rules)Anton Arhipov
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPITimur Shemsedinov
 
Алексей Горобец - Building Drupal Distributions. Why? When? and How?
Алексей Горобец - Building Drupal Distributions. Why? When? and How?Алексей Горобец - Building Drupal Distributions. Why? When? and How?
Алексей Горобец - Building Drupal Distributions. Why? When? and How?LEDC 2016
 
Применение фреймворка GStreamer в системе видеонаблюдения
Применение фреймворка GStreamer в системе видеонаблюденияПрименение фреймворка GStreamer в системе видеонаблюдения
Применение фреймворка GStreamer в системе видеонаблюденияcorehard_by
 
Как мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальКак мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальBadoo Development
 
Современная разработка сайтов на CMF Drupal.
Современная разработка сайтов на CMF Drupal.Современная разработка сайтов на CMF Drupal.
Современная разработка сайтов на CMF Drupal.phpdevby
 
JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"oelifantiev
 
Rich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend FrameworkRich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend FrameworkGeorgy Turevich
 
Ruby on Rails. Пользовательский интерфейс
Ruby on Rails. Пользовательский интерфейсRuby on Rails. Пользовательский интерфейс
Ruby on Rails. Пользовательский интерфейсDigital-агентство Мэйк
 
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...Andrey Taritsyn
 

Ähnlich wie TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС (20)

SPA инструменты
SPA инструментыSPA инструменты
SPA инструменты
 
Типичный стек технологий для использования с Node.js
Типичный стек технологий для использования с Node.jsТипичный стек технологий для использования с Node.js
Типичный стек технологий для использования с Node.js
 
XML Native Database на примере SednaXML
XML Native Database на примере SednaXMLXML Native Database на примере SednaXML
XML Native Database на примере SednaXML
 
Профилирование и оптимизация jQuery–кода
Профилирование и оптимизация jQuery–кодаПрофилирование и оптимизация jQuery–кода
Профилирование и оптимизация jQuery–кода
 
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
 
Avito / SPA Meetup 2
Avito / SPA Meetup 2Avito / SPA Meetup 2
Avito / SPA Meetup 2
 
Систематизация экспрешнов в IE
Систематизация экспрешнов в IEСистематизация экспрешнов в IE
Систематизация экспрешнов в IE
 
Drupal Vs Other
Drupal Vs OtherDrupal Vs Other
Drupal Vs Other
 
Js fuckworks
Js fuckworksJs fuckworks
Js fuckworks
 
Domain Specific Languages (for business rules)
Domain Specific Languages (for business rules)Domain Specific Languages (for business rules)
Domain Specific Languages (for business rules)
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPI
 
Agile theming with kalatheme & panopoly
Agile theming with kalatheme & panopolyAgile theming with kalatheme & panopoly
Agile theming with kalatheme & panopoly
 
Алексей Горобец - Building Drupal Distributions. Why? When? and How?
Алексей Горобец - Building Drupal Distributions. Why? When? and How?Алексей Горобец - Building Drupal Distributions. Why? When? and How?
Алексей Горобец - Building Drupal Distributions. Why? When? and How?
 
Применение фреймворка GStreamer в системе видеонаблюдения
Применение фреймворка GStreamer в системе видеонаблюденияПрименение фреймворка GStreamer в системе видеонаблюдения
Применение фреймворка GStreamer в системе видеонаблюдения
 
Как мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальКак мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон Довгаль
 
Современная разработка сайтов на CMF Drupal.
Современная разработка сайтов на CMF Drupal.Современная разработка сайтов на CMF Drupal.
Современная разработка сайтов на CMF Drupal.
 
JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"
 
Rich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend FrameworkRich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend Framework
 
Ruby on Rails. Пользовательский интерфейс
Ruby on Rails. Пользовательский интерфейсRuby on Rails. Пользовательский интерфейс
Ruby on Rails. Пользовательский интерфейс
 
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
 

TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС