Блог компании ЦИАН
-
Хабрахабр
Кто и в каких задачах быстрее? Coroutines, RxJava, Executor?
Вы когда-нибудь задумывались, какой из фреймворков для многопоточки самый быстрый? Я вроде и знал ответ, но задумывался периодически. В определённый момент сама судьба просто-напросто заставила меня взять и проверить. Так что если вам тоже всегда было это интересно, то я постарался протестировать, сравнить и предоставить результаты для вас. Задача Для начала разберёмся, а для чего вообще я этим занялся. Передо…
Читать далее » -
Хабрахабр
Оптимизация поиска объявлений по датам бронирования посуточной аренды
Всем привет! Меня зовут Азамат, я backend-разработчик в Циан, занимаюсь поисковыми сервисами. В статье я расскажу, как мы в команде оптимизировали поиск объявлений по датам бронирования в разделе посуточной аренды. Как мы решили проблему роста потребления cpu, ускорили сам поиск и удешевили железо. Статья будет особенно полезна тем, кто хочет лучше узнать, как работает elasticsearch, занимается разработкой и поддержкой поисковых…
Читать далее » -
Хабрахабр
Как мы попробовали Yatagan
У нас в проекте с незапамятных времён для DI используется Dagger. И в целом он нас всем устраивает. Ну, разве что кроме одного маленького пунктика — скорость сборки с kapt. Он прилично увеличивает время сборки. Казалось бы, смирись, страдай, прими ситуацию. Но относительно недавно Yandex представили библиотеку для Dependency Injection. Имя ей Yatagan. У неё есть две важных особенности —…
Читать далее » -
Хабрахабр
Многомодульный BDSM: стоит ли внедрять Gradle модули и какие типы модулей бывают?
С каждым годом многомодульность в Android становится всё популярнее и популярнее. Выходит всё больше и больше статей, рассказывающих о ней. Но есть ощущение, что везде описывается просто подход, применяемый в рамках конкретного проекта. При этом можно заметить, что каждая компания применяет многомодульность по-своему. Многомодульность — это лишь подход. Кому-то он может помочь, а кому-то и навредить. Во многих статьях лишь…
Читать далее » -
Хабрахабр
Конвергенция в многомодульном приложении
В большой команде разработчики часто сталкиваются с ситуацией, что ранее сильно похожие сущности, которые даже способны пройти «утиный тест», со временем начинают расходиться по смыслу и реализации, но все ещё продолжают хранить в себе похожие признаки. В одномодульном приложении это неприятно, а вот в многомодульном… В общем, если вы думали, что многомодульность лишь упрощает жизнь, то к концу этой статьи…
Читать далее » -
Хабрахабр
Как аналитик при помощи простых инструментов может создать ключевую ценность для информационного SaaS-продукта
Всем привет! Меня зовут Саша и я занимаюсь продуктовой аналитикой в Циан. В этой статье я расскажу, как аналитик без привлечения ML может создать ключевую ценность для информационного SaaS-продукта. Небольшая предыстория В Циан я пришел в конце 2020 в направление коммерческой недвижимости. За несколько месяцев до этого команда начала работу над амбициозной задачей – разработкой нового продукта CRE. Space (commercial…
Читать далее » -
Хабрахабр
Как мы сделали фильтр «бабушкин ремонт»
Найти и выбрать квартиру в современном мире — что может быть проще? Берёшь смартфон, скачиваешь приложение и находишь подходящий вариант. Так же просто разместить объявление о продаже или аренде недвижимости. Пользователи смотрят десятки квартир в поисках подходящей — качество ремонта для них очень важно. Вот было бы классно, если бы существовал фильтр, который может правдиво оценить новизну ремонта и отсортировать……
Читать далее » -
Хабрахабр
Сочетание Shift-Left и «Традиционной» модели тестирования в будние дни QA
В этом материале будет кратко рассказано, почему Shift-Left – это не всегда хорошо и почему не стоит забывать о традиционной модели тестирования. Рассмотрим паттерны поведения QA при тестировании обычных задач и как постепенно стать продуктивным тестировщиком, не утопая в регрессах и бесконечных проверках одного и того же. Я часто подхожу к тестированию как к игре в шахматы. Это делает процесс…
Читать далее » -
Игры
Main Loop (Главный цикл) в Android Часть 3. Другие главные циклы
Основой любого приложения является его главный поток. На нем происходят все самые важные вещи: создаются другие потоки, меняется UI. Важнейшей его частью является цикл. Так как поток главный, то и его цикл тоже главный - в простонародье Main Loop. Тонкости работы главного цикла уже описаны в Android SDK, а разработчики лишь взаимодействуют с ним. Поэтому, хотелось бы разобраться подробней, как…
Читать далее » -
Хабрахабр
Играющий тренер в ИТ: запретить нельзя допустить
«Компромисс — это искусство разделить пирог так, чтобы каждый был уверен, что лучший кусок достался ему» (Людвиг Эрхард, примерный перевод) «Играющий тренер» – термин, пришедший в IT из мира спорта. Он подразумевает, что руководитель одновременно занимается как управленческими задачами (планирование, контроль), так и решает вполне рядовые (пишет код, настраивает сервера и т.д.). Считается, что совмещать эти роли нельзя, но в жизни, как и…
Читать далее »