SlideShare a Scribd company logo
1 of 78
Download to read offline
Как мы заставили
API Яндекс.Карт
работать быстрее

Степанова Марина
Разработчик интерфейсов

Я.Субботник, Санкт-Петербург, 1 декабря 2012 года
Что такое API Яндекс.Карт?




2
Что такое API Яндекс.Карт?




3
Что такое API Яндекс.Карт?




4
Что такое API Яндекс.Карт?




5
Слишком много вариантов
    использования API – что
    измерять и ускорять?




6
Опираемся на популярные кейсы



       Создание карты        Схема проезда




     1000 простых меток   1000 меток с текстом

7
Опираемся на популярные кейсы



       5000 меток через      Линия на 10 000 точек
        кластеризатор




                                      …
    1000 линий по 10 точек

8
Как оцениваем?



    – Смотрим на свою скорость
    – Сравниваем с конкурентами




9
Инструменты




10
Инструменты для измерения скорости
     веб-страницы


      Множество встроенных инструментов в
     браузерах (Firebug, Speed Tracer и другие)
                         +
             Внутренние инструменты



11
Интерфейс запуска тестов




12
Профилирование конкретного теста




13
Инструмент «Шуттилка»
     Внутренний инструмент Яндекса
     Принцип работы – отслеживание
     визуальных изменений на странице




14
Инструмент «Шуттилка»



       Начало отрисовки   Заливка фоном
           1060мс            1170мс




         Первый тайл      Последний тайл
           1600мс             1660мс
15
Инструмент «Шуттилка»




16
Этапы жизни приложения

                Загрузка



           Создание окружения



             Взаимодействие

17
Этапы жизни приложения

                Загрузка	
  



           Создание окружения



             Взаимодействие

18
Проблемы API 1.1


     −  Большой объем загружаемых данных
        из-за монолитного ядра


      Javascript ядро + CSS + Images ≈ 220 Kb
                          *
                                                	

                                                	

                                                	

19
                             * gzip + obfuscation
Проблемы API 1.1


     −  Большой объем загружаемых данных
        из-за монолитного ядра
     −  Большое количество сетевых запросов
                        	





20
21
21 служебный запрос из 34




22
Решение проблем в API 2.0


     −  Большой объем загружаемых данных
        из-за монолитного ядра



                 Модульность



23
Модульность

     −  Разбиваем код на логические части
     −  Позволяем подключить только то, что нужно
                          	





24
Модульная система



                   js:A   js:B


                                 js:E


                   js:C   js:D




25
Модульная система



                   js:A   js:B   css:A


                                 js:E


                   js:C   js:D   css:B




26
Модульная система



                   js:A   js:B   css:A


                                 js:E


                   js:C   js:D   css:B




27
Модульная система



                   js:A    js:B    css:A


                                   js:E


                   js:C    js:D    css:B



                   Модулей > 700
28
Модульная система


        ? ??
                   js:A    js:B    css:A


                                   js:E


                   js:C    js:D    css:B



                   Модулей > 700
29
Модульная система

                     package:A
                   js:A     js:B   css:A


                                   js:E
                     package:B
                   js:C     js:D   css:B



                   Модулей > 700
30
Модульная система
                     package:C
                     package:A
                   js:A     js:B   css:A


                                   js:E
                     package:B
                   js:C     js:D   css:B



                   Модулей > 700
31
Решение проблем в API 2.0


     −  Большой объем загружаемых данных
        из-за монолитного ядра
     −  Большое количество сетевых запросов

                 Объединение
                   запросов

32
Объединение запросов


     −  Объединение загрузки JavaScript
     −  CSS пакуем в JavaScript
     −  Изображения пакуем в CSS, используя
        dataUri




33
Порядок загрузки


                       http://api-maps.yandex.ru/2.0




      Имена и зависимости                                     Код



                                                       js:A    js:B   css:A


                                                                      js:E


                                                       js:C    js:D   css:B


34
Порядок загрузки

            api-maps.yandex.ru/2.0/?lang=ru-RU
                                                 http://api-maps.yandex.ru/2.0




35
Порядок загрузки

            api-maps.yandex.ru/2.0/?lang=ru-RU
                                                 http://api-maps.yandex.ru/2.0




            Загрузчик +




36
Порядок загрузки
            2.0/?lang=ru-RU&load=package.A

              /combine.xml?modules=...       http://api-maps.yandex.ru/2.0




37
Порядок загрузки
            2.0/?lang=ru-RU&load=package.A

              /combine.xml?modules=...       http://api-maps.yandex.ru/2.0




38
Результат


     −  Загружаем только то, что нужно


                  Usecase             Объем	
  кода	
  


            Отобразить	
  карту	
          96Kb


             Все	
  возможности	
         295Kb


39
Результат


     −  Загружаем только то, что нужно
     −  За минимальное количество запросов




40
Результат


     −  Загружаем только то, что нужно
     −  За минимальное количество запросов




             5 служебных запросов из 22


41
Этапы жизни приложения

                Загрузка



           Создание окружения



             Взаимодействие

