• Исчерпывающее руководство по использованию HTTP/2 Server Push

    • Перевод


    Привет! Меня зовут Александр, и я – фронтенд-разработчик в компании Badoo. Пожалуй, одной из самых обсуждаемых тем в мире фронтенда в последние несколько лет является протокол HTTP/2. И не зря – ведь переход на него открывает перед разработчиками много возможностей по ускорению и оптимизации сайтов. Этот пост посвящён как раз одной из таких возможностей – Server Push. Cтатья Джереми Вагнера показалась мне интересной, и поэтому делюсь полезной информацией с вами.

    Читать дальше →
  • Что общего у мобильного QA и осьминога



      Привет! Я Катя, и я – трудоголик тестировщик самого популярного приложения для новых знакомств.

      Итак, раннее утро, вы – мобильный QA. Вы приходите на работу, завариваете крепкий кофе и хотите взять пару мобильных устройств для тестирования новой фичи, осознавая, какие муки выбора вам предстоят. Что это будут за устройства?

      Рано или поздно каждый мобильный тестировщик задаётся вопросом, на каком количестве устройств тестировать новый функционал, чтобы поймать максимальное количество девайсозависимых багов, потратив минимум времени. Автотесты ещё не написаны, перед вами абсолютно новые фичи. И если с iOS есть хоть какая-то ясность, и список устройств ограничен, то Android «расплодился» в полнейший ад. Вы удивитесь, но для счастья нужно всего три–четыре Android-устройства. Я хочу рассказать, как с точки зрения опытного тестировщика их выбрать.
      Читать дальше →
    • Спроси backend-разработчиков Badoo. Часть 1. Платформа



        Нам очень нравится формат AMA (ask me anything) на Reddit, когда кто-нибудь (в нашем случае – команда разработчиков) приходит в сабреддит AMA и говорит, что готов отвечать на заданные вопросы. Из самых запоминающихся сессий Ask Me Anything, например, команда инженеров Space X, или инженеры из Google, и даже действующий президент США Барак Обама четыре года назад отвечал на вопросы на Реддите. Недавно наша Android-команда проводила AMA и в онлайн-режиме отвечала на вопросы разработчиков.

        Но в России нет своего Реддита. Зато есть свой Хабр. Поэтому мы решили прийти с форматом «задай нам вопрос» сюда. И не с пустыми руками, как велят правила AMA. Чтобы вам было проще понять тему, мы выбрали одну из наших команд – «Платформу» – и попросили ребят рассказать, чем они занимаются, на чём программируют и чего добились за время существования команды. И подвели небольшие итоги уходящего 2016 года. Поехали!

        Оглавление


        1. Чем занимается «Платформа»
        2. Сервисы: Pinba, SoftMocks и другие
        3. Системное программирование. Как мы начали использовать Go и к чему это привело
        4. Фотографии
        5. Скриптовое облако
        6. LSD: Live Streaming Daemon
        7. Cassandra Time Series: что это и как работает
        8. Badoo AMA: задай вопрос разработчикам «Платформы»

        Пруф, что это действительно мы.
        Читать дальше →
      • Как работают ИТ-специалисты. Алексей Рыбак, глава разработки Badoo

          image

          7 и 8 ноября в Сколково прошла конференция HighLoad++ 2016. Более 200 экспертов выступали с докладами о высоконагруженных сервисах, проблемах работы с ними, администрировании и многом другом.

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

          С каждым мы провели интервью в формате блиц-опроса. Будет интересно выяснить, что объединяет этих IT-специалистов, в чем они похожи. Возможно, их ответы помогут выявить какие-то общие закономерности, полезные советы, которые помогут многим из нас.
          Читать дальше →
        • Badoo перешли на PHP7 и сэкономили $1M

            Badoo перешли на PHP7 и сэкономили $1M

            Мы сделали это! Несколько сотен наших application-серверов переведены на PHP7 и прекрасно себя чувствуют. Насколько нам известно, это второй переход на PHP7 проекта такого масштаба (после Etsy). В процессе мы нашли несколько очень неприятных багов в системе кеширования байт-кода PHP7, но они исправлены. А теперь — ура! — благая весть для всего PHP-сообщества: PHP7 действительно готов к продакшену, стабилен, потребляет значительно меньше памяти и дает очень хороший прирост производительности. Ниже мы подробно расскажем, как мы перешли на PHP7, с какими трудностями столкнулись, как с ними боролись и какие результаты получили.
            Читать дальше →
          • Как устроено сплит-тестирование в Badoo

              Если в Google ввести запрос «a b тестирование», то по теме выпадает довольно много статей, но в них больше теории и ориентированы они на менеджеров, а в качестве инструментов предлагаются готовые клиентские реализации, вроде Google Analytics. Также есть статья про очень простую серверную реализацию (в реалиях авторов, я думаю, этого вполне достаточно).

              Сегодня я расскажу о том, как это происходит у нас, в Badoo, при огромном количестве пользователей по всему миру.

              У нас был целый «зоопарк» инструментов для сплит-тестирования во главе с A/B фрэймворком, часть из которых разрабатывалась для других целей. Помимо прочих недостатков, все эти инструменты использовали примерно один и тот же способ для разделения пользователей на варианты — это хеширование ID пользователя плюс «соль». Такой подход нас не удовлетворял, и было принято решение разработать новую версию, в которой можно было бы избежать недостатков старых версий.
              Читать дальше →
            • Добавление оператора диапазона в PHP

              • Перевод
              image
              На картинке — Ancient Psychic Tandem War Elephant © Adventure Time

              В этой статье будет рассмотрен процесс внедрения в PHP нового оператора. Для этого будут выполнены следующие шаги:

              • Обновление лексического анализатора: он будет знать о синтаксисе нового оператора, что позволит потом превратить его в токен.
              • Обновление парсера: система будет знать, где может использоваться этот оператор, а заодно какова его приоритетность и ассоциативность.
              • Обновление этапа компиляции: здесь происходит обработка (traverse) дерева абстрактного синтаксиса (AST) и извлечение из него кодов операции.
              • Обновление виртуальной машины Zend: во время выполнения скрипта она используется для обработки интерпретации нового кода операции для оператора.

              В общем, в этой статье будут кратко рассмотрены несколько внутренних моментов PHP. Выражаю горячую благодарность Никите Попову за помощь в доработке этой статьи.
              Читать дальше →
            • Тестирование мобильных приложений: tips & tricks

                Наша новая статья представляет собой список рекомендаций и советов. Из неё вы узнаете:

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

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

                Как облегчить процесс тестирования?


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

                2. Скриншоты, логи и видео — лучшие аргументы тестировщика!
                К сожалению, с логами «общения» с сервером зачастую не всё так гладко, как с клиентскими логами. Обычно они добавляются скорее для удобства разработчика при отладке работы с сервером, чем для работы тестировщика.
                Читать дальше →
              • Видео докладов с конференции «Российские интернет-технологии 2015»

                  Рады поделиться с вами видео докладов с конференции «РИТ++». Отдельным постом выложим видео и слайды с LoveQA митапа.

                  1.«Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей», Павел dpp Довбуш (Badoo).
                  Рассказали как сделана статистика и аналитика скорости работы (UX) приложений Badoo (Web, Mobile-web, iOS, Android, Windows). Про общие концепции и примеры, что и как измерять. Про то, как собирать данные со 100% пользователей проекта и выдержать нагрузку.
                  А также о том, как из OpenSource решений собрать систему сбора и визуализации статистики для своего проекта.
                  Бонус: выложили наше «real user monitoring» решение Jinba в OpenSource.


                  Читать дальше →
                  • +13
                  • 5,8k
                  • 4
                • Обзор докладов конференции QCon London 2015

                    Привет, меня зовут Макс Матюхин, я PHP-программист в компании Badoo. В прошлом месяце в Лондоне прошла очередная Международная конференция разработчиков QCon 2015. Я побывал на ней и теперь хочу поделиться с вами своими впечатлениями о мероприятии и рассказать о самых интересных, на мой взгляд, выступлениях. Из этой статьи вы узнаете чуть больше про архитектуру Uber, Spotify, CloudFlare, а также о том, как Google управляет своей инфраструктурой и многом другом.

                    Впервые QCon состоялась в 2007 году в Лондоне и Сан-Франциско. С тех пор она стабильно набирает популярность и расширяет географию, и в этом году она пройдет в 8 городах. Лондонская QCon проходит в самом сердце британской столицы, в двух шагах от Вестминстерского Аббатства. В разное время на QCon выступали такие известные личности, как Martin Fowler, Kent Beck, Erik Meijer, Steve Vinoski, Joe Armstrong, Rich Hickey и многие другие.
                    Читать дальше →
                  • 15 советов и хитростей инструментов разработчика Chrome, которые вы обязаны знать

                    • Перевод
                    Сегодня Google Chrome является самым популярным браузером среди веб разработчиков. С быстрым, шести недельным, циклом релизов и мощным набором постоянно расширяющихся инструментов разработчика, превратившим браузер в инструмент, который вы обязаны иметь. Большинство из вас, вероятно, знакомы со многими его функциями, такими как «живое» редактирование CSS, используя консоль и отладчик. В этой статье мы с вами рассмотрим 15 захватывающих советов и хитростей, которые позволят улучшить вашу производительность еще больше.
                    Читать дальше →
                  • Процесс разработки и тестирования демонов

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

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

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

                      В качестве VCS у нас используется Git, для непрерывной интеграции — TeamCity, а в роли баг-трекера выступает JIRA. Для тестирования мы используем PHPUnit. Разработка демонов, как и остального сайта, ведется по принципу «фича ― ветка». Для того чтобы понять, что это, мы рассмотрим проекции нашего flow на Git и на JIRA.
                      Читать дальше →
                    • Задай вопрос эксперту и выиграй билет на Highload!

                        На этой неделе в Москве пройдет одна из лучших технологических конференций HighLoad 2014.
                        Мы хотим дать возможность «вскочить на уходящий поезд» тем, кто очень хотел попасть на конференцию, но не успел или не смог купить билет. Badoo дарит 2 билета на конференцию за самые хорошие вопросы к экспертам, которые вы оставите в комментариях.
                        Вопросы должны быть по теме, в которой разбираются эксперты, плюс они должны быть сложными и интересными.
                        В идеале вы рассказываете о какой-то сложности, с которой столкнулись в работе, как решали ее и почему не получилось + спрашиваете совет. Можно задавать любое количество вопросов.
                        Итоги подведем завтра, 30 октября, в 16-00.
                        • Алексей Рыбак
                          Глава разработки Badoo (Head of Engineering)
                          Может проконсультировать по вопросам управления разработкой в крупном проекте, масштабирования и производительности, мониторинга, поддержки, BigData и Business Intelligence.
                        Все эксперты
                      • Кастомные социальные кнопки

                        Недавно участвовал в разработке одного проекта — фото конкурса. По задумке, рейтинг фото альбомов должен формироваться из суммы всех публикаций в социальных сетях: Facebook, Вконтакте, Twitter. Т.е. общий рейтинг фотоальбома расчитывается:
                        Рейтинг фотоальбома = кол-во «Share» в Facebook + кол-во «Сохранить» в Вконтакте + кол-во «Retweet» в Twitter

                        На макетах, вид кнопок несколько отличался от предоставляемых социальными сетями плагинов, формируемых функциями api. В частности вид счетчиков:
                        image
                        Помимо несоответствий с дизайном, каждый плагин формирует излишний хтмл код, а хотелось бы лаконичный.

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

                        Итак:
                        • количество лайков будем получать от REST сервисов каждой социалки
                        • кнопки рисуем свои и обрабатываем событие click

                        Читать дальше →
                      • 11 марта 2007 в 13:52

                        Радио-T #26. Bobuk и Umputun

                        прослушан 271 раз
                      • Географические координаты всех городов на Земле

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

                          Информация, предоставляемая для каждого населенного пункта:
                          — географические координаты
                          — высота над уровнем моря
                          — часовой пояс
                          — используется ли летнее/декретное время
                          — ориентировочное количество жителей (обычно, сильно заниженное)

                          Также отображается небольшая карта, метеорологическая информация и список ближайших аэродромов.

                          Теперь сижу и думаю, как заполучить эту базу данных. Никакой контактной информации на сайте не нашел, ссылка «Credits» ведет вникуда. Просто стащить всю эту базу через http, видимо, не представляется возможным: только по России там больше 200000 точек. Это несколько суток непрерывного парсинга.

                          Update:
                          На сайте geonames.org найдена готовая к скачиванию база данных с подробной информацией по населенным пунктам всего мира. Только по России там 249 516 объектов.
                          Огромное спасибо, sapl!
                        • Инфраструктура MySpace не справляется с нагрузкой

                            Журнал Baseline опубликовал подробный технический анализ инфраструктуры сайта MySpace.com. Как известно, это один из крупнейших веб-сервисов в интернете, который сейчас спорит с порталом Yahoo за звание самого посещаемого сайта в Сети.
                            Читать дальше →
                          • Веб 2.0 Список проектов

                              Здесь нашел.
                              Чего нашел? А вот что:

                              AUDIO 2.0
                              Bebop — Compare music calendar against your iTunes catalogue. www.bebopular.com
                              Clickcaster — Record, license, publish & promote your radio show. www.clickcaster.com
                              Difm — Radio community. www.di.fm
                              Dottunes — Share your iTunes. www.dottunes.net
                              Enablr — Transcribe podcasts, Text2Snailmail,… www.enablr.com
                              Fluctu8 — Create & share your sourcelists. fluctu8.com
                              Gcast — Podcasting tools & hosting. www.gcast.com
                              Genielab — Explore, recommend & rate music. genielab.com
                              Ituneslove — Share your music tastes. www.ituneslove.com
                              Jamendo — Review, tag, rate & share music. www.jamendo.com/en
                              Lastfm* — Profile your taste, share, personalize your radio. www.last.fm

                              Читать дальше →
                            • Закон логарифмирования зарплат.

                                Снова попался мне очень интересный документ «Распределение численности работников по размеру зарплаты. Россия, Тюменская область,
                                Ямало–Ненецкий Автономный Округ, апрель 2005 г.». Так как мои предыдущие математические выкладки «коэффициент богатства» вызвали дискуссию, намного интересней самой заметки, рискнул перейти от коеффициентов к законам. Итак, встречайте, «Закон логарифмирования зарплат».
                                Читать дальше →
                              • Видео докладов с конференции CodeFest 2014

                                  Мы рады поделиться с вами записью наших выступлений и видео с уникальной секции по высоким нагрузкам с конференции CodeFest. Вы можете задавать ваши вопросы к докладам в комментариях и мы на них обязательно ответим.

                                  1. «Панель: Тренды разработки в высоконагруженных интернет-проектах».
                                  Алексей fisher Рыбак (Badoo) собрал вместе лучших экспертов из Яндекса, Mail.ru, 2ГИС и Communico и обсудил с ними современные тенденции в разработке и поддержке больших высоконагруженных проектов. Плюс эксперты рассказали об интересных решениях и поделились личным опытом.


                                  Читать дальше →