Как стать автором
Обновить
96.63
ОК
Делаем продукт, который объединяет миллионы людей
Сначала показывать

ByteWeaver в Open Source: инструментирование байт-кода Java во имя великого блага

Уровень сложностиСложный
Время на прочтение14 мин
Количество просмотров4.4K

Про байт‑код написано уже немало. Он везде, и никого этим не удивить: его генерирует компилятор, переупаковывает система сборки, «портит» обфускатор и изредка читают программисты. Естественно, для работы с байт‑кодом есть немало инструментов, которые используются в разных областях и на разных платформах. Среди них и ByteWeaver — инструмент для патчинга байт‑кода во время сборки, который может быть полезен разработчикам под Android.

Меня зовут Александр Асанов. Я Android‑разработчик в OK, Tracer, ByteWeaver. В этой статье я разберу, что такое байт‑код, как и зачем с ним работать, расскажу о ByteWeaver и покажу примеры работы с байт‑кодом.

Читать далее
Всего голосов 41: ↑39 и ↓2+44
Комментарии11

Можно просто так взять и опубликовать Приложение в ОК

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.3K

ОК — большая и популярная социальная сеть. Причем она не только про общение, но и про развлечения: на платформе доступно огромное количество игр и мини-приложений, с которыми аудитория активно взаимодействует. Внутренние приложения и игры ОК использует почти 20 млн человек, и вовлеченность пользователей постоянно растет.

Доступ к этой аудитории есть практически у любого разработчика — разместить свое приложение на платформе ОК и сделать его доступным большой аудитории можно быстрее, чем приготовить завтрак.

Меня зовут Михаил Мосин. Я инженер-программист в ОК. В этой статье я подробно и пошагово расскажу, как зарелизить свое приложение на платформе ОК.

Читать далее
Всего голосов 12: ↑11 и ↓1+16
Комментарии9

Как переход на AGP&Gradle 8.* изменил взгляд на работу с производительностью сборки

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров2.3K

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

Меня зовут Богдан Мащенко. Я Android-разработчик в платформенной команде Одноклассников. В этой статье я расскажу о нашем опыте перехода на AGP (Android Gradle Plugin) и Gradle версий 8.*: что стало причиной перехода, как преодолевали трудности, и что мы смогли получить в результате.

Читать далее
Всего голосов 15: ↑14 и ↓1+18
Комментарии0

Обеспечение качества на всём пайплайне разработки, или как создавать продукты, отвечающие ожиданиям

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров3.1K

Командная работа при разработке программного обеспечения (ПО) — это не только объединение компетенций и экспертиз, но и общая ответственность за конечный продукт. К сожалению, об этом часто забывают, оставляя проверку качества и соответствие требованиям только на QA-инженеров. Это ошибочная практика, которая нередко заканчивается выкаткой в прод «сырых» продуктов с недочетами и уязвимостями.

С вами снова Алексей Петров, директор по качеству в Одноклассниках. В этой статье я расскажу, как команда может на каждом этапе разработки ПО заботиться о качестве будущего продукта, а также бороться с багами еще до их появления.

Материал подготовлен по мотивам моего доклада на CodeFest. Вы можете посмотреть его здесь.

Читать далее
Всего голосов 26: ↑25 и ↓1+29
Комментарии0

API в ОК: анализ покрытия и автотесты

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров5.1K

Написание автотестов — одна из наиболее эффективных практик, которая позволяет проверять работоспособность всех компонентов сервиса и своевременно обнаруживать любые сбои. Но писать много автотестов — не всегда верный подход: тестов должно быть не много, а достаточно. Иначе время и силы инженеров по тестированию и автоматизации будут тратиться напрасно. Но как понять, что автотестов достаточно, и, главное, быть уверенным, что обновление или добавление новых методов внутри проекта не создаст «неотслеживаемые бреши»? Очевидно, что для этого нужна система анализа покрытия автотестами.

