SlideShare une entreprise Scribd logo
1  sur  54
Télécharger pour lire hors ligne
Коктейль Skydive
  или как мы делали
     2ГИС-Онлайн
Константин Лихтер   Илья Таратухин
2ГИС                         2ГИС
Что такое Skydive?
Что такое 2ГИС-Онлайн?
Что такое 2ГИС-Онлайн?
Что такое 2ГИС-Онлайн?
Что такое 2ГИС-Онлайн?




... миллионы пользователей в месяц
Что такое 2ГИС-Онлайн?


— ... миллионы пользователей в месяц



... сотни тысяч пользователей в день
Что такое 2ГИС-Онлайн?


 — ... миллионы пользователей в месяц
 — ... сотни тысяч пользователей в день

... миллионы поисковых запросов в день
Что такое 2ГИС-Онлайн?


— ... миллионы пользователей в месяц
— ... сотни тысяч пользоваталей в день
— ... миллионы поисковых запросов в день
Что такое 2ГИС-Онлайн?


— ... миллионы пользователей в месяц
— ... сотни тысяч пользоваталей в день
— ... миллионы поисковых запросов в день
Как выглядел 2ГИС Онлайн раньше




    ...монолитное приложение
Как выглядел 2ГИС Онлайн раньше

— монолитное приложение



  ...проксирование запросов к API
Как выглядел 2ГИС Онлайн раньше

— монолитное приложение
— проксирование запросов к API


 ...рендеринг шаблонов на сервере
Как выглядел 2ГИС Онлайн раньше

— монолитное приложение
— проксирование запросов к API
— рендеринг шаблонов на сервере
    ...никакой масштабируемости
Как выглядел 2ГИС Онлайн раньше

— монолитное приложение
— проксирование запросов к API
— рендеринг шаблонов на сервере
— никакой масштабируемости
Что такое 2ГИС-Онлайн?




           client-side
Что такое 2ГИС-Онлайн?

— client-side



                3 API
Что такое 2ГИС-Онлайн?

— client-side
— 3 API


      видимый результат на лету
Что такое 2ГИС-Онлайн?

— client-side
— 3 API
— видимый результат на лету
площадка для исследований API 2ГИС
Что такое 2ГИС-Онлайн?

— client-side
— 3 API
— видимый результат на лету
— площадка для исследований API 2ГИС
            low end server
Что такое 2ГИС-Онлайн?

— client-side
— 3 API
— видимый результат на лету
— площадка для исследований API 2ГИС
— low end server
 горизонтальное масштабирование
Как выглядит 2ГИС Онлайн сегодня
Ингридиенты: слой данных



  API 2ГИС


                   Слой
                   пробок
Ингридиенты: front-end



   API карт
Ингридиенты: front-end



   API карт



       150+ городов России
Ингридиенты: front-end



   API карт

  —   150+ городов России


      тысячи маркеров на карте
Ингридиенты: front-end



   API карт

  — 150+ городов России
  — тысячи маркеров на карте


  простой и понятный интерфейс
Ингридиенты: front-end



   API карт

  — 150+ городов России
  — тысячи маркеров на карте
  — простой и понятный интерфейс


инициализация карты в три строчки
Ингридиенты: front-end



   API карт

  — 150+ городов России
  — тысячи маркеров на карте
  — простой и понятный интерфейс
  — инициализация карты в три строчки

        модульная система
Ингридиенты: front-end



   API карт



                   knockout.js
Ингридиенты: front-end: knockout.js




              MVVM
Ингридиенты: front-end: knockout.js
—   MVVM




     автоматическое обновление
    представления при обновлении
               данных
Ингридиенты: front-end: knockout.js
— MVVM
— автоматическое обновление
представления при обновлении данных
— декларативные биндинги:
    <div id=”firmsList”
         data-bind=”
            visible: firmsLoaded,
            foreach: {
               data: loadedFirms,
               template: ‘firmCard’
            }
         ”>
    </div>
Ингридиенты: front-end: knockout.js
— MVVM
— автоматическое обновление
представления при обновлении данных
— декларативные биндинги
— разделение представления и логики:
Ингридиенты: front-end: knockout.js
— MVVM
— автоматическое обновление
представления при обновлении данных
— декларативные биндинги
— разделение представления и логики
    поддержка jQuery шаблонов
Ингридиенты: front-end: knockout.js
— MVVM
— автоматическое обновление
представления при обновлении данных
— декларативные биндинги
— разделение представления и логики
— поддержка jQuery шаблонов
    низкий уровень вхождения