42
Пара историй
     про создание окружения




43
проблеме организации данных и
     алгоритмов на примере менеджера
     событий API 2.0




44
Менеджер событий API 1.1
     Организация данных
     [observer0, observer1, observer2, ...]




     Использование

     var observer = Events.observe(obj, 'click', cb, ctx);
     Events.notify(obj, 'click');
     observer.cleanup();




45
Менеджер событий API 1.1


     Недостатки
     −  Неудобный синтаксис
     −  Медленное удаление слушателей




46
Менеджер событий API 2.0
     Организация данных




     Использование

     obj.events
          .add('click', callback, ctx)
          .fire('click')
          .remove('click', callback, ctx);



47
Менеджер событий API 2.0

       Добавление             Удаление




                    API 1.1              API 1.1




48
Эгей, значит будем использовать
     списки!




49
50
Слишком медленно добавляются
     слушатели в список L

     −  Генерация строковых ID ─ дорого
     −  Настройка связей между элементами
        двусвязного списка ─ дорого


        Мы хотели оптимизировать удаление,
            а это оказалось не критично

51
Возвращаемся к массивам
     Организация данных
     [callback0, context0, callback1, context1,...]




     Сохраняем обработчики и контексты исполнения в
     общем плоском массиве




52
Массивы быстрее на добавление и
     удаление, если слушателей < 1000




53
Получили очень хорошие
     результаты
     −  Добавление слушателей ускорилось в десятки
        раз
     −  Создание геообъектов ускорилось в 2 раза




54
Делаем выводы


     −  Проверяем эффективность алгоритмов
        в реальных условиях
     −  Избегаем преждевременных
        оптимизаций




55
Делаем выводы


     −  Проверяем эффективность алгоритмов
        в реальных условиях
     −  Избегаем преждевременных
        оптимизаций




56
взаимодействии с DOM на
     примере util.nodeSize




57
util.nodeSize

     Предназначен для определения оптимальных
     размеров DOM элементов с содержимым




58
util.nodeSize



     DOM-элемент      util.nodeSize

                                      Размеры
      Параметры       computeSize()




59
util.nodeSize

     Вызов util.nodeSize влечет за собой reflow



     Reflow – процесс рекурсивного обхода ветви
     дерева DOM, вычисляющий геометрию
     элементов и их положение относительно
     родителя.



60
Speed Tracer (by Google)
                                  Диаграмма
                                медлительности




61
Добавление 1000 меток с содержимым




62
Используем
         requestAnimationFrame API
     для оптимизации количества reflow




63
util.nodeSize стал асинхронным

        callback
                                   Размеры
     DOM-элемент   util.nodeSize



      Параметры    computeSize()




64
Действия с DOM накапливаются и
     выполняются разом




65
Делаем выводы



     Используем возможности браузеров для
     оптимизации работы с DOM




66
Этапы жизни приложения

                Загрузка



           Создание окружения



             Взаимодействие

67
Основные проблемы


     −  Блокировки браузера из-за
        продолжительных действий
     −  Большое количество DOM-элементов




68
Как решаем проблемы блокировок

     Способ                Пример из API


     Чанкинг – выполняем   Добавление на карту меток
     операции пачками
     через таймаут


     Фильтрация потока     Обрабатываем не все
     событий               mousemove



69
Диаграммы синхронного и
     асинхронного добавления меток

     Синхронное




     Асинхронное




70
Как решаем проблемы большого
     количества DOM-элементов
     Способ            Пример применения в API


     Уменьшить число   Технология хотспотов, canvas
     элементов




71
Контейнеры карты




72
Принцип работы canvas и
     хотспотов
        Контейнер
         событий,
       реализующий
     интерактивность с
     помощью активных
         областей        event pane

     Контейнер графики

                         graphics pane


73
Как решаем проблемы большого
     количества DOM-элементов
     Способ            Пример применения в API


     Уменьшить число   Технология хотспотов, canvas
     элементов



     Оптимизировать    Используем css transform и css
     анимацию          transition где это возможно



74
Поддержка технологий в браузерах
     Браузер/
                          Позиционирование    Анимация
     платформа

     Safari, iOS, Bada,                      transform3d +
                             transform3d
     Chrome                                     transition

                                             transform3d +
     Firefox                   top/left
                                                transition

                                             transform2d +
     Opera, Android          transform2d
                                                transition

     IE9                     transform2d      Пошаговая

     IE6-8                     top/left       Пошаговая
75
Итоговые рекомендации

     −  Избегайте преждевременных
        оптимизаций
     −  Регулярно отслеживайте показатели
        скорости работы
     −  Уделяйте внимание конкретным
        случаям
     −  Используйте возможности современных
        браузеров
76
Полезные ссылки API


      api.yandex.ru/maps
      ymapsapi.ya.ru
      facebook.com/ymapsapi




77
Марина Степанова
Разработчик интерфейсов



@ya_mstepanova



mstepanova@yandex-team.ru
mari-na-bzzz@yandex.ru

More Related Content

Similar to Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"

