Рубрика «Блог компании «Колёса Крыша Маркет»»

Одна из малозаметных, но важных функций наших сайтов объявлений — сохранение и отображение количества их просмотров. Наши сайты следят за просмотрами объявлений уже больше 10 лет. Техническая реализация функциональности успела несколько раз измениться за это время, и сейчас представляет из себя (микро)сервис на Go, работающий с Redis в качестве кэша и очереди задач, и с MongoDB в качестве персистентного хранилища. Несколько лет назад он научился работать не только с суммой просмотров объявления, но еще и со статистикой за каждый день. А вот делать все это действительно быстро и надежно он научился совсем недавно.

image

В сумме по проектам, сервис обрабатывает ~300 тысяч запросов на чтение и ~9 тысяч запросов на запись в минуту, 99% которых выполняются до 5мс. Это, конечно, не астрономические показатели и не запуск ракет на Марс — но и не такая тривиальная задача, какой может показаться простое хранение чисел. Оказалось, что делать все это, обеспечивая сохранение данных без потерь и чтение согласованных, актуальных значений требует определенных усилий, о которых мы расскажем ниже.
Читать полностью »

Подержанное авто в кредит за 1 минуту - 1

Вместо введения

Как и все интересные истории, эта началась достаточно давно и неожиданно. Однажды наш банк-партнер пришел к нам и сказал: “Ребята, мы научились делать скоринг в нашей системе за одну минуту. Как насчет того, чтобы объединить наши усилия и интегрировать проекты? С нас – решение и кредит, с вас – машины”. Сказать, что мы воодушевились, – ничего не сказать! Мы имели все шансы стать первыми чуть ли не в мире, кто может дать кредит онлайн на подержанное авто за одну минуту (ОДНУ МИНУТУ, КАРЛ)! Ниже я расскажу, что из этого получилось, но для начала расскажу вам, кто такие, собственно, МЫ.Читать полностью »

Ускоряйте тесты, говорили они.

И вот уже прошло почти полгода, как мы переписали свои старые необтёсанные, долгие и не стабильные функциональные тесты и перешли на быстрые, ни от чего не зависящие компонентные. Поэтому, пора делиться :)

Для тех кто не знает, компонентные тесты — это тесты которые полностью изолированы от глобального окружения и позволяют проверить те или иные кейсы, которые unit тест не смог бы охватить.

Полгода назад релиз какой-либо фичи, бывало занимало больше часа с учетом того, что код уже давно на мастере и полностью проверен, но мастер ветка никак не может добиться зеленой сборки в bamboo и тогда, встал вопрос, как дальше жить?
Читать полностью »

Что нам стоит хакатон устроить, или Как мы проводили внутренний хакатон - 1

В конце сентября мы провели свой первый внутренний хакатон. Для участия в хакатоне выбрали команду мобильной разработки – первопроходцев во всех новшествах и идеях компании.

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

Инструмент, который поможет вам выбрать лучшие идеи для продукта - 1

Давайте представим, что вы управляете продуктом, который помогает малому бизнесу осуществлять техническую поддержку своих клиентов. Вы ищете способы увеличить степень вовлечённости (engagement) и возвращаемости (retention) своих клиентов. У вас есть две идеи:

  • Дашборд, который позволит владельцам бизнеса мониторить статистику вовлечённости.
  • Чат-бот, который поможет владельцам бизнеса автоматизировать коммуникацию с потребителями.

Дашборд – это фича, которая уже несколько раз обсуждалась с пользователями и вы чувствуете, что у неё есть большой потенциал, но также осознаёте риск того, что только один крупный пользователь будет пользоваться дашбордами. Чат-бот – это то, что нравится всем сотрудникам вашей компании и продавливается руководством – это похоже на очень нужную вещь для клиентов, это классный проект. И да, чат-боты сейчас в моде.

Что вы выберете?

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

Newman и Continuous Integration на примере Atlassian Bamboo. Изобретение велосипеда - 1

Введение

В недавней статье наш боевой товарищ actopolus рассказал о том, как мы научились применять Postman для реализации функционального тестирования нашего API проекта. Научившись писать функциональные тесты, и написав их порядка полутора сотен, мы решили, что настало то самое время — время прикрутить эти тесты к нашим CI-сборочкам.

Вообще, изначально процесс интеграции Postman-тестов в сборки можно было разбить на 3 простых этапа:

  1. Формирование production-ready коллекции тестов для Postman
  2. Подготовка docker-образа среды для запуска тестов
  3. Написание тасков для того, чтобы собрать всё воедино и запускать на агентах

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

  1. Написание тасков для того, чтобы собрать всё воедино и запускать на агентах.

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

Вольный перевод статьи Итамара Гилада, консультанта по росту и стратегии, бывшего продакт-менеджера Google, о подходе к стратегическому планированию развития продуктов.

Почему вам стоит перестать использовать продуктовые роадмапы и попробовать GIST - 1

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

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

image

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

  • Модули в проекте, которые часто встречаются. Например, кастомные View
  • Когда существующий API неудобный или не позволяет сделать то, что задумали — создаем расширение для этого API

Чаще всего все проблемы были решены задолго до нас, но в нашем случае нужно было вынести часть слоя бизнес-логики и фактически весь слой, отвечающий за данные в 3 наших основных продукта объединенной компании Колёса Крыша Маркет. Все наши продукты – классифайды про автомобили, недвижимость и прочие товары. Поэтому нами, разработчиками, было решили написать одно решение для всех продуктов компании. К тому же, это облегчило нашу работу.

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

image

Привет! Весна пришла на планету, а вместе с ней и многочисленные митапы и конференции.

Мы продолжаем формировать IT-community в Казахстане и делиться опытом веб-разработки и использования передовых технологий. 21 апреля в г. Алматы проведем первую международную веб-конференцию Kolesa/Web 2018!

В программе 7 докладов от Колёса Крыша Маркет, Avito, Badoo, дискуссии в перерывах и море вкусных угощений.
Читать полностью »

image

“Разработка API сложна, Postman делает её лёгкой” © Postdot Technologies, Inc

Когда видишь описание инструментов Postman — захватывает дух, просыпается чувство всевластия над своим будущим детищем. Кажется, что и взрощенные в прошлом "монстры" наконец-то падут перед тобой!

В этой статье мы расскажем о Postman и попробуем написать свой первый скрипт.

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


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