SlideShare a Scribd company logo
1 of 62
Download to read offline
Ошибки, которые мы
любим
Алексей Андросов
Старший разработчик интерфейсов
FrontTalks, Екатеринюург, 5 июля 2013 года
Обо мне
doochik@ya.ru @doochik
● По образованию – специалист по защите
информации
● 6 лет в Яндексе, 2 года ведущий разработчик
фронтенда в Я.Почте
● Люблю копаться в браузерах и внедрять новые фичи из HTML5
● Можете спрашивать про JS, CSS и frontend в целом
02
Баги – это нормально
Баги – это нормально
● Браузер – неконтроллируемая среда для исполнения вашего кода.
04
Баги – это нормально
● Браузер – неконтроллируемая среда для исполнения вашего кода.
● Дефграгменация рынка браузеров.
05
Баги – это нормально
● Браузер – неконтроллируемая среда для исполнения вашего кода.
● Дефграгменация рынка браузеров.
● Человеку свойственно ошибаться.
Если вы меряете эффективность своей работы по количеству
багов, поздравляю, у вас серьёзные проблемы.
06
Первое правило:
вы — дурак,
а все вокруг —
Д'Артаньяны
Второе правило:
ошибка не в вашем
коде, а в коде вашей
команды
Релизный цикл
[Object]
[Object]
[Object]
[Object]09
Релизный цикл
[Object]
[Object]
[Object]
[Object]
[Object]10
Релизный цикл + мониторинг
[Object]
[Object]
[Object]
[Object]
[Object]11
Зачем мониторинг?
● Сломаться может в любой момент
12
Зачем мониторинг?
● Сломаться может в любой момент
● Никто не гарантирует, что релиз заработает у реальных
пользователей
13
Зачем мониторинг?
● Сломаться может в любой момент
● Никто не гарантирует, что релиз заработает у реальных
пользователей
● Превысили допустимый предел ошибок – послали уведомление
14
Зачем мониторинг?
● Сломаться может в любой момент
● Никто не гарантирует, что релиз заработает у реальных
пользователей
● Превысили допустимый предел ошибок – послали уведомление
● Можно строить статистику
15
На что смотрим
● Доступность сервиса (код HTTP-ответа = 200)
16
На что смотрим
● Доступность сервиса (код HTTP-ответа = 200)
● Скорость отдачи страниц
17
На что смотрим
● Доступность сервиса (код HTTP-ответа = 200)
● Скорость отдачи страниц
● Количество совершенных действий
18
На что смотрим
● Доступность сервиса (код HTTP-ответа = 200)
● Скорость отдачи страниц
● Количество совершенных действий
● Количество писем в службу поддержки
● и т.п.
19
А причем здесь
фронтенд?
Что можно отследить в
браузере
● onload
● ondomcontentload
● Инициализация JS-компонентов
● JS-ошибки
● и т.п.
21
А еще можно считать...
● скорость загрузки
● скорость инициализации
● время ответа бекенда
● и т.п.
22
Почему именно в браузере
● Эти события нельзя отследить по-другому
23
Почему именно в браузере
● Эти события нельзя отследить по-другому
● Если сервер ответил на HTTP-запрос, это не значит, что браузер
его принял
24
Пример (запуск сервиса)
$(projectNS.init);
25
Пример (запуск сервиса)
if (window['jQuery']) {
$(projectNS.init);
} else {
log({type: 'fatal', error: 'no-jquery'});
}
26
Пример (запуск сервиса)
if (window['jQuery']) {
if (window['projectNS']) {
$(projectNS.init);
} else {
log({type: 'fatal', error: 'no-project-js'});
}
} else {
log({type: 'fatal', error: 'no-jquery'});
}
27
Одна функция на все времена
function log(data) {
var props = [];
for (var key in data) {
var value = encodeURIComponent(data[key]);
var key = encodeURIComponent(key);
props.push(key + '=' + value);
}
new Image().src = '/log?' + props.join('&');
}
28
window.onerror
● Обработчик всех JS-ошибок в браузере
● Есть errorMessage, scriptUrl, line
● Нет стека вызовов
29
window.onerror
window.onerror = function(msg, url, line) {
log({
type: 'jserror',
msg: msg,
url: url,
line: line
})
})
30
Но...
...первые логи вам выдадут вот такую статистику
95% msg=Script error.&url=&line=0
0.2% ...
0.1% ...
01.
02.
03.
31
Главная проблема
window.onerror
If the location URL does not have a same origin as the origin, then set
message to "Script error.", set location to the empty string, and set line
to 0.
http://dev.w3.org/html5/spec/webappapis.html#report-the-error
“
32
Главная проблема
window.onerror
Решается только в Firefox 13+ с помощью
<script src="…" crossorigin="anonymous" ></script>.
А сервер должен ответить CORS-заголовком
Access-Control-Allow-Origin: *
Атрибут есть в черновике HTML 5.1. Ждем…
33
Главная проблема
crossorigin="anonymous"
Если Chrome, Firefox или Opera не получит правильный заголовок
Access-Control-Allow-Origin , то заблокирует загрузку
скрипта.
34
try-catch?
Все обернуть в try-catch сложно, потому что JS – асинхронный
язык.
Также стоит учитывать, что try-catch влияет на
производительность.
35
Другие способы
исполнения JS
Общий принцип
1. Грузим JS как текст (XHR, localStorage)
2. Исполняем в браузере в same-origin policy
38
createElement('script')
onerror
msg
onerror
url
onerror
line
catch
msg
catch
url
catch
line
Chrome 26 + - - + - *
Fx 22 + - - + - *
IE 9 + - - + - -
IE 10 + - - + - *
Opera 12.15 + - - + - *
* – строка без урла почти бесполезна
39
eval / new Function / setTimeout
onerror
msg
onerror
url
onerror
line
catch
msg
catch
url
catch
line
Chrome 26 + - * + - *
Fx 22 + - - + - -
IE 9 + - - + - -
IE 10 + - * + - *
Opera 12.15 + - * + - *
* – строка без урла почти бесполезна
40
<script src="data:..."
onerror
msg
onerror
url
onerror
line
catch
msg
catch
url
catch
line
Chrome 26 - - - + * **
Fx 22 - * - + * -
Opera 12.15 - - - + * **
<script src="data:text/javascript,...">
* – урлом является весь src (исходный текст)
** – код вытягивается в одну строку
41
<a href="javascript:..."
onerror
msg
onerror
url
onerror
line
catch
msg
catch
url
catch
line
Chrome 26 + - - + - **
Fx 22 + * - + * -
IE 9 + - - + - -
IE 10 + - ** + - **
Opera 12.15 - - - + * **
* – урлом является весь src (исходный текст)
** – код вытягивается в одну строку
42
Blob
var blob = new Blob([code],
{type: 'text/javascript'});
var url = URL.createObjectURL(blob);
var script = document.createElement('script');
script.src = url;
URL.revokeObjectURL(url);
document.body.appendChild(script);
43
Blob
onerror
msg
onerror
url
onerror
line
catch
msg
catch
url
catch
line
Chrome 26 + * + + * +
Fx 22 + * + + * +
IE 10 + * + + * +
* – урлом является id Blob'а. Если исполняется несколько кусков
кода, то можно сделать простой маппинг ресурсов
44
Что еще надо знать
про window.onerror?
Избавляемся от вечного
"error at line 1"
После минификации весь код вытягивается в одну строку, из-за
этого неудобно искать ошибки с символе 30768.
Поможет UglifyJS
$ uglifyjs page.js -b beautify=false,max-line-len=100
46
Вместо msg может быть
событие
...о незагрузке скрипта
if (msg && typeof msg != 'string') {
if (msg.type && msg.target) {
try {
url = msg.target.src;
} catch(e) {}
msg = 'Error loading script';
}
}
47
Фильтруем не наши ошибки
if (url && (
/(miscellaneous|extension)_bindings/.test(url) ||
/^chrome:/.test(url) ||
/^file:/.test(url)
) {
return;
}
48
Обрабатываем JSONP
if (url && /(&|?)callback=/.test(url)) {
errorType = 'noJSONPResponse';
}
49
Что ещё можно
логировать?
Неожиданное поведение
if (data && data.status === 'OK') {
// все хорошо
} else {
log({
'type': 'something_went_wrong',
'some_usefull_data': data
)}
}
51
Важный код в try-catch
try {
// все хорошо
} сatch (e) {
log({
'type': 'exception',
'msg': e.message || e.toString(),
'stack': e.stacktrace || e.stack
)}
}
52
Транспорты и долговисящие
соединения
Их можно отлаживать с помощью скрытой консоли, доступной по
хоткею.
● Всегда можно посмотреть все события
● Можно отправлять весь лог на анализ
53
Логи для ленивых и богатых
● Errorception (платный)
● ExceptionHub (платный)
● JSLogger (платный)
● Muscula (пока бесплатный)
● Proxino (платный)
● Qbaka (платный)
54
Подводим итоги
Логируем поведение
пользователя
● Всегда знаете как релиз работает у настоящих пользователей.
56
Логируем поведение
пользователя
● Всегда знаете как релиз работает у настоящих пользователей.
● Всегда знаете что не работает у пользователя.
57
Логируем поведение
пользователя
● Всегда знаете как релиз работает у настоящих пользователей.
● Всегда знаете что не работает у пользователя.
● Проще анализировать проблему, проще службе поддержки, проще
исправить.
58
Логируем поведение
пользователя
● Всегда знаете как релиз работает у настоящих пользователей.
● Всегда знаете что не работает у пользователя.
● Проще анализировать проблему, проще службе поддержки, проще
исправить.
● Резко возрос рейт ошибок? Всем разослали смс-ку и начинаем
чинить.
59
И помните
1. Если в каждом релизе количество ошибок вырастает на 1%, то
через 10 релизов будет +11%
60
И помните
1. Если в каждом релизе количество ошибок вырастает на 1%, то
через 10 релизов будет +11%.
2. Логов много не бывает!
61
Алексей Андросов
Старший разработчик интерфейсов
doochik@ya.ru
@doochik
github.com/doochik

More Related Content

What's hot

TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИСTARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
2ГИС Технологии
 
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
2ГИС Технологии
 
Александр Тармолов "БЭМ и JavaScript: Тестирование"
Александр Тармолов "БЭМ и JavaScript: Тестирование"Александр Тармолов "БЭМ и JavaScript: Тестирование"
Александр Тармолов "БЭМ и JavaScript: Тестирование"
Yandex
 

What's hot (20)

TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИСTARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
 
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
 
Как выглядит современный фронтенд
Как выглядит современный фронтендКак выглядит современный фронтенд
Как выглядит современный фронтенд
 
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
 
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
 
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
 
Модульность и управляемая многопоточность встраиваемых С++ приложений - трудн...
Модульность и управляемая многопоточность встраиваемых С++ приложений - трудн...Модульность и управляемая многопоточность встраиваемых С++ приложений - трудн...
Модульность и управляемая многопоточность встраиваемых С++ приложений - трудн...
 
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
 
Александр Тармолов "БЭМ и JavaScript: Тестирование"
Александр Тармолов "БЭМ и JavaScript: Тестирование"Александр Тармолов "БЭМ и JavaScript: Тестирование"
Александр Тармолов "БЭМ и JavaScript: Тестирование"
 
Суперсилы Chrome developer tools
Суперсилы Chrome developer toolsСуперсилы Chrome developer tools
Суперсилы Chrome developer tools
 
Windows Azure and node js
Windows Azure and node jsWindows Azure and node js
Windows Azure and node js
 
Контроль качества верстки или как начать делать Makeup
Контроль качества верстки или как начать делать MakeupКонтроль качества верстки или как начать делать Makeup
Контроль качества верстки или как начать делать Makeup
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй это
 
JavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработкиJavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработки
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
 
#7 "Многообещающий JavaScript – Promises" Денис Речкунов
#7 "Многообещающий JavaScript – Promises" Денис Речкунов#7 "Многообещающий JavaScript – Promises" Денис Речкунов
#7 "Многообещающий JavaScript – Promises" Денис Речкунов
 
#2 "Распространённые ошибки в JavaScript" Денис Речкунов
#2 "Распространённые ошибки в JavaScript" Денис Речкунов#2 "Распространённые ошибки в JavaScript" Денис Речкунов
#2 "Распространённые ошибки в JavaScript" Денис Речкунов
 
Svyatoslav Login "360 View of XSS"
Svyatoslav Login "360 View of XSS"Svyatoslav Login "360 View of XSS"
Svyatoslav Login "360 View of XSS"
 
JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.
 
Tdd webpack + testem + mocha + chai
Tdd webpack + testem + mocha + chaiTdd webpack + testem + mocha + chai
Tdd webpack + testem + mocha + chai
 

Similar to FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»

Типичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriverТипичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriver
Igor Khrol
 
20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov
Computer Science Club
 
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Andrew Mayorov
 
Mihail davidov js-ajax
Mihail davidov js-ajaxMihail davidov js-ajax
Mihail davidov js-ajax
Yandex
 
Михаил Давыдов — Транспорт, Ajax
Михаил Давыдов — Транспорт, AjaxМихаил Давыдов — Транспорт, Ajax
Михаил Давыдов — Транспорт, Ajax
Yandex
 

Similar to FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим» (20)

Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
 
Семь тысяч Rps, один go
Семь тысяч Rps, один goСемь тысяч Rps, один go
Семь тысяч Rps, один go
 
Сергей Константинов — Что интересного готовит нам W3C
Сергей Константинов — Что интересного готовит нам W3CСергей Константинов — Что интересного готовит нам W3C
Сергей Константинов — Что интересного готовит нам W3C
 
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
 
практические советы по улучшению качества кода
практические советы по улучшению качества кодапрактические советы по улучшению качества кода
практические советы по улучшению качества кода
 
Jbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterJbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot Starter
 
Статический анализ исходного кода на примере WinMerge
Статический анализ исходного кода на примере WinMergeСтатический анализ исходного кода на примере WinMerge
Статический анализ исходного кода на примере WinMerge
 
Типичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriverТипичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriver
 
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ruБаба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
 
20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov
 
Баба Яга против!
Баба Яга против!Баба Яга против!
Баба Яга против!
 
По колено в Си++ г... коде
По колено в Си++ г... кодеПо колено в Си++ г... коде
По колено в Си++ г... коде
 
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
Архитектура кода нового 2ГИС Web API или куда мы дели MVCАрхитектура кода нового 2ГИС Web API или куда мы дели MVC
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
 
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
 
Скриншоты как сервис
Скриншоты как сервисСкриншоты как сервис
Скриншоты как сервис
 
Mihail davidov js-ajax
Mihail davidov js-ajaxMihail davidov js-ajax
Mihail davidov js-ajax
 
PVS-Studio vs Chromium
PVS-Studio vs ChromiumPVS-Studio vs Chromium
PVS-Studio vs Chromium
 
Михаил Давыдов — Транспорт, Ajax
Михаил Давыдов — Транспорт, AjaxМихаил Давыдов — Транспорт, Ajax
Михаил Давыдов — Транспорт, Ajax
 
Domain Specific Languages (for business rules)
Domain Specific Languages (for business rules)Domain Specific Languages (for business rules)
Domain Specific Languages (for business rules)
 
Groovy presentation on Exception #7 conference
Groovy presentation on Exception #7 conferenceGroovy presentation on Exception #7 conference
Groovy presentation on Exception #7 conference
 

More from Yandex

Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Yandex
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Yandex
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Yandex
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Yandex
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Yandex
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Yandex
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Yandex
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Yandex
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Yandex
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Yandex
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Yandex
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Yandex
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Yandex
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Yandex
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Yandex
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Yandex
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Yandex
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Yandex
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Yandex
 

More from Yandex (20)

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of Tanks
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
 

FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»