Как стать автором
Обновить
31
0
Pavel Lakosnikov @MMgo

Team Lead Backend Engineer

Отправить сообщение

Паттерны асинхронных обменов на платформе Авито

Время на прочтение11 мин
Количество просмотров9.4K

Привет! Меня зовут Павел Агалецкий, я старший инженер в команде архитектуры. Одна из областей ответственности нашей команды — синхронное (RPC) и асинхронное взаимодействие между сервисами. 

В этой статье я расскажу о том, как можно связать сервисы друг с другом и как это делаем мы в платформе Авито. 

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии9

Почему Trunk Based Development – лучшая модель ветвления. Андрей Александров

Время на прочтение10 мин
Количество просмотров89K


В State Of DevOps 2018 от DORA мы видим, что Нigh Performing компании используют Trunk Based Development. Разберемся, почему именно ее, какие ее преимущества и недостатки имеет эта модель.

Читать дальше →
Всего голосов 27: ↑18 и ↓9+9
Комментарии8

CI/CD монолита Авито: от коммита до моржа

Время на прочтение8 мин
Количество просмотров7.9K

Всем привет, меня зовут Александр Данковцев, я lead engineer команды Antimonolith. В этой статье я расскажу, как построен CI/CD монолита Авито. Речь пойдёт про нашу архитектуру стейджинга, pre-receive хуки, то, что из себя представляет сборка и деплой, как устроен прогон автотестов и какие проверки происходят на merge. А ещё рассмотрим after-merge actions.

Читать далее
Всего голосов 19: ↑19 и ↓0+19
Комментарии4

Как превратиться в суперзвезду Zoom-звонков за 15 минут

Время на прочтение10 мин
Количество просмотров39K

Я работаю продакт-менеджером двух команд в Wrike на удалёнке и каждую неделю провожу примерно 20 часов на созвонах. В таких условиях контекст часто теряется из-за отсутствия физического контакта, а если ещё и камера так себе, то вместо лица человека видишь «кашу» без эмоций. Особенно обидно видеть тренинги или выступления именитых спикеров со стандартной камерой в тёмной комнате на фоне обоев, в то время как стоимость подобных тренингов  в разы превышает стоимость нормального оборудования. 

Я решил использовать свой опыт фотографирования и работы со светом и потратить время, чтобы улучшить свои Zoom-звонки «по-быстрому». И теперь хочу научить этому вас! В этой статье попробуем разобраться, какие технические средства можно использовать, чтобы онлайн-встреча напоминала встречу вживую и радовала и вас, и собеседника.

Читать далее
Всего голосов 132: ↑124 и ↓8+116
Комментарии133

Заповеди тимлида Авито

Время на прочтение6 мин
Количество просмотров23K

Мы уже публиковали свои внутренние документы с ожиданиями от инженеров и менеджеров продукта в плейбуке на Гитхабе. Пришло время поделиться ещё одним — кодексом тимлида.


Читать дальше →
Всего голосов 80: ↑79 и ↓1+78
Комментарии33

Разбор вызовов функций в PHP

Время на прочтение15 мин
Количество просмотров40K
Этот пост посвящён оптимизации PHP с помощью профайлера Blackfire в PHP-скрипте. Нижеприведённый текст является подробным техническим объяснением статьи в блоге Blackfire.

Обычно применяется метод strlen:

if (strlen($name) > 49) {
...
}

Однако такой вариант примерно на 20% медленнее этого:

if (isset($name[49])) {
...
}

Выглядит неплохо. Наверняка вы уже собрались открыть ваши исходники и заменить все вызовы strlen() на isset(). Но если внимательно прочитать оригинальную статью, то можно заметить, что причина 20-процентной разницы в производительности — многократные вызовы strlen(), порядка 60-80 тысяч итераций.
Читать дальше →
Всего голосов 54: ↑52 и ↓2+50
Комментарии70

Как Авито выявляет мошенников и борется с фродом

Время на прочтение11 мин
Количество просмотров181K

Привет, Хабр. Я Игорь, руководитель команды, которая борется с мошенниками на Авито. Сегодня поговорим про вечную битву с негодяями, которые пытаются и даже иногда обманывают интернет-покупателей с помощью доставки товаров.


Читать дальше →
Всего голосов 97: ↑94 и ↓3+91
Комментарии393

Что делать с легаси. Материалы с Badoo PHP Meetup #4

Время на прочтение2 мин
Количество просмотров9K
Всем привет!

15 февраля в офисе Badoo прошла очередная встреча PHP-разработчиков, посвященная теме легаси. Целый день мы слушали рассказы об опыте крупных компаний, общались и делились болью.