Ингридиенты: front-end: knockout.js
— MVVM
— автоматическое обновление
представления при обновлении данных
— декларативные биндинги
— разделение представления и логики
— поддержка jQuery шаблонов
— низкий уровень вхождения

    активное интернет-сообщество
Ингридиенты: back-end



       nginx



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

      phing

              — YUI Compressor
              — Google CС




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

      phing

               — YUI Compressor
               — Google CС




         — CSS: в 2 раза
         — JS: в 1.5 раза
Инструменты

      phing

              - YUI Compressor
              - Google Closure
              Compiler


        Yii
Инструменты: локализация gettext




       великое множество
  инструментов для работы с .po
Инструменты: локализация gettext

 — великое множество инструментов для
 работы с .po

  нативная реализация для PHP
Инструменты: локализация gettext

 — великое множество инструментов для
 работы с .po
 — нативная реализация для PHP
 собственная реализация для JS
Процесс разработки: git flow


                  g 1.0        g 1.1        g 2.0
   master    Ta           Ta           Ta




   develop
Процесс разработки: git flow


                   g 1.0        g 1.1        g 2.0
   master     Ta           Ta           Ta




   develop


   feature*
Процесс разработки: git flow


                   g 1.0        g 1.1        g 2.0
   master     Ta           Ta           Ta



   release*


   develop
Процесс разработки: git flow


                  g 1.0        g 2.0
   master    Ta           Ta



   hotfix*


   develop
Команда разработки
Планы




  поиск проезда общественного
           транспорта
Планы
—   поиск проезда общественного транспорта




    переход к глобальной карте
Планы
—   поиск проезда общественного транспорта
—   переход к глобальной карте


       совершенствование и
    совершествование поиска :)
Заключение
 —   client-side приложения — да!
 —   экспериментируйте!
 —   вы знаете, где взять свежие данные.




 —   ходить на          — круто! :)
Вопросы?

                    Константин Лихтер    Илья Таратухин
                    k.likhter@2gis.ru i.taratuhin@2gis.ru



Изображения алкогольной продукции и прочих штук — www.inshaker.ru

Contenu connexe

Tendances

