О поисковой системе bing и хороших программистах

21
О Бинге и о хороших программистах Егор Кишилов

Upload: corehardby

Post on 06-Jan-2017

411 views

Category:

Technology


6 download

TRANSCRIPT

Page 1: О поисковой системе Bing и хороших программистах

О Бинге и о хороших программистахЕгор Кишилов

Page 2: О поисковой системе Bing и хороших программистах

О Бинге01

Page 3: О поисковой системе Bing и хороших программистах

Сначала это был MSN Search (2003-2006), потом Windows Live Search/Live Search (2006-2009).

В итоге переименовали в Бинг (2009).

О Бинге

Page 4: О поисковой системе Bing и хороших программистах

“Бингом вообще кто-то пользуется?!” - кого ни спроси

Page 5: О поисковой системе Bing и хороших программистах

22% всех запросов с PC в США сделаны на Бинге.В 2009 году это число было около 8%.

Если считать траффик Yahoo!, AOL и других партнёров, то больше трети запросов будут идти через Бинг.

О Бинге

Page 6: О поисковой системе Bing и хороших программистах

О борьбе с конурентами02

Page 7: О поисковой системе Bing и хороших программистах

Как бороться с конкурентом, у которого 80% доля рынка и ваша доля падает?

О конкурентах

1.Нанимайте умных людей2.Grind3.Измеряйте свой прогресс

Page 8: О поисковой системе Bing и хороших программистах
Page 9: О поисковой системе Bing и хороших программистах

* Каждая команда имеет свою метрику(и), которые они улучшают и которые привязаны к общим бизнес показателям (выручка, доля рынка, пользователи, и т.д.)

* Как только в метрике вы обходите конкурента, найдите новую метрику, в которой вы проигрываете.

* В метрику часто инвестируется времени и ресурсов сравнимо с разработкой самой системы.

О метриках

Page 10: О поисковой системе Bing и хороших программистах

Об эволюции архитектуры03

Page 11: О поисковой системе Bing и хороших программистах

Начинается всё как всегда с одного большого .ехе, который делает всё

- Выбор веб-документов- Кроулинг- Парсер- Классификаторы- Создание индекс файлов

Об архитектуре

Page 12: О поисковой системе Bing и хороших программистах

Это перестаёт работать, когда отдельные подсистемы усложняются и над всем трудится > 100 разработчиков.

Наша траектория эволюции:1. Единый мега-ехе.2. Несколько мега-ехе, которые обмениваются большими файлами.3. Добавляются RPC протоколы и low-latency key-value stores.

Об архитектуре

Page 13: О поисковой системе Bing и хороших программистах

О С++ в Бинге и Майкрософте 04

Page 14: О поисковой системе Bing и хороших программистах

О С++ в Бинге

Изначально почти всё было на С/C++ (.NET только появился).

Постепенно C# вытеснил С++ в Бинге. С++ остался в системах, где нужна скорость или нежная работа с памятью.

Некоторые из причин, по которым команды перешли:1. Программисты дороже, чем серверы.2. На .NET можно создавать массивные low-latency системы

(доказано на практике).3. На .NET легче сделать систему, над которой работает 700

разработчиков и она выкатывается в продакшен 3 раза в день.4. Время сборки проекта.

Page 15: О поисковой системе Bing и хороших программистах

Вкратце: Было плохо. Стало лучше.

Около 2008-2009 годов почти не было инвестиций. МС С++ компилятор как вы сами знаете был дохлый.

Где-то в 2010-2011 стало всё ощутимо лучше. Herb Sutter получил поддержку от начальства и понеслось: конференции, активное участие в стандартизации, улучшения компилятора и линкера, больше open source.

О С++ в Майкрософте

Page 16: О поисковой системе Bing и хороших программистах

О Bond

Для нужд Бинга был создана Bond библиотека для работы с схематизированными данными.

Аналоги: Google Protobuf, Apache Thrift.

Доступен на Github: https://github.com/Microsoft/bond

Page 17: О поисковой системе Bing и хороших программистах

О Bond

Page 18: О поисковой системе Bing и хороших программистах

О Bond

Page 19: О поисковой системе Bing и хороших программистах

О хороших программистах05

Page 20: О поисковой системе Bing и хороших программистах

“Ты знаком с хорошим программистом, пока не поработаешь с ним/ней и не увидишь его/её код” - Егор К.

Page 21: О поисковой системе Bing и хороших программистах

Хороший программист достигает результата.

Хорошему программисту не стыдно передать код коллеге.

О хороших программистах