Рубрика «Блог компании Badoo»

Локализация приложений: как мы подружили перевод и разработку - 1

Привет! Я ведущий разработчик системы локализации в Badoo. Мы работаем с несколькими большими проектами: Badoo, Bumble, Lumen и Chappy. Сейчас в системе локализации у нас находятся 150 000 фраз и текстов, переведённых на 52 языка. При этом каждое из наших приложений имеет свою аудиторию, свои рынки, свой стиль общения с пользователями, версии для веба и для мобильных платформ.

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

Статья написана по мотивам моего доклада на конференции Highload++ в ноябре.

Читать полностью »

В любом приложении, состоящем более чем из одного экрана, существует необходимость реализовать навигацию между его компонентами. Казалось бы, это не должно быть проблемой, ведь в UIKit есть достаточно удобные компоненты-контейнеры вроде UINavigationController и UITabBarController, а также гибкие методы модального показа экранов: достаточно использовать нужную навигацию в нужное время.
Роутинг для iOS: универсальная навигация без переписывания приложения - 1
Однако, как только в приложении появляется переход на какой-то экран по push-уведомлению или ссылке, всё становится несколько сложнее. Сразу появляется масса вопросов:

  • что делать с view-контроллером, который сейчас находится на экране?
  • как переключить контекст (например, активную вкладку в UITabBarController)?
  • есть ли в текущем стеке навигации нужный экран?
  • когда следует игнорировать навигацию?

Читать полностью »

Badoo регулярно участвует со стендом в выставках IT-конференций. Поэтому каждый год мы с коллегами — инженерами и деврелами — придумываем, что бы такого айтишного сделать, чтобы не скучать в перерывах между докладами.

Меня зовут Иван, я frontend-разработчик. В этой статье вместе с коллегой и DIY-энтузиастом lilek Юрой Лилековым мы расскажем, как при помощи двух красных кнопок, одного микроконтроллера, кода на React и 250 слов на айти-тематику мы сделали игру «IT-угадайка» и собрали уютную тусовочку на Highload++ и Heisenbug.

Две красные кнопки, паяльник и React: как мы делали движуху для IT-конференции - 1

Читать полностью »

Мы в Badoo активно занимаемся переходом на PHP 7.4 и с большим энтузиазмом ждём возможности использовать новую функцию preload. Не так давно мы рассказывали о наших экспериментах с ней.

Судя по всему, сообщество взбудоражено не меньше, чем мы. Разработчики фреймворков активно обсуждают возможности внедрения прелоада (а некоторые уже сделали его поддержку). Теперь дошла очередь и до менеджера зависимостей Composer. 

Preload в php 7.4: Composer и выбор файлов для предзагрузки - 1

Italo Baeza написал статью, в которой высказал своё мнение о том, как Composer должен работать с прелоадом. Я решил поделиться переводом этого текста, а заодно и переводом другой его статьи — о том, что ответили на предложение сами разработчики Composer, а также о новом инструменте, который облегчает работу с прелоадом.
Читать полностью »

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

Тысяча и один UI-баг, или Как помочь разработчику избегать типовых ошибок в UI - 1

За четыре года работы в Badoo из более чем тысячи багов, которые я встретила, примерно 20% были связаны с UI и UX. Треть из них незначительны в масштабах продукта, но тем не менее требуют ресурсов на обработку, ведь они напрямую влияют на лояльность пользователя. Такие баги реально отловить только вручную. Плюс ко всему они часто встречаются только на определённых устройствах в определённых условиях.

Можно ли предотвратить эти баги ещё на этапе проектирования новой функциональности и избежать переработки интерфейсов после тестирования? Мой ответ — да! 

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

Шесть рецептов для начинающего тимлида: как всё успевать и развивать команду - 1

Привет! Меня зовут Дмитрий Ли, я тимлид одной из команд разработки бэкенда в Badoo.

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

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

Рецепты, которыми я хочу поделиться, в большей степени пригодятся начинающим тимлидам: я записал их как своеобразное наставление себе самому несколько лет назад. Эта статья написана по мотивам моего доклада на TeamLeads Conf.
Читать полностью »

Открытый микрофон: backend. Регистрация гостей - 1

12 декабря приглашаем слушателей на «открытый микрофон», посвященный разработке бэкенда. Мы позаимствовали идею у стэндаперов и хотим помочь спикерам «обкатать» технические доклады в спокойной обстановке. Собираемся в 19:00 в офисе Badoo (Москва, Цветной б-р, 2).

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

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

Формат опробуют пять спикеров, у которых будет всего десять минут, чтобы изложить свои идеи. Подробности под катом.
Читать полностью »

Сегодня, наконец, опубликован релиз PHP 7.4!Вышел PHP 7.4! Как Badoo переходит на новую версию - 1

Его новые фичи уже были многократно описаны, в том числе и на Хабре. Это стрелочные функции, типизированные свойства классов и ещё много всякого синтаксического сахара. Но больше всего мы ждали новый релиз из-за производительности: в версии 7.4 не только появился preload, но и сам PHP стал значительно быстрее.

Плохая (или хорошая?) новость — с выходом PHP 7.4 прекращается активная поддержка PHP 7.2. Его последний релиз запланирован на середину декабря. Мы давно проводим эксперименты с PHP 7.4, а недавно активно занялись переходом на него, так как сейчас мы на уже почти не поддерживаемой версии 7.2.

Поздравляю всех с долгожданным релизом! А ниже расскажу немного о том, как мы переходим на новую версию.
Читать полностью »

Открытый микрофон: backend. Приглашаем спикеров - 1

Если вы подумываете выступить с докладом, тем более впервые, то самое сложное — поверить в свою идею. Я знаю случаи, когда люди годами вынашивают идею доклада, видят во сне свое выступление, слышат гробовое молчание зала и просыпаются в холодном поту. В итоге даже выступить перед своими коллегами в переговорке и рассказать о новом проекте или экспериментах с технологиями банально страшно.

«Это никому неинтересно», «Я не делаю ничего такого», «Мне нечего рассказывать» — классические переживания большинства спикеров-инженеров.

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

Страх присущ всем. Чтобы проверить идею, обкатать тему и оценить вероятность тапок, летящих из зала, standup-артисты практикуют мероприятия в заранее заявленном формате «открытого микрофона». Это когда у вас есть небольшой морально подготовленный зрительный зал, собственно микрофон и только 10 минут, чтобы рассказать все, что хочется. 

В общем, мы решили позаимствовать эту идею, и 12 декабря хотим организовать свой «открытый микрофон» с кодом и слайдами. Приглашаем спикеров по теме разработки бэкенда!
Потенциально интересные темы и другие детали под катом.
Читать полностью »

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

PHP Composer: фиксим зависимости без боли

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

В этой статье я расскажу подробнее о том, почему форки — это неудобно, а также рассмотрю два плагина для Composer для патчинга зависимостей: чем они отличаются, как ими пользоваться и в чём их преимущества. Если вы сталкивались подобными проблемами или вам просто интересно, добро пожаловать под кат. Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js