Мы продолжаем серию статей об автотестах в ОК (материалы по этой теме мы можете почитать здесь, здесь и здесь). И сегодня рассказываем на примере анализа покрытия автотестами API, как с этими задачами справляется команда ОК.

Читать далее
Всего голосов 25: ↑24 и ↓1+30
Комментарии0

Экскурс в «святая святых» ОК: как мы пишем и ревьюим код автотестов

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров1.8K

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

Делимся опытом работы с автотестами в ОК: от подходов к постановке задач до схемы настройки окружения статического анализатора кода.

Материал подготовлен по мотивам доклада руководителя команды автоматизации тестирования ОК Эмилии Куцаревой и младшего инженера по автоматизации тестирования соцсети Евгения Буровникова на ИТ-конференции «Стачка».

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

С самого начала выбираем какую-то тактику и придерживаемся ее: говорим об индивидуальных планах развития

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров2.9K

Одно из основных преимуществ сферы ИТ — динамичное развитие технологий, которое также стимулирует непрерывно развиваться и специалистов разных уровней и направлений. Поэтому история, когда специалист в рамках одной команды может вырасти от Junior до Senior, встречается часто. Этот путь не всегда быстрый и, главное, не всегда очевидный: в череде событий легко потерять фокус с главного, пытаться стать лучшим во всем и в итоге остаться «среднячком» везде. Избежать этого помогает разработка индивидуальных планов развития (ИПР).

Меня зовут Алексей Петров. Я директор по качеству в Одноклассниках. В этой статье я хочу рассказать о наших подходах к оценке скиллов сотрудников, разработке и использованию планов индивидуального развития. 

P.S. В статье я описываю практику на примере специалистов отдела тестирования. Но подход универсален — вы можете легко адаптировать его под свои задачи и в других специальностях.

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

Xpath — залог стабильных UI-автотестов на Web и Mobile Web

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров5K

Локатор — обязательный элемент любого автотеста, который позволяет системе находить правильный путь к тестируемому компоненту интерфейса. От точности локатора и корректности его оформления зависит не только, смогут ли разобраться с локатором тестировщики и другие коллеги, но и сможет ли в целом автотест безошибочно найти искомый компонент среди множества на странице для выполнения целевой проверки.

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

Читать далее
Всего голосов 17: ↑16 и ↓1+23
Комментарии16

Выстраиваем процессы команд разработки: кейс и практические рекомендации

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров3.6K

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

Меня зовут Алексей Иванов. Я дизайн-директор в ОК. В этой статье я расскажу о нашем пути от хаоса к структуре в процессах, а также дам практические рекомендации на основе нашего опыта, которые помогут улучшить взаимодействие между командами, сделать работу каждого специалиста комфортнее и эффективнее.

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

Работа с UI-автотестами под Android: от запрета мерджа к особенностям запуска

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров2.9K

UI-автотесты под Android — отличный инструмент, который позволяет кратно сократить время на проверку разрабатываемых фич и свести к минимуму участие в ручном регрессионном тестировании инженеров по обеспечению качества. Но работать с UI-тестами надо правильно — иначе все может прийти к ситуации, при которой автотесты становятся нестабильными, а их результаты не вызывают доверие.

Меня зовут Эмилия Куцарева. Я — руководитель команды автоматизации тестирования в Одноклассниках (VK). В этой статье я расскажу о нашем подходе к работе с Android UI-автотестами: как устроен запрет мерджа, как смогли стабилизировать тесты, как настроили параметризацию запуска.

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

Расчёт вкусов пользователя для ленты рекомендаций с применением item2vec-подхода

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.5K

Ежемесячная аудитория ОК только в России превышает 36 млн человек. Причём это активные пользователи, которые хорошо взаимодействуют с нашим контентом: ставят Классы, комментируют, делают репосты. Залогом активного отклика во многом является формирование новостной ленты с учетом предпочтений каждого конкретного пользователя.