Code Sharing - Как мы пришли к Unity Package Manager / Станислав Коротаев (Ba...
Code Sharing - Как мы пришли к Unity Package Manager / Станислав Коротаев (Ba...Code Sharing - Как мы пришли к Unity Package Manager / Станислав Коротаев (Ba...
Code Sharing - Как мы пришли к Unity Package Manager / Станислав Коротаев (Ba...DevGAMM Conference
 
Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)AvitoTech
 
Понимая Git /git/. Git изнутри наружу
Понимая Git /git/. Git изнутри наружуПонимая Git /git/. Git изнутри наружу
Понимая Git /git/. Git изнутри наружуGDG Odessa
 
Git для новичков
Git для новичковGit для новичков
Git для новичковSoftline
 
Еще один поиск контактов под Android
Еще один поиск контактов под AndroidЕще один поиск контактов под Android
Еще один поиск контактов под AndroidMatvey Malkov
 
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...Yandex
 
Rust - GDG DevFest Siberia 2016
Rust - GDG DevFest Siberia 2016Rust - GDG DevFest Siberia 2016
Rust - GDG DevFest Siberia 2016Nikita Baksalyar
 

Tendances (7)

Code Sharing - Как мы пришли к Unity Package Manager / Станислав Коротаев (Ba...
Code Sharing - Как мы пришли к Unity Package Manager / Станислав Коротаев (Ba...Code Sharing - Как мы пришли к Unity Package Manager / Станислав Коротаев (Ba...
Code Sharing - Как мы пришли к Unity Package Manager / Станислав Коротаев (Ba...
 
Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)
 
Понимая Git /git/. Git изнутри наружу
Понимая Git /git/. Git изнутри наружуПонимая Git /git/. Git изнутри наружу
Понимая Git /git/. Git изнутри наружу
 
Git для новичков
Git для новичковGit для новичков
Git для новичков
 
Еще один поиск контактов под Android
Еще один поиск контактов под AndroidЕще один поиск контактов под Android
Еще один поиск контактов под Android
 
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
 
Rust - GDG DevFest Siberia 2016
Rust - GDG DevFest Siberia 2016Rust - GDG DevFest Siberia 2016
Rust - GDG DevFest Siberia 2016
 

Similaire à Коктейль Skydive или как мы мы делали 2ГИС-Онлайн

Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрsportgid
 
Фронтенд для миллионов (НН)
Фронтенд для миллионов (НН)Фронтенд для миллионов (НН)
Фронтенд для миллионов (НН)Anastasia Goryacheva
 
Front days Фронтенд для миллионов Avito
Front days Фронтенд для миллионов AvitoFront days Фронтенд для миллионов Avito
Front days Фронтенд для миллионов AvitoAnastasia Goryacheva
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Anton Baranov
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Ontico
 
"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik Himiranov"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik HimiranovFwdays
 
Py con 2010_django_project_dev_full_circle
Py con 2010_django_project_dev_full_circlePy con 2010_django_project_dev_full_circle
Py con 2010_django_project_dev_full_circleRostislav Bryzgunov
 
DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.Alexander Titov
 
Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"
Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"
Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"Yandex
 
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...Igor Miniailo
 
мониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBAмониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBASlach
 
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)Ontico
 
разработка Metro style приложений
разработка Metro style приложенийразработка Metro style приложений
разработка Metro style приложенийОлег Винников
 
Yandex.Frontend: complex services, complex solutions
Yandex.Frontend: complex services, complex solutionsYandex.Frontend: complex services, complex solutions
Yandex.Frontend: complex services, complex solutionsYelena Jetpyspayeva
 
"Фронтенд в Яндексе: сложные сервисы, непростые решения". Елена Джетпыспаева,...
"Фронтенд в Яндексе: сложные сервисы, непростые решения". Елена Джетпыспаева,..."Фронтенд в Яндексе: сложные сервисы, непростые решения". Елена Джетпыспаева,...
"Фронтенд в Яндексе: сложные сервисы, непростые решения". Елена Джетпыспаева,...Yandex
 
Pavel Dovbush Toster
Pavel Dovbush Toster Pavel Dovbush Toster
Pavel Dovbush Toster Pavel Dovbush
 
Фронтенд для миллионов (Орёл)
Фронтенд для миллионов (Орёл)Фронтенд для миллионов (Орёл)
Фронтенд для миллионов (Орёл)Anastasia Goryacheva
 
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва... Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...Nikolay Samokhvalov
 

Similaire à Коктейль Skydive или как мы мы делали 2ГИС-Онлайн (20)

Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
 
Фронтенд для миллионов (НН)
Фронтенд для миллионов (НН)Фронтенд для миллионов (НН)
Фронтенд для миллионов (НН)
 
Front days Фронтенд для миллионов Avito
Front days Фронтенд для миллионов AvitoFront days Фронтенд для миллионов Avito
Front days Фронтенд для миллионов Avito
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik Himiranov"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik Himiranov
 
Py con 2010_django_project_dev_full_circle
Py con 2010_django_project_dev_full_circlePy con 2010_django_project_dev_full_circle
Py con 2010_django_project_dev_full_circle
 
DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.
 
DevOps для 1С
DevOps для 1СDevOps для 1С
DevOps для 1С
 
Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"
Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"
Марина Степанова "Как мы заставили API Яндекс.Карт работать быстрее"
 
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
 
мониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBAмониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBA
 
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
 
YaC 2013 Notes
YaC 2013 NotesYaC 2013 Notes
YaC 2013 Notes
 
разработка Metro style приложений
разработка Metro style приложенийразработка Metro style приложений
разработка Metro style приложений
 
Yandex.Frontend: complex services, complex solutions
Yandex.Frontend: complex services, complex solutionsYandex.Frontend: complex services, complex solutions
Yandex.Frontend: complex services, complex solutions
 
"Фронтенд в Яндексе: сложные сервисы, непростые решения". Елена Джетпыспаева,...
"Фронтенд в Яндексе: сложные сервисы, непростые решения". Елена Джетпыспаева,..."Фронтенд в Яндексе: сложные сервисы, непростые решения". Елена Джетпыспаева,...
"Фронтенд в Яндексе: сложные сервисы, непростые решения". Елена Джетпыспаева,...
 
Pavel Dovbush Toster
Pavel Dovbush Toster Pavel Dovbush Toster
Pavel Dovbush Toster
 
Фронтенд для миллионов (Орёл)
Фронтенд для миллионов (Орёл)Фронтенд для миллионов (Орёл)
Фронтенд для миллионов (Орёл)
 
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва... Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 

Коктейль Skydive или как мы мы делали 2ГИС-Онлайн