Вспоминаем, каким был наш релизный поезд раньше и как круто мы его доработали сейчас. Мы разработали сервис релизов, запустили бета-тесты, придумали, как релизить без участия людей и автоматизировали загрузку сборок в магазины приложений. Про это всё рассказываем в статье.
Пользователь
Система Quality Score: как оценивать внешнее качество продукта
Рассказываем, как создали понятную систему оценки качества для команд разработки Авито. Мы отобрали самые релевантные метрики, протестировали их, а затем показали коллегам, как ими пользоваться. Звучит просто, но на самом деле это был долгий и кропотливый процесс. Что получилось в итоге, читайте в статье.
Apache Spark и PySpark для аналитика. Учимся читать и понимать план запроса в SparkUI
Продолжаем выводить ваши знания о PySpark на новый уровень :) В этот раз расскажем, что такое план запроса, как его смотреть, и что делать, чтобы уточнить узкие места в расчётах.
Запуск потенциально опасного кода в изолированном окружении. Как мы сохраняем безопасность на macOS
Мы запустили облачный тест-раннер Emcee. Теперь другие компании могут тестировать приложения, не разворачивая у себя локальную версию раннера. Правда, запуск стороннего кода на наших серверах — это небезопасно. Но мы решили этот вопрос — рассказываем, как это было.
Построение платформенного продукта в Авито
Мы в Авито разработали свою внутреннюю платформу для разработчиков. Несмотря на то, что создание платформенного продукта — довольно затратная история, в итоге мы видим сплошные плюсы. Она растит скорость и качество разработки, делает системы стабильнее, помогает инженерам сосредоточиться на бизнес-задачах, а не на рутине.
Наш опыт построения платформы мы постарались заложить во внешнее решение Plato, которое опирается на проверенные open-source решения.
О преимуществах платформы, процессах её разработки и сложностях в реализации — в этой статье.
Используем JS Self-Profiling API для профилирования фронтенда на клиентах
Поговорим с нашим фронтенд-инженером Ильёй Алоновым про преимущества и недостатки JS Self-Profiling, посмотрим, как им пользоваться, и узнаем, какие есть подводные камни и как их обойти. Если интересуетесь перформансом веб-приложений — не проходите мимо :)
«Всё происходит само собой, когда тебе не всё равно»: как из игрока в покер стать руководителем тимлидов
Сергей Баранов рассказывает, как стал юнит-лидом в Авито, о сложностях и успехах в работе, и почему менеджерам на самом деле не нужны суперкрутые инженеры.
Инструменты тимлида: как управлять техническим бэклогом
Статья поможет начинающим тимлидам организовать управление техническим бэклогом так, чтобы не раздувать его до огромных размеров, создавать меньше технического долга и успевать фокусироваться на других важных задачах. А опытным тимлидам — систематизировать свои знания.
Семантики доставки событий в распределенных системах
Павел Агалецкий, ведущий разработчик в юните Platform as a Service в Авито, рассказал про семантики или гарантии доставки сообщений, и почему с ними не всегда просто разобраться.
Миграция приложения на Jetpack Compose
Jetpack Compose — крутой набор инструментов, который упрощает работу над интерфейсами для Android. С ним не нужно писать так много кода, как в обычных XML-разметках. А ещё в нём много полезных для разработчика фич — в этой статье расскажем о них подробно. И, конечно, выясним, как перенести UI и архитектуру приложений на Jetpack Compose и забыть View на 10 000 строк, как страшный сон.
Сравниваем скорость и оверхеды библиотек Deep Copy для Go
Егор Гартман, бэкендер Авито, рассказал, как протестировал несколько библиотек Deep Copy, а потом сделал свою — быстрее и эффективнее.
Как измерить надёжность вашего приложения
Рассказали, как мы в команде SLA учились измерять надёжность сначала отдельных микросервисов в архитектуре Авито, а затем всей системы в целом. Подробно опишем, что входит в понятие надёжности сервиса, что такое бюджет ошибок и как его считать. А в конце поделимся способами измерения надёжности, которые помогли нам сформулировать понятную и удобную в подсчётах метрику для бизнеса.
Как реализовать ролевую систему доступа через Open Policy Agent. Опыт PaaS Авито
Антон Губарев, инженер в команде Platform as a Service (PaaS) Авито, рассказал, как они с командой внедряли политики авторизации с помощью Open Policy Agent (OPA), и с какими проблемами столкнулись на пути.
Пишем хорошие компоненты, которые захочется переиспользовать, а плохие — не пишем
Обсудили с Антоном Крыловым, фронтенд-разработчиком Авито, как нужно и не нужно писать компоненты. Поговорили про характеристики компонентов и коснулись Dependency Injection и DSL-like подхода в React.
Разработка — всё? Действительно ли нас всех заменят роботы
Александр Пряхин, руководитель разработки юнита в Авито Работа, рассказал, так ли мрачно выглядит будущее для разработчиков «из плоти и крови» на фоне активного развития No Code, Low Code и нейросетей.
Как искать уязвимости в проекте на Go: обзор популярных анализаторов кода и их возможностей
Статья заряжена на повышение безопасности вашего кода :) Расскажем о трёх популярных анализаторах, какие типы уязвимостей они способны обнаружить и покажем результаты проверки реальных проектов.
Как заонбордиться тимлиду — первые 90 дней на новой работе
В этой статье обсуждаем, что и как делать тимлиду в новой команде. Расскажем, как поймать коннект с коллегами, поможем составить план на первые три месяца работы, дадим примеры и шаблоны документов.
Ещё дадим несколько советов на тот случай, если всё-таки не удаётся показать результат за отведённое время.
Ультимативный гайд по HTTP. Cookies и CORS
Привет! Меня зовут Ивасюта Алексей, я техлид команды Bricks в Авито в кластере Architecture, а это мой цикл статей о протоколе HTTP. В первой части мы уже познакомились с версией протокола 1.0 и поговорили о структуре ответов и запросов. Теперь пришло время узнать, что такое Cookies и для чего нужен CORS.
Как построить надёжную шину данных на Apache Kafka
С помощью Apache Kafka мы в Авито гарантируем соблюдение контрактов публикуемых событий. Рассказываем, как мы переработали архитектуру и сделали работу с Kafka удобнее и надёжнее.
Мы можем пережить даже полный отказ дата-центра. Почему — тоже расскажем в этой статье.
Ультимативный гайд по HTTP. Структура запроса и ответа
Привет! Меня зовут Ивасюта Алексей, я техлид команды Bricks в Авито в кластере Architecture. Я решил написать цикл статей об истории и развитии HTTP, рассмотреть каждую из его версий и проблемы, которые они решали и решают сейчас.
Весь современный веб построен на протоколе HTTP. Каждый сайт использует его для общения клиента с сервером. Между собой сервера тоже часто общаются по этому протоколу. На данный момент существует четыре его версии и все они до сих пор используются. Поэтому статьи будут полезны инженерам любых уровней и специализаций, и помогут систематизировать знания об этой важной технологии.