Почему инвестиции в инфраструктуру связи важны для коллтрекинга?
Инструменты разные нужны, инструменты разные важны
Transcript of Инструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важны…
Роман Дворнов Avito
CodeFest, март 2015
Работаю в Avito
Делаю SPA
Автор basis.js
Я…
И вообще, за любую движуху, кроме голодовки ;)
Мы – делаем продукт
4
Идеальное приложение
5
Все несколько сложнее…
Инструменты
Привычные инструменты
• среда разработки – редаторы, IDE + плагины
• консольные – командная строка
• браузерные – in-app и плагины
7
Инструментов много разных• Автоматизация (task runner'ы) – grunt, gulp, …
• Оптимизаторы – csso, uglifyjs, svgo, …
• Cтиль кода – jscs, csscomb, …
• Линтеры – jshint, jslint, csslint, …
• …8
Доклады по теме• Автоматизация фронтенда – сегодня и завтра
Роберт Харитонов, rhr.me/pres/automation/
• Front-end Tooling Workflows Addy Osmani, tinyurl.com/front-end-tooling-workflows
• Суперсилы Chrome DevToolsРоман Сальников, tinyurl.com/powerofdevtools
9
В более широком смысле, инструменты – всё, что помогает
нам достигать наших целей
10
Тоже инструменты
• фреймворки, библиотеки
• подходы, алгоритмы
• методологии
• …
11
Выбор
У каждого своя история• Поддерживаемые браузеры (среда исполнения)
• Подходящие технологии, подходы, фреймворки
• Особенности процесса разработки
• Критерии качества, уровень тестирования
• ...
13
Как же выбрать?
14
Типичные ошибки при выборе
• Синтаксис или API
• Тренд, популярность, размер комьюнити
• Чье-то авторитетное мнение
• …
15
16
Грустная история 1
17
популярный, но не эффективный фреймворк
→ работает медленно, много багов
→ перекладываем задачи на бекенд
→ теряем независимость и усложняем решение
= невозможность интересных сценариев
Грустная история 2
18
отсутствие готовых отточенных решений
→ много повторяющегося кода
→ более компактные языки
→ пре-процессоры
= обязательная сборка (медленный workflow)
Грустная история 3 Грустная история 4 Грустная история 5 Грустная история 6
19
Нужно выбирать не по отдельности, а всё вместе
20
Задачи стека инструментов...
• экономить время
• позволять делать сложные интерфейсы
• улучшать качество
• вдохновлять
21
Но не всегда есть все необходимое…
22
Сделай сам
Основная задача – решить проблему, а не создать новую
24
Основные принципы1. Автоматизация во всем
2. Не делаем то, что можно не делать
3. Ускорение технических процессов
4. Отсутствие ожидания (real time)
5. Наглядность
6. Быстрая навигация
7. Анализируем все, что анализируется25
1. Автоматизация во всем Избавляемся от рутины – используем скрипты, сборщики, task runner'ы, кодогенерацию, ...
26
2. Не делаем то, что можно не делать Отсутствие сборки при разработке, подсказки, короткое описание задач, придумывание имен…
27
3. Ускорение тех. процессов Предобработка, cache, параллельные вычисления,
инкрементальные обновления...
28
DEMO
29
Что это было?Выполнение рутиной работыПроцесс автоматический
Не делаем, то что можно не делатьАнализ определяет, что нужно для сборки
Ускорение тех. процессов Все работает без сборки, используем кеш
30
Подробнее в докладе
SPA инструменты www.youtube.com/watch?v=IUtbbN9aevU
31
4. Отсутствие ожидания Любое действие или изменение должно приводить
к моментальному видимому результату
32
5. Наглядность Отладочная информация, схемы,
специальные представления и интерфейсы…
33
6. Быстрая навигация Контекстная информация, отсутствие поиска, быстрый переход к описанию, файлу и т.д.
34
DEMO
35
Что это было?Отсутствие ожиданияВносимые изменения видны сразу
НаглядностьСхематичное представление, специальные интерфейсы
Быстрая навигацияМгновенный переход к нужному описанию
36
Это вдохновляет!
37
Вот почему• Быстро и качественно делаете сложные штуки
• Понимаете как работает, хотя еще не видели код
• Результат виден без ожиданий
• Ничего не тормозит превращение вашей идеив конечный результат
38
7. Анализируем все, что можно Чем его больше анализа и тем лучше …
39
DEMO
40
Подход
Нельзя так просто взять и запилить «хороший» инструмент для «плохого» решения
Используя «правильные» подходы, можно улучшить даже
уже существующие вещи
43
Yatra Моя попытка сделать удобный test runner
для client side
44
github.com/basisjs/yatra
DEMO
45
Те же принципыНе делаем, то что можно не делатьНе нужно модифицировать код
Отсутствие ожиданияТесты перезапускаются по мере изменения кода
Быстрая навигацияПереход к коду теста, debugger на нужной строке
46
Wallaby.js Использует похожие принципы, но нацелен
на интеграцию в редакторы и IDE
47
wallabyjs.com
Эпилог
Инструменты – всё, что позволяет достигать целей
49
Если нет готового –не бойтесь создавать своё
50
– У нас нет на это времени…
– Инструменты – это инвестиция в собственную эффективность
Любой процесс можно улучшить, используя правильные подходы
52
Вместо боли разработка может приносить
удовольствие
53
Задумайтесь об этом
54