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
210
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
160
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
25-26 CBT Library top items
cbtlibrary
0
140
「答えを出す」より「わかる」をつくる
kzkmaeda
1
280
生成AI時代のエンジニア育成について考えてみた
akasan
0
230
アラムコSTEAMチャレンジ 実践報告書
codeforeveryone
0
220
1人 × AI、1か月でここまで作れる ー 数年前の外注換算3.8〜7.4億円・241〜379人月分の作業を、AI費用 約10万円・31日で
frievea
0
440
オンラインコミュニティ TRY部 体験マニュアル
ytapples613
0
350
[2026前期火5] 論理学(京都大学文学部 前期 第9回)「正規化の停止性——ヒドラゲームによる証明」
yatabe
0
260
私たちはなんでテストするんだっけ? Ver.東北IT物産展2026 in 会津若松
camel_404
3
180
AIがコードを書く時代に、何を教えるのか / What Should We Teach in the Age of AI-Generated Code?
ichiroc
1
530
Examen de Selectividad. Geografía junio 2026 (Convocatoria Ordinaria). UCLM
juanmartin2026
1
5.8k
[2026前期火5] 論理学(京都大学文学部 前期 第8回)「正規化定理の証明」
yatabe
0
320
エビデンスベースト英語教育入門:エビデンスは科学的知見(だけ)ではない,制度だ!
terasawat
0
190
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Code Review Best Practice
trishagee
74
20k
Speed Design
sergeychernyshev
33
2.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Building an army of robots
kneath
306
46k
Everyday Curiosity
cassininazir
0
300
Evolving SEO for Evolving Search Engines
ryanjones
0
270
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
680
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
290
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Rails Girls Zürich Keynote
gr2m
96
14k
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 Спасибо