enter image description here
У лютому ми провели наш другий митап для лідов, керівників відділів, СТО і небайдужих. Для всіх, хто не зміг прийти та подивитися виступи живцем, публікуємо відео (і, звичайно, слайди). Тема всього митапа: як створити і зберегти динамічну розробку в умовах постійного зростання команди і змін у компанії.
Читати далі →

Тайсон Ніл Деграс в детекторі нейтрино
Привіт! Мене звуть Артем, і я займаюся тестуванням веб-додатків в Badoo. Я регулярно читаю профілі великих компаній на Github для того, щоб дізнатися щось нове у веб-розробці, так і в тренди (іноді в майбутні тренди). І це переклад статті про Neutrino від Mozilla.
Neutrino — це інструмент, що об'єднує в собі кращі компоненти набору сучасних JavaScript-інструментів і простоту відсутності початкових налаштувань.
Читати далі →

enter image description here
Оптимізація необхідна для збільшення швидкості завантаження та роботи сайтів, що в кінцевому підсумку підвищує задоволеність користувачів.
  • З точки зору User Experience (UX) фронтенд повинен забезпечувати швидке завантаження та роботу веб-сторінок.
  • А з точки зору Developer Experience (DX) нам хочеться, щоб і сам фронтенд теж працював швидко, був простий у використанні і взагалі був прикладом для наслідування.
Все це робить користувачів і розробників щасливішими, а заодно істотно покращує ранжування сайтів пошуковими системами. Наприклад, Google приділяє особливу увагу оптімізірованності фронтенда. Якщо ви досить довго билися над тим, щоб ваш сайт заробив більше балів Google Pagespeed Insights, то, сподіваємося, ця стаття допоможе вам краще зрозуміти, для чого все це потрібно і яке різноманітність стратегій оптимізації фронтенда.
Читати далі →

enter image description here
Привіт. Мене звуть Марко (я системний програміст в Badoo). І я уявляю вашій увазі переклад поста Go, який мені видався цікавим. Go дійсно лають за товсті бінарники, але при цьому хвалять за статичну лінковку і за зручність викладки єдиного файлу. Якщо на сучасних серверах товсті бінарники – не проблема, то на вбудованих системах – ще як. Автор описує свою історію боротьби з ними в Go.
Читати далі →

Розподілений xargs, або Виконання гетерогенних додатків на Hadoop-кластері

enter image description here
Привіт, Хабр!
Мене звати Олександр Крашенинников, я керую DataTeam в Badoo. Сьогодні я поділюся з вами простий і елегантною утилітою для розподіленого виконання команд в стилі xargs, а заодно розповім історію її виникнення.
Наш відділ BI працює з обсягами даних, для обробки яких потрібні ресурси більш ніж однієї машини. У наших процесах ETL (Extract Transform Load) в хід йдуть звичні світу Big Data розподілені системи Hadoop і Spark в зв'язці з OLAP-базою Exasol. Використання цих інструментів дозволяє нам горизонтально масштабуватися як по дисковому простору, так і за CPU/ RAM.
Безумовно, в наших процесах ETL існують не тільки великі завдання на кластері, але і машинерія простіше. Широкий пласт завдань вирішується поодинокими PHP/ Python-скриптами без залучення гб оперативної пам'яті і дюжини жорстких дисків. Але в один прекрасний день нам треба було адаптувати одну CPU-bound завдання для виконання в 250 паралельних инстансов. Настала пора маленькому Python-скрипту покинути межі рідного хоста і полинути у великий кластер!
Читати далі →

Як працювати з JIT

enter image description here
У деяких внутрішніх системах для швидкого пошуку за великим бітовому масиву ми в Badoo використовуємо JIT. Це дуже цікава і не найвідоміша тема. І, щоб виправити таку прикру ситуацію, я перевів корисну статтю Елая Бендерски про те, що таке JIT і як його використовувати.
Читати далі →

Обходимо обмеження в Calabash-Android з UIAutomator

enter image description here
Appium і Calabash — одні з найпопулярніших фреймворків для автоматизації тестування Android-додатків. У кожного, звичайно, є свої переваги і недоліки. Їх основні обмеження:
  • Calabash: може управляти тільки користувальницьким інтерфейсом, який є частиною тестового програми, зокрема, немає підтримки тестування повідомлень;
  • Appium: не може викликати backdoor-методы в додатках зразок Calabash (ці методи дуже корисні для налаштування стану досліджуваного додатки).
Ми в Badoo користувалися Calabash для автоматизації тестування, коли Appium тільки починав розвиватися. Це дуже стабільний інструмент, і він досі працює швидше Appium, так що ми не збираємося мігрувати. Але щоб автоматизувати таке багатофункціональне додаток, як Badoo, нам довелося обійти обмеження Calabash на роботу тільки з інтерфейсом тестового додатку.
Коли ми прийшли до такого рішення. І хоча воно ще працює, його надійність знижується із-за безлічі варіацій пристроїв з різною діагоналлю, різними версіями Android і так далі.
У цій статті я розповім, як ми вирішили проблему з допомогою додавання в Calabash підтримки UIAutomator2. Якщо ви занадто нетерплячі, то скажу по секрету, що в кінці є посилання на готовий до використання Ruby Gem.
Читати далі →

Куди податися програмісту за знаннями у цьому році

image
Highload + + в Москві, листопад 2016
Ми зробили для вас добірку кращих (на нашу думку) виступів з IT-конференцій, на які збираємося поїхати в першій половині 2017 року (як і обіцяли).
Все це буде корисно web-програмістам (PHP, Go, JS), QA і DevOps. Так, у списку досить мало конференцій, що проводяться на території Росії і країн СНД, але на сьогоднішній день їх, на жаль, в принципі не так багато. Так що, якщо раптом ви знаєте про якому-небудь стоїть заході, доповнюйте наш список в коментарях.
Читати далі →

11 лютого: Techleads meetup. Як створити і зберегти динамічну розробку

enter image description here
Настав час анонсувати наш другий за рахунком Techleads-митап для лідов, керівників відділів і СТО, створений, щоб об'єднати на одному майданчику технології, розробку і управління. Він пройде 11 лютого в офісі Badoo в Москві. Початок: 12:00.
На минулій зустрічі ми обговорювали теми мобільного веба, тестування, технологій і комунікацій. На цей раз всі виступи на митапе об'єднані однією загальною темою: як створити та зберегти динамічну розробку в умовах постійного зростання команди і змін в компанії.
Тема настільки цікава, що ми не могли зупинитися, поки вибирали спікерів на митап. Вам сподобається: зі своїми історіями виступлять Макс Лапшин (Erlyvideo), Євген Потапов (ITSumma), від Badoo — Олексій Рибак, Ілля П'ятини (CarPrice) і Андрій Шелехин (Tinkoff.ru). Під катом – розклад виступів.
Читати далі →

Новорічні обіцянки Go-розробника

image
Це переклад посади одного з головних розробників мови Go, Расса Коксу, де він в традиційному для новорічного часу форматі дає собі обіцянки і планує виконати їх.
Настав час прийняття рішень, і я подумав, що має сенс трохи розповісти про те, над чим я хочу працювати у новому році стосовно Go.
Кожен рік я ставлю перед собою мету — допомогти Go-розробникам. Я хочу бути впевнений, що те, що роблять творці Go, робить позитивний вплив на всіх Go-розробників. Тому що у них є маса способів зробити помилку: наприклад, можна витратити занадто багато часу на очищення або оптимізацію коду, яким це не потрібно; відгукуватися тільки на найпоширеніші або недавні скарги і запити; надто зосереджуватися на короткострокових поліпшення. Тому так важливо поглянути на все зі сторони і зайнятися тим, що принесе найбільше користі для Go-спільноти.
У цій статті я опишу кілька основних завдань, на яких я зупинюся в цьому році. Це мій власний список, а не всієї команди творців Go.
Читати далі →