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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
320
Promise – это не больно
azproduction
0
210
Components Now!
azproduction
3
170
ШРИ - JavaScript Event Model
azproduction
0
220
ШРИ - Code Style
azproduction
0
150
HTML5 Camp - JavaScript на фронте и в тылу
azproduction
0
330
UWDC - Модули и сборка JavaScript
azproduction
0
240
Шаблонизация
azproduction
0
150
КРиПИ - Node.js – серверный JavaScript
azproduction
0
160
Other Decks in Education
See All in Education
プログラミング言語において文字列を複数行にわたって だらだらと記載するアレ
sapi_kawahara
0
170
生成AI時代のエンジニア育成について考えてみた
akasan
0
160
AWS Certified Generative AI Developer - Professional Beta 不合格体験記
amarelo_n24
1
390
2026年度春学期 統計学 第9回 確からしさを記述する ー 確率 (2026. 5. 28)
akiraasano
PRO
0
110
SL AMIGOS 教育格差と私たちの取り組み - スリランカの支援学校への支援プロジェクト:リシンドゥ リオ 氏 (別府溝部学園短期大学 ビジネス観光コース 留学生):2720 Japan O.K. ロータリーEクラブ2026年4月6日卓話
2720japanoke
0
630
2026年度春学期 統計学 第7回 データの関係を知る(2)ー 回帰と決定係数 (2026. 5. 21)
akiraasano
PRO
0
160
参加制約理論
roadofhope
0
120
Info Session MSc Computer Science & MSc Applied Informatics
signer
PRO
0
290
「機械学習と因果推論」入門① 因果効果とは
masakat0
0
1.9k
면접관 눈에 띄는 데이터 분석 포트폴리오 만드는 법 | 2026년 5월 세미나
datarian
0
840
生成AI時代の情報発信
molmolken
0
140
Dashboards - Lecture 11 - Information Visualisation (4019538FNR)
signer
PRO
1
2.7k
Featured
See All Featured
Navigating Weather and Climate Data
rabernat
0
240
Become a Pro
speakerdeck
PRO
31
6k
Bash Introduction
62gerente
615
220k
Optimizing for Happiness
mojombo
378
71k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
240
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
620
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
200
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
170
Claude Code のすすめ
schroneko
67
230k
Evolving SEO for Evolving Search Engines
ryanjones
0
230
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 Спасибо