Система мониторинга производительности своими руками (QA Fest 2016)
Система мониторинга производительности своими руками (QA Fest 2016)Система мониторинга производительности своими руками (QA Fest 2016)
Система мониторинга производительности своими руками (QA Fest 2016)Alexander Nedeliaev
 
QA Fes 2016. Александр Неделяев. Система мониторинга производительности своим...
QA Fes 2016. Александр Неделяев. Система мониторинга производительности своим...QA Fes 2016. Александр Неделяев. Система мониторинга производительности своим...
QA Fes 2016. Александр Неделяев. Система мониторинга производительности своим...QAFest
 
Кросс-доменная автоматизация (DC-WAN- Campus) - как собрать единую систему, и...
Кросс-доменная автоматизация (DC-WAN- Campus) - как собрать единую систему, и...Кросс-доменная автоматизация (DC-WAN- Campus) - как собрать единую систему, и...
Кросс-доменная автоматизация (DC-WAN- Campus) - как собрать единую систему, и...Cisco Russia
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияYandex
 
Приложения для соцсетей. Универсальные приложения на БЭМ
Приложения для соцсетей. Универсальные приложения на БЭМПриложения для соцсетей. Универсальные приложения на БЭМ
Приложения для соцсетей. Универсальные приложения на БЭМAleksandr Boichenko
 
Moscow js 26 webpack
Moscow js 26   webpackMoscow js 26   webpack
Moscow js 26 webpacklgordey
 
MoscowJS 26 webpack presentation
MoscowJS 26 webpack presentationMoscowJS 26 webpack presentation
MoscowJS 26 webpack presentationlgordey
 
мониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBAмониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBASlach
 
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDKПрограммируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDKCisco Russia
 
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаMikhail Chinkov
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Uptime Community
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Uptime community
 
ObjectManager, или как работать с большим количеством объектов на карте, Мари...
ObjectManager, или как работать с большим количеством объектов на карте, Мари...ObjectManager, или как работать с большим количеством объектов на карте, Мари...
ObjectManager, или как работать с большим количеством объектов на карте, Мари...Ontico
 
Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Artur Baranok
 
Высокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows AzureВысокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows AzureAlexander Feschenko
 
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...UNETA
 
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...CodeFest
 
Коктейль Skydive или как мы мы делали 2ГИС-Онлайн
Коктейль Skydive или как мы мы делали 2ГИС-ОнлайнКоктейль Skydive или как мы мы делали 2ГИС-Онлайн
Коктейль Skydive или как мы мы делали 2ГИС-ОнлайнKonstantin Likhter
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Ontico
 

Similar to Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее" (20)

Система мониторинга производительности своими руками (QA Fest 2016)
Система мониторинга производительности своими руками (QA Fest 2016)Система мониторинга производительности своими руками (QA Fest 2016)
Система мониторинга производительности своими руками (QA Fest 2016)
 
QA Fes 2016. Александр Неделяев. Система мониторинга производительности своим...
QA Fes 2016. Александр Неделяев. Система мониторинга производительности своим...QA Fes 2016. Александр Неделяев. Система мониторинга производительности своим...
QA Fes 2016. Александр Неделяев. Система мониторинга производительности своим...
 
Кросс-доменная автоматизация (DC-WAN- Campus) - как собрать единую систему, и...
Кросс-доменная автоматизация (DC-WAN- Campus) - как собрать единую систему, и...Кросс-доменная автоматизация (DC-WAN- Campus) - как собрать единую систему, и...
Кросс-доменная автоматизация (DC-WAN- Campus) - как собрать единую систему, и...
 
Rest API
Rest APIRest API
Rest API
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
 
Приложения для соцсетей. Универсальные приложения на БЭМ
Приложения для соцсетей. Универсальные приложения на БЭМПриложения для соцсетей. Универсальные приложения на БЭМ
Приложения для соцсетей. Универсальные приложения на БЭМ
 
Moscow js 26 webpack
Moscow js 26   webpackMoscow js 26   webpack
Moscow js 26 webpack
 
MoscowJS 26 webpack presentation
MoscowJS 26 webpack presentationMoscowJS 26 webpack presentation
MoscowJS 26 webpack presentation
 
мониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBAмониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBA
 
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDKПрограммируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
 
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчика
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
 
ObjectManager, или как работать с большим количеством объектов на карте, Мари...
ObjectManager, или как работать с большим количеством объектов на карте, Мари...ObjectManager, или как работать с большим количеством объектов на карте, Мари...
ObjectManager, или как работать с большим количеством объектов на карте, Мари...
 
Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...
 
Высокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows AzureВысокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows Azure
 
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
 
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
 
Коктейль Skydive или как мы мы делали 2ГИС-Онлайн
Коктейль Skydive или как мы мы делали 2ГИС-ОнлайнКоктейль Skydive или как мы мы делали 2ГИС-Онлайн
Коктейль Skydive или как мы мы делали 2ГИС-Онлайн
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
 

More from Yandex

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksYandex
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...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айт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
 

Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"