Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Code Fest - Работает? Стабильно? Эффективно?
Search
Mikhail Davydov
September 23, 2013
Education
200
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Code Fest - Работает? Стабильно? Эффективно?
Mikhail Davydov
September 23, 2013
More Decks by Mikhail Davydov
See All by Mikhail Davydov
Back To Text UI
azproduction
3
330
Promise – это не больно
azproduction
0
210
Components Now!
azproduction
3
180
ШРИ - JavaScript Event Model
azproduction
0
230
ШРИ - Code Style
azproduction
0
150
HTML5 Camp - JavaScript на фронте и в тылу
azproduction
0
330
UWDC - Модули и сборка JavaScript
azproduction
0
250
Шаблонизация
azproduction
0
160
КРиПИ - Node.js – серверный JavaScript
azproduction
0
160
Other Decks in Education
See All in Education
2026年度春学期 統計学 第10回 分布の推測とは - 標本調査,度数分布と確率分布 (2026. 6. 4)
akiraasano
PRO
0
180
FA26 CLU MS Clinical Psychology New Student Orientation
jdbedics
0
130
アラムコSTEAMチャレンジ 実践報告書
codeforeveryone
0
200
生成AI時代のエンジニア育成について考えてみた
akasan
0
210
Visionary Initiative: Materials-Positive Society 「モノの進化をポジティブな社会の原動力に」|Science Tokyo(東京科学大学)
sciencetokyo
PRO
0
970
Gitがない時代 インターネットがない時代の 開発話
sapi_kawahara
0
360
[2026前期火5] 論理学(京都大学文学部 前期 第10回)「論理学の哲学——意味とは何か(Tonkと推論主義)」
yatabe
0
240
Visionary Initiative: Materials-Positive Society — Evolving “Things,” empowering a positive society | Science Tokyo
sciencetokyo
PRO
0
180
[2026前期火5] 論理学(京都大学文学部 前期 第4回)「 ならば(→)の導入と証明ネット」
yatabe
0
530
Course Review - Lecture 13 - Information Visualisation (4019538FNR)
signer
PRO
1
2.7k
AIってなぁに?
kenichiota0711
0
660
Throw Yourself In! - How I've learned English and What I'm Facing
georgeorge
1
220
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Statistics for Hackers
jakevdp
799
230k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Automating Front-end Workflow
addyosmani
1369
210k
A Tale of Four Properties
chriscoyier
163
24k
Practical Orchestrator
shlominoach
191
12k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Site-Speed That Sticks
csswizardry
13
1.4k
Why Our Code Smells
bkeepers
PRO
340
58k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Transcript
Работает? Стабильно? Эффективно? Михаил Давыдов, Яндекс
Error on line 1 column 57841. Ololo is not defined…
Воспроизводится! В норм. браузере!
4 Эта проблема легко решается • Это уже воспроизвелось! • Reformat Code
• SourceMap
5 Reformat Code
6 SourceMap • Сопоставляет код коду • UglifyJS • Chromium browser • CoffeeScript, TypeScript,
JS Статья - http://clck.ru/8bjOI Визуализатор - http://clck.ru/8bjOQ
7 Воспроизводится! Только в IE < 8 L
8 Дебаг IE – это весело! • Любимые ошибки – Unexpected call
to method or property access – Error: 'z' is null or not an object
9 И эта проблема легко решается • Это уже воспроизвелось! • console.log
– не поможет… • F12 – не поможет… • Visual Studio Express – FTW!
10 Visual Studio Express for Web Как дебажить - http://clck.ru/8bjPG
Ошибка нигде не воспроизводится…
12 И проблема решается • Связаться с пользователем • Попросить описать шаги
• Скриншоты • Информация о браузере
Отслеживание ошибок
14 Отслеживаем ошибки • Собираем все данные • Хорошая форма репорта • Отлов
ошибок в фоне
15 Собираем все данные • User Agent • OS • Список все плагинов
16 Хорошая форма репорта • Все данные браузера • Скриншот • Пошаговое воспроизведение
17 Распространённые формы репорта • User Voice • Get Satisfaction • UserEchо
18 Отлов ошибок в фоне • Ловим – window.onerror + jQuery.error
• Интерпретируем – библиотека stacktracejs • Отправляем – Google Analytics – Яндекс.Метрика http://stacktracejs.com/
19 Отлов ошибок в фоне • Raven.js – Клиент для Sentry
– window.onerror = Raven.process; – Open-Source https://github.com/getsentry/raven-js
20 Сервисы для отлова ошибок • Qbaka • Proxino • Errorception
Предотвращение ошибок, как?
22 Как предотвратить • Хороший IDE – Ловит 95% проблем • Статический
анализ – Автоматический! – JSLint – JSHint • Тестирование http://www.jshint.com/ Хороший IDE – http://clck.ru/8bosY
Код долго загружается
24 Как оптимизировать • Вынести максимум в CDN • Найти холодный код
• Найти мертвый код • Сделать ленивую загрузку
25 Вынести максимум в CDN • http://yandex.st/ • http://cdnjs.com/ • Google – http://clck.ru/8bjZK
• Держать запасную библиотеку!
26 Найти холодный и мертвый код • Аналитически – Своим умом
– С помощью IDE • Счетчики для "фичей" – Google Analytics – Яндекс.Метрика • Code Coverage
27 Счетчики для "фичей" • Это дешево – Сервисы аналитики есть
везде • Нужно вешать счетчики • Отчет слишком общий
28 Статистический Code Coverage • СС – не только для тестов
• Пользователь – лучший тестер • Дешево и надежно • Можно управлять покрытием • Мониторится все
29 Статистический Code Coverage https://github.com/azproduction/lmd
30 Косвенная прибыль Code Coverage • Знаем что не интересно • Знаем
горячие фичи
Загружаем лениво
32 Как использовать • Выделяем холодный код • Делим код на модули
• Загружаем по требованию
33 Библиотеки для ленивой загрузки • RequireJS + r.js • LABjs, YepNope,
Headjs • LMD
Деградация проекта. Как не допустить?
35 Деградация происходит из-за • Не соблюдается Code Style • Децентрализация • Отсутствие
документации
36 Способы предотвращения деградации • Единый Code Style • Коммит через Code
Review • Проверка кода c JSHint • Автотесты • Плановые рефакторинги
Что нужно пользователю?
38 Что нужно пользователю • Стабильная работа • Быстрая загрузка • "Прикольные фичи!!11"
39 Как узнать какие фичи нужны/не нужны?
40 Что нужно пользователю • Опросники • Счетчики • Code Coverage • Анализ конкурентов
41 Холодная фича – не нужная фича?
42 Проблемы Холодной фичи • Не знают о ней • Не могут
найти • Не удобная/не привыкли • Не нужна
Оптимизируем затраты
44 На что нужно обратить внимание • Максимум автоматизации – Отлов
ошибок – Хороший IDE – Статический анализ кода с JSHint • Не пишем лишнее – Формы с обсуждением фичей – Взвешиваем каждую фичу – Code Coverage для анализа кода
Михаил Давыдов Яндекс
[email protected]
azproduction Спасибо