Получилось рассмотреть проблему с нескольких сторон:

  • организация процессов разработки по избавлению от легаси;
  • тактика распила легаси-монолита на микросервисы;
  • способы организации API, которые позволяют держать под контролем рост устаревшего кода;
  • автоматические способы обнаружения «мёртвого» кода;
  • а еще попробовали поговорить как рефакторить легаси-код с помощью DDD подходов;

Под катом делюсь видео и слайдами с этой встречи. Конечно, очень много ценного осталось в кулуарах и не вошло в отчет, так что приходите в нашу уютную группу поболтать о тяжелой жизни пэхэпэшника, обсудить доклады или просто за советом :)


Всего голосов 32: ↑32 и ↓0+32
Комментарии3

Рекомендации на Avito

Время на прочтение6 мин
Количество просмотров21K

В этой статье пойдет речь о том, как строятся персональные рекомендации на Avito. Исторически бизнес-модель Avito устроена так, что выдача объявлений в поиске происходит по времени их размещения. При этом пользователь может покупать дополнительные услуги для того, чтобы поднять свое объявление в поиске в том случае, если со временем объявление опустилось далеко в поисковой выдаче и перестало набирать просмотры и контакты.


В контексте данной бизнес-модели не очевидно, зачем нужны персональные рекомендации. Ведь они как раз нарушают логику сортировки по времени и те пользователи, которые платят за поднятие объявления, могут обидеться за то, что чье-то другое объявление мы «поднимаем» и показываем пользователю совершенно бесплатно только потому, что наша рекомендательная модель посчитала это объявление более релевантным для какого-то пользователя.


Однако сейчас персональные рекомендации становятся “must have” для классифайдов (и не только) по всему миру. Мы хотим помогать пользователю в поиске того, что ему нужно. Уже сейчас всё более значительная доля просмотров объявлений на Avito производится с рекомендаций на главной странице приложений или рекомендаций похожих объявлений на карточке товара. В этом посте я расскажу, какие именно задачи решает наша команда в Avito.


Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Комментарии25

Что нового в PHP 7.2?

Время на прочтение14 мин
Количество просмотров85K

Несмотря на то, что мы активно работаем с Python и Go, всё же существенная часть нашего серверного кода написана на PHP. Поэтому мы внимательно следим за всеми нововведениями языка. Прошло меньше года после релиза предыдущей минорной версии, и вот уже последний бета-релиз запланирован на 17 августа. Его ещё не рекомендуется использовать в production, но уже можно скачать docker-образ. Пора разбираться, что изменилось в новой версии языка.


Читать дальше →
Всего голосов 79: ↑78 и ↓1+77
Комментарии68

Hack. Sleep. Repeat

Время на прочтение10 мин
Количество просмотров13K
Привет. Меня зовут Дима, и я бэкенд-разработчик в Avito. Мне довелось поучаствовать в кучке хакатонов: мелких и крупных, российских и зарубежных, внешних и внутри компаний, удалённых, распределённых и классических. Хочу рассказать, как они помогли познакомиться с омским дедом, заразиться криптобактериями, запустить виртуальный космический корабль в эрланг-вселенную и спасти человечество от вымирания.


Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии4

Расставляем точки над микросервисами. Секция Avito на РИТ++ 2017 (Видео)

Время на прочтение4 мин
Количество просмотров25K
Вот и подоспели материалы с фестиваля РИТ++ 2017. Мы выступили там с докладами по темам machine learning, front-end и mobile разработки и провели отдельный тематический блок, посвященный микросервисам. Под катом – видеозаписи выступлений на этой секции наших докладчиков и коллег из других компаний. Обязательно загляните, чтобы узнать о подходах к работе с микросервисами и интересных приемах, которые реально использовать для решения ваших задач.


Всего голосов 43: ↑43 и ↓0+43
Комментарии3

May the Code Review be with you

Время на прочтение9 мин
Количество просмотров27K
Code review может быть большой болью для команды, которая только начинает его внедрять. Вы в любом случае наступите на много граблей: будете проводить ревью дольше, чем пишете код, устраивать смертельные споры про расположение скобочек и разбираться, можно ли сливать ветку в master до аппрува команды или нет. Я собрал ряд практик, которые помогут вам сделать процесс адаптации чуть менее болезненным — по крайней мере, мне они точно помогли.
 
Этот материал — краткая выжимка моего опыта, накопленного за несколько лет работы в крупных командах мобильной разработки. Опыт по большей части в мобильной разработке, что оказало влияние на используемые примеры и ссылки. Для тех, кто предпочитает не читать, а смотреть, в течение пары месяцев должно появиться видео с конференции Mobius, где я рассказываю доклад на эту же тему, но с кучей подробных практических примеров.
 

Читать дальше →
Всего голосов 61: ↑61 и ↓0+61
Комментарии16

Путешествие внутрь Avito: платформа

Время на прочтение4 мин
Количество просмотров32K
image

Мы уже рассказали вам о хранилище Avito, картинках, медиапикере, но главный вопрос так и оставался нераскрытым: какая она, архитектура платформы, из каких компонентов состоит и какой стек использует. Вы просили рассказать об аппаратной составляющей Avito, используемой системе виртуализации, СХД и так далее — ну что же, отвечаем.
Читать дальше →
Всего голосов 57: ↑54 и ↓3+51
Комментарии33

Сатира с мозгами: в Москве впервые пройдёт фестиваль безумных научных теорий «Ну тоже наука»

Время на прочтение2 мин
Количество просмотров7.8K
НИТУ «МИСиС», научно-популярный проект «Курилка Гутенберга» и движение The Brights при поддержке Министерства образования и науки РФ проведут первый в России фестиваль научного юмора – «Ну… тоже наука»! Такого вы ещё точно не видели: известные ученые и популяризаторы науки постараются при помощи абсолютно точных и верных фактов доказать самые завиральные теории.

Вас попробуют убедить в геометрической гипотезе возникновения теории разума, докажут, что мужчины всю жизнь ищут только «Ту Самую», удивят механизмом выживания крокодилов, найдут в теле человека новый орган и расскажут о планах смартфонов по захвату мозга человека. А также вывернут ваш мозг ещё несколькими способами.

image
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии19

Совместный просмотр Google I/O в офисе Avito

Время на прочтение4 мин
Количество просмотров6.4K

image


17 мая стартует ежегодная конференция, проводимая компанией Google в Калифорнии. Она длится три дня, в течение которых будет проведено множество сессий по технологиям и проектам Google, ориентированных в первую очередь на разработчиков.


Трансляция KeyNote начнется в 20 часов по московскому времени. Если вы не хотите смотреть ее в одиночестве, а готовы сразу обсудить все новости и новинки с коллегами по цеху — приходите на коллективный просмотр к нам в Avito!


А в этом посте мы поделимся основными ожиданиями от конференции и догадками про анонсы новых продуктов.


Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии0

История хранилища картинок Avito

Время на прочтение6 мин
Количество просмотров29K


А что, если вам дадут задачу организовать хранение и раздачу статических файлов? Наверняка многие подумают, что тут все просто. А если таких файлов миллиард, несколько сотен терабайт и запросов к ним несколько миллиардов в сутки? Также много разных систем будут отправлять на хранение файлы разных форматов и размеров. Этот квест уже не кажется таким простым. Под катом история о том, как мы решили такую задачу, какие сложности при этом возникли, и как мы их преодолели.

Avito развивался стремительно с первых дней. Например, скорость загрузки новых картинок для объявлений выросла в первые годы в несколько раз. Это требовало от нас на начальном этапе решать вопросы, связанные с архитектурой, максимально оперативно и эффективно, в условиях ограниченных ресурсов. Кроме того, мы всегда отдавали предпочтение простым решениям, требующим мало ресурсов на поддержку. Принцип KISS («Keep it short and simple») — это до сих пор одна из ценностей нашей компании.
Читать дальше →
Всего голосов 64: ↑61 и ↓3+58
Комментарии70

Как искать в DataGrip

Время на прочтение2 мин
Количество просмотров18K


В работе с любым инструментом важно легко находить то, что нужно. В DataGrip ищут:

Объекты базы данных: таблицы, представления, функции, колонки и т. д.
— Сами данные.
Код, например кусок кода в скрипте или исходнике объекта.
Другое: настройки, действия, файлы.

Разберемся, как не потеряться в IDE и своих базах данных.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии9

Лекции Техносферы: Программирование на Go

Время на прочтение2 мин
Количество просмотров53K

image


Продолжаем публикацию наших образовательных материалов. Этот курс посвящен изучению основ языка Go. На примере простой текстовой игры будут рассмотрены все основные задачи, с которыми сталкивается разработчик современных веб-приложений в крупных проектах, с реализацией их на Go. Курс не ставит задачи научить программированию с нуля, для обучения будут необходимы базовые навыки программирования.


Список лекций:


Всего голосов 73: ↑68 и ↓5+63
Комментарии52

Организация инфраструктуры с помощью Kubernetes и Helm. Видеозаписи докладов с Kubernetes meetup 22 марта 2017

Время на прочтение1 мин
Количество просмотров11K
image

22 марта в Avito прошёл второй митап московского Kubernetes коммьюнити, а сегодня мы делимся материалами встречи. Денис Измайлов сделал обзор последних изменений инструмента, Евгений Ольков и Павел Селиванов рассказали про то, как используется Kubernetes, соответственно, в Avito и Центре Недвижимости от Сбербанка, а Сергей Орлов сделал короткий доклад про пакетный менеджер Helm. Приятного просмотра!
Всего голосов 29: ↑29 и ↓0+29
Комментарии1
1

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Работает в
Зарегистрирован
Активность