CodeFreeze — это ежемесячные встречи с экспертами по разработке программного обеспечения в Петербурге и Москве. Мы приглашаем интересных нам людей, которые в неформальной обстановке делятся своим опытом.
Дмитрий Хасанов,
Вячеслав Крюков,В среду, 5 октября, в московском офисе Технологического Центра Deutsche Bank состоялась встреча CodeFreeze с инженерами Авито, занимающимися вопросами оптимизации решений. Они рассказали об архитектурных решениях и подходах внутри портала Avito и уделяли особое внимание механизмам, обеспечивающим производительность решения.
C недавнего времени на появилась контекстная реклама. Из более, чем 10 миллионов объявлений нужно в режиме реального времени отобрать по десяткам параметров несколько релевантных для каждого отдельного пользователя.
Дмитрий Хасанов рассказал о том, как устроена инфраструктура контекста, как происходит индексация, поиск и ранжирование объявлений и зачем Avito использует миллионы коэффициентов при обработке каждого запроса, как проводится A/B- тестирование, почему Avito выбрали Sphinx и какие хитрости они применили, чтобы уложиться в 100 миллисекунд.
Кроме этого, в вводной части Дмитрий сделал краткий обзор инфраструктуры и стека технологий Avito в целом.
Ежедневно на Avito публикуется около 500 тысяч новых объявлений. За годы работы сервиса накопился почти миллиард объявлений (активных и неактивных), среди которых модераторы и другие работники бэкофиса Avito должны иметь возможность быстро найти нужное.
В докладе речь шла о различных подходах, классических и экзотических, которые Avito использовали для решения этой непростой задачи, их преимуществах и недостатках, о сложностях, с которыми Avito столкнулись в процессе и лайвхаках, которым научились.
Бэкофис Avito реализован на базе технологии SphinxSearch, однако описанные методы могут применяться и независимо от неё.
Доклад ориентирован на Middle / Senior-разработчиков.
Дмитрий Стогов
В среду, 7 сентября в 20:00 в офисе компании состоялась встреча с Дмитрием Стоговым, разработчиком компилятора PHP, сотрудником Zend Technologies. Тема встречи — внутреннее устройство виртуальной машины PHP и, в частности, последние изменения в PHP 7. После доклада Дмитрия выступила Анна Лебедева из , которая дала несколько советов по использованию PhpStorm, включая поддержку PHP 7.
Роман Поборчий
В четверг, 7 июля, в 20:00 в петербургском офисе состоялась встреча CodeFreeze с Романом Поборчим, экспертом по Java, качеству поиска и A/B тестированию. Тема встречи — грабли A/B тестирования.
Все изменения на вашем сервисе проходят через эксперимент на пользователях. Вы выкатываете только то, что показывает значимое улучшение целевой метрики. Да, у вас есть целевая метрика. Да, вы всё знаете про татистическую значимость, ну, по крайней мере слышали о ней.
Так почему же целевая метрика вашего сервиса сегодня находится точно на том же уровне, что и год назад?
Один из возможных ответов состоит в том, что в систему проведения экспериментов вкрались ошибки. Роман рассказал о некоторых типовых проблемах, с которыми сталкиваются практически все, кто начинает экспериментировать над пользователями. Кроме конкретных проблем говорили об индикаторах, следя за которыми можно заметить, что что-то сломалось. Если в вашем проекте есть A/B тестирование, то по результатам рассказа вам наверняка захочется внести в него какие-то улучшения.
Константин Ушаков,В четверг, 12 мая, в 20:00 в петербургском офисе Одноклассников состоялась встреча CodeFreeze с Константином Ушаковым, директором OKTET Labs. Тема встречи — Solarflare OpenOnload, сетевой стек, для Linux, уменьшающий задержки, нагрузку на процессор и увеличивающий скорость передачи пакетов.
Solarflare OpenOnload — высокопроизводительный сетевой стек, радикально уменьшающий задержки, нагрузку на процессор и увеличивающий скорость передачи пакетов. Достигается это без изменений в самом вашем приложении, будь то C/C++/Java или что либо, использующее BSD Sockets API). Хотя идея стеков, работающих частично или полностью в userland, не нова, радикальное отличие Onload — в предоставлении BSD Sockets API.
Доклад затронул техническую сторону реализации:
Константин показал, почему простая идея, лежащая в основе, не так проста в реализации (с примерами «неуспешных» попыток). Были цифры и были детали того, как ядро Linux пытается достичь схожей производительности (включая DPDK).
Владимир Кочетков,В четверг, 28 апреля, в московском офисе Технологического Центра Deutsche Bank состоялась встреча CodeFreeze с Владимиром Кочетковым, экспертом в области Application Security. Владимир рассказал о том, что такое защищенное приложение, от чего нужно защищаться, и как избежать проблем безопасности в вашем приложении.
Что такое «защищенное приложение»? Как отличить неуязвимый код от уязвимого? Какими принципами нужно руководствоваться в разработке защищенных приложений? От чего и когда нужно защищаться? А от чего и когда НЕ нужно? На какие грабли наступили разработчики, повинные в Heartbleed, Gotofail, GHOST, Shellshock и прочих нашумевших уязвимостях? Как избежать подобных ошибок в своих приложениях?
Ответы на эти и другие вопросы предметной области Application Security мы обсудим в ходе предстоящей встречи.
Доклад ориентирован на Middle / Senior-разработчиков, безотносительно конкретных языков, платформ и технологий. В ходе него участники получат как практические навыки разработки защищенного кода, так и теоретический базис, необходимый для их корректного применения.
Присоединяйтесь!