Блог компании ЦИАН

  • ХабрахабрФото Кто и в каких задачах быстрее? Coroutines, RxJava, Executor?

    Кто и в каких задачах быстрее? Coroutines, RxJava, Executor?

    Вы когда-нибудь задумывались, какой из фреймворков для многопоточки самый быстрый? Я вроде и знал ответ, но задумывался периодически. В определённый момент сама судьба просто-напросто заставила меня взять и проверить. Так что если вам тоже всегда было это интересно, то я постарался протестировать, сравнить и предоставить результаты для вас.  Задача Для начала разберёмся, а для чего вообще я этим занялся. Передо…

    Читать далее »
  • ХабрахабрФото Оптимизация поиска объявлений по датам бронирования посуточной аренды

    Оптимизация поиска объявлений по датам бронирования посуточной аренды

    Всем привет! Меня зовут Азамат, я backend-разработчик в Циан, занимаюсь поисковыми сервисами. В статье я расскажу, как мы в команде оптимизировали поиск объявлений по датам бронирования в разделе посуточной аренды. Как мы решили проблему роста потребления cpu, ускорили сам поиск и удешевили железо. Статья будет особенно полезна тем, кто хочет лучше узнать, как работает elasticsearch, занимается разработкой и поддержкой поисковых…

    Читать далее »
  • ХабрахабрФото Как мы попробовали Yatagan

    Как мы попробовали Yatagan

    У нас в проекте с незапамятных времён для DI используется Dagger. И в целом он нас всем устраивает. Ну, разве что кроме одного маленького пунктика — скорость сборки с kapt. Он прилично увеличивает время сборки. Казалось бы, смирись, страдай, прими ситуацию. Но относительно недавно Yandex представили библиотеку для Dependency Injection. Имя ей Yatagan. У неё есть две важных особенности —…

    Читать далее »
  • ХабрахабрФото Многомодульный BDSM: стоит ли внедрять Gradle модули и какие типы модулей бывают?

    Многомодульный BDSM: стоит ли внедрять Gradle модули и какие типы модулей бывают?

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

    Читать далее »
  • ХабрахабрФото Конвергенция в многомодульном приложении

    Конвергенция в многомодульном приложении

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

    Читать далее »
  • ХабрахабрФото Как аналитик при помощи простых инструментов может создать ключевую ценность для информационного SaaS-продукта

    Как аналитик при помощи простых инструментов может создать ключевую ценность для информационного SaaS-продукта

    Всем привет! Меня зовут Саша и я занимаюсь продуктовой аналитикой в Циан. В этой статье я расскажу, как аналитик без привлечения ML может создать ключевую ценность для информационного SaaS-продукта. Небольшая предыстория В Циан я пришел в конце 2020 в направление коммерческой недвижимости. За несколько месяцев до этого команда начала работу над амбициозной задачей – разработкой нового продукта CRE. Space (commercial…

    Читать далее »
  • ХабрахабрФото Как мы сделали фильтр «бабушкин ремонт»

    Как мы сделали фильтр «бабушкин ремонт»

    Найти и выбрать квартиру в современном мире — что может быть проще? Берёшь смартфон, скачиваешь приложение и находишь подходящий вариант. Так же просто разместить объявление о продаже или аренде недвижимости. Пользователи смотрят десятки квартир в поисках подходящей — качество ремонта для них очень важно. Вот было бы классно, если бы существовал фильтр, который может правдиво оценить новизну ремонта и отсортировать……

    Читать далее »
  • ХабрахабрФото Сочетание Shift-Left и «Традиционной» модели тестирования в будние дни QA

    Сочетание Shift-Left и «Традиционной» модели тестирования в будние дни QA

    В этом материале будет кратко рассказано, почему Shift-Left – это не всегда хорошо и почему не стоит забывать о традиционной модели тестирования. Рассмотрим паттерны поведения QA при тестировании обычных задач и как постепенно стать продуктивным тестировщиком, не утопая в регрессах и бесконечных проверках одного и того же. Я часто подхожу к тестированию как к игре в шахматы. Это делает процесс…

    Читать далее »
  • ИгрыФото Main Loop (Главный цикл) в Android Часть 3. Другие главные циклы

    Main Loop (Главный цикл) в Android Часть 3. Другие главные циклы

    Основой любого приложения является его главный поток. На нем происходят все самые важные вещи: создаются другие потоки, меняется UI. Важнейшей его частью является цикл. Так как поток главный, то и его цикл тоже главный - в простонародье Main Loop. Тонкости работы главного цикла уже описаны в Android SDK, а разработчики лишь взаимодействуют с ним. Поэтому, хотелось бы разобраться подробней, как…

    Читать далее »
  • ХабрахабрФото Играющий тренер в ИТ: запретить нельзя допустить

    Играющий тренер в ИТ: запретить нельзя допустить

    «Компромисс — это искусство разделить пирог так, чтобы каждый был уверен, что лучший кусок достался ему» (Людвиг Эрхард, примерный перевод) «Играющий тренер» – термин, пришедший в IT из мира спорта. Он подразумевает, что руководитель одновременно занимается как управленческими задачами (планирование, контроль), так и решает вполне рядовые (пишет код, настраивает сервера и т.д.). Считается, что совмещать эти роли нельзя, но в жизни, как и…

    Читать далее »


Кнопка «Наверх»