Меня зовут Дмитрий Решетников. Я тимлид команды рекомендаций в Ленте ОК. В этой статье я расскажу, как выглядит наш пайплайн рекомендации в ленте новостей, о месте item2vec в нём и результатах внедрения такого подхода.

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

Анимация в браузерах и как с ней работать

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров6.2K

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

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

Меня зовут Сергей Чикуёнок. Я ведущий разработчик в ОК. В этом материале я расскажу об основных этапах работы с анимацией для браузеров, ключевых сложностях и вариантах их нативной оптимизации. 

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

Проверка продуктовых гипотез и немодерируемые UX-исследования c применением внутренних инструментов: кейс команды OK

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров1.3K

Проверка гипотез — неотъемлемая часть работы с продуктом. Но в условиях крупного «живого» проекта, такого как ОК, зачастую возникает не одна, а много гипотез одновременно, которые нужно проверить быстро, без негативного влияния на сервис и с минимальными затратами. 

Для решения таких задач используют разные подходы, в том числе качественные и количественные UX-исследования. При этом количественные исследования часто подразумевают работу с инструментами внешних вендоров, что не всегда оптимально — дорого, есть ограничения по количеству запусков, могут быть проблемы с набором релевантной аудитории. 

Поскольку в нашей продуктовой работе много гипотез, нам было важно уйти от таких ограничений. Мы решили задействовать собственный внутренний  инструмент.

Рассказываем, что получилось в итоге.

Читать далее
Всего голосов 20: ↑17 и ↓3+21
Комментарии0

Hadoop в Облаке: история миграции сотен петабайт

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров4.2K

Миграция с «железа» в облако в большинстве случаев уже не кажется чем-то сложным или удивительным — тенденция на развертывание решений в облаке общая и устоявшаяся. Но если с переносом в облачную среду небольших ИТ-компонентов все просто, то в случае с глобальными системами на сотни петабайт данных все несколько иначе — такие кейсы встречаются редко. 

Меня зовут Михаил Марюфич. Я руководитель Data Platform в ОК, отвечаю за инфраструктуру для Big Data и машинного обучения. В этой статье я расскажу о нашем опыте переноса Hadoop с Bare Metal в облако: с чего стартовали, какие варианты рассматривали, как выстроили миграцию и с чем сталкивались в процессе.

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

Итоги RecSys 2023: разбор знаковых статей прошедшей конференции. Часть 2

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров1.2K

Команда ОК изучила материалы конференции RecSys 2023 и сделала разбор наиболее знаковых из них. Первую часть разбора читайте здесь. И подписывайтесь на наш ТГ-канал ML — это ОК. В канале мы выкладываем разборы интересных статей по теме ML и делимся экспертизой, которую накопили за 12 лет в этой сфере.

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

Итоги RecSys 2023: разбор знаковых статей прошедшей конференции. Часть 1

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров2K

ACM RecSys — международная конференция, на которой эксперты в области рекомендательных систем делятся своими наработками и исследованиями, задавая тренды развития технологий и подходов. Команда ОК изучила статьи конференции RecSys 2023 и сделала разбор наиболее интересных из них. Первая часть разбора — в этой статье (часть 1). Вторая выйдет в ближайшее время. Если вы хотите читать материалы, как только они появляются, подписывайтесь на канал ML-команды ОК. В канале мы выкладываем разборы интересных статей по теме ML и делимся экспертизой, которую накопили за 12 лет в этой сфере.

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

Как Одноклассники борются с сетевыми эффектами в A/B-экспериментах

Уровень сложностиСложный
Время на прочтение11 мин
Количество просмотров2.9K

Всем привет! На связи снова отдел продуктовой аналитики Одноклассников. Меня зовут Виктория Гордеева, я руковожу этим отделом, и сегодня я бы хотела поделиться нашими болями при проведении А/B-тестов. 

A/B-тесты во многих кейсах сопровождаются разными проблемами — высокой дисперсией в метриках, недостаточным количеством пользователей, некорректной работой «сплитовалки». Для ОК наиболее частой проблемой было нарушение предпосылки SUTVA (Stable Unit Treatment Value Assumption) — из-за большой активности аудитории нам было сложно исключить сетевые эффекты (Network effect) с влиянием одного участника эксперимента на другого. Об этом и поговорим :) 

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

Обзор современных подходов персонализации диффузионных нейронных сетей

Уровень сложностиСложный
Время на прочтение16 мин
Количество просмотров3.4K

Задача персонализации text-to-image модели состоит в донастройке предобученной нейронной сети так, чтобы она могла генерировать изображения заданного объекта в выбранных сценах. Несмотря на то, что подходы к решению этой задачи существуют, для их применения в высоконагруженных системах необходимо решить ряд проблем: большое время дообучения, высокие требования к видеопамяти, неспособность точно захватывать детали целевого объекта и др.

Меня зовут Сергей Михайлин. Я разработчик группы машинного обучения в ОК. В данной статье дан обзор современных подходов к персонализации text-to-image моделей на базе открытой архитектуры Stable Diffision. Мы приводим технические подробности каждого подхода и анализируем его применимость в реальных высоконагруженных системах. На основании собственных экспериментов по персонализации text-to-image моделей мы выделяем список возникающих при решении этой задачи проблем и перспективных способов их решения.

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

Работа с A/B-тестами в крупной соцсети: подробно об A/B платформе Одноклассников

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров3.7K

ОК — социальная сеть, которой ежемесячно пользуется более 36,5 млн уникальных пользователей из России. Наш продукт имеет сложную архитектуру, включает десятки сервисов и инструментов, которые мы постоянно совершенствуем и добавляем новые. Чтобы в процессе выкатки обновлений не появились сбои в работе этого механизма, а продуктовые цели были достигнуты, мы активно работаем с A/B-тестами. 

Меня зовут Евгения Лушпина. Я продуктовый аналитик в ОК. В этой статье я расскажу об A/B платформе ОК, сценариях ее применения и поделюсь, как у нас устроен процесс анализа экспериментов.

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

Новый взгляд на аналитику ошибок в production, или Работающая альтернатива Crashlytics

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров4.1K

Небольшое предисловие от команды ОК: Последний пост на Хабре от Одноклассников был написан ещё в декабре прошлого года. Мы пропали отсюда на 8 месяцев, но это не означает, что за это время с Одноклассниками ничего не происходило. Нами по-прежнему пользуется несколько десятков миллионов человек ежемесячно, мы по-прежнему один из самых высоконагруженных сервисов на Java в мире. Мы обновили позиционирование, отсняли десятки эпизодов собственных шоу, отказались от оценок под фото :)

Мы решили вернуться на Хабр после долгого отсутствия и сразу с рассказом о своем проекте, который назвали Tracer. О том, что это, рассказывает руководитель направления Android-разработки в проекте ОК Кирилл Попов.

Ошибки и сбои в работе мобильного приложения — беда для любого разработчика, которая непременно тянет за собой ворох проблем в виде ухудшения UI, потери лояльности и оттока аудитории, а также смещения фокуса с написания продуктового кода на исправление багов. Вместе с тем, часто полностью исключить проблемы невозможно. Поэтому, чтобы обеспечить предсказуемую работу прода и свести ущерб от сбоев к минимуму, важно своевременно проводить аналитику ошибок. Но есть кейсы, когда классических решений со стектрейсами ошибок не достаточно, чтобы понять что и, главное, почему идет не так. В таких и многих других сценариях поможет Tracer — модульный инструмент для аналитики ошибок в мобильных приложениях от OK.Tech, технической команды ОК, который можно настроить под определенную задачу и который может решать конкретные проблемы.

Читать далее
Всего голосов 35: ↑35 и ↓0+35
Комментарии6
1
23 ...

Информация

Сайт
oktech.ru
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия
Представитель
Юля Новопашина