Как стать автором
Обновить

Компания Ситимобил временно не ведёт блог на Хабре

Сначала показывать

Псевдокод для тестирования

Время прочтения 3 мин
Просмотры 3K
Блог компании Ситимобил Тестирование IT-систем *Тестирование веб-сервисов *Тестирование мобильных приложений *

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

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

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

PRINT 'read more'
Всего голосов 9: ↑8 и ↓1 +7
Комментарии 3

Новости

Не стоит бояться теней

Время прочтения 10 мин
Просмотры 5.9K
Блог компании Ситимобил Разработка мобильных приложений *Разработка под Android *

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

Не боюсь
Всего голосов 30: ↑27 и ↓3 +24
Комментарии 22

JNI, часть 3: производительность Java/JNI/NDK

Время прочтения 5 мин
Просмотры 3.6K
Блог компании Ситимобил Java *C++ *Разработка под Android *

Всем привет! Меня зовут Роман Аймалетдинов, я разрабатываю клиентское приложение Ситимобил. Продолжаю свою серию статей по JNI, так как технология используется редко, но иногда она бывает очень полезной (или просто интересной). В этот раз я покажу замеры производительности, достаточно тривиальные, но отображающие суть. И если вы не знакомы с JNI, но тема интересна, то советую ознакомиться с первой и второй частью этой серии статей.

Читать далее
Всего голосов 20: ↑18 и ↓2 +16
Комментарии 7

JNI Часть 2: Примеры

Время прочтения 5 мин
Просмотры 4.7K
Блог компании Ситимобил Программирование *Java *
Туториал

Всем привет! Меня зовут Роман Аймалетдинов, я разрабатываю клиентское приложение Ситимобил. Продолжаю свою серию статей по JNI, так как технология используется редко, но иногда она бывает очень полезной (или просто интересной). В этот раз я покажу примеры решений на JNI, которые совсем немного сложнее, чем hello world. И если вы не знакомы с JNI, то советую начать с первой части.

Читать далее
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 5

JNI Часть 1: Введение

Время прочтения 5 мин
Просмотры 14K
Блог компании Ситимобил Программирование *Java *
Туториал

Всем привет! Меня зовут Роман Аймалетдинов и я разрабатываю клиентское приложение Ситимобил. Решил написать небольшую серию из трех статей по JNI, так как технология используется редко, но иногда она бывает очень полезной. Несмотря на то, что я разрабатываю классические приложения под Android, иногда хочется посмотреть технологии рядом со своей специализацией.

Читать далее
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 11

Куда поехать в пятницу вечером, если ты в Питере. Сравнение алгоритмов геокластеризации

Время прочтения 7 мин
Просмотры 4K
Блог компании Ситимобил Алгоритмы *Геоинформационные сервисы *Машинное обучение *

Всем привет, меня зовут Максим Шаланкин, в Ситимобил я занимаюсь машинным обучением. Мы постоянно принимаем решения на основе больших данных. Даже в пятницу вечером мы доверяем алгоритмам выбор места отдыха. А кто же, если не наши клиенты, лучше всего знают, где в Санкт-Петербурге можно хорошо отдохнуть?

Врууум
Всего голосов 32: ↑29 и ↓3 +26
Комментарии 7

Импакт-анализ на примере Android-проекта

Время прочтения 4 мин
Просмотры 2.2K
Блог компании Ситимобил Разработка под Android *Тестирование мобильных приложений *

Одной из самых дорогих по времени операций на CI-сервере является прогон автотестов. Есть множество способов их ускорения, например, распараллеливание выполнения по нескольким CI-агентам и/или эмуляторам, полная эмуляция внешнего окружения(backend/сервисы Google/вебсокеты), тонкая настройка эмуляторов(Отключение анимации/ Headless-сборки / отключение снепшотов) и так далее. Сегодня поговорим про импакт-анализ или запуск только тех тестов, которые связаны с последними изменениями в коде. Расскажу какие шаги нужны для импакт-анализа и как мы реализовали это в нашем проекте.

Читать далее
Всего голосов 27: ↑27 и ↓0 +27
Комментарии 0

Ситимобил вместе с экспертами из разных компаний подводит итоги года в разных областях Data Science

Время прочтения 3 мин
Просмотры 1.3K
Блог компании Ситимобил Data Mining *Big Data *Data Engineering *

Всем привет!

Подходящий к концу 2021 год был очень насыщенным — нам удалось провести 5 митапов с интересными спикерами и экспертами рынка Data Science и Machine Learning. Мы узнали много интересного, и это здорово!

Каждый год выходят сотни статей по машинному обучению, нейронным сетям, рекомендательным системам и другим областям связанным с искусственным интеллекта. Появляются тысячи новых репозиториев, API и сервисов с использованием современных технологий Data Science.

А что из этого действительно стало важным событием? На какие технологии и сервисы стоит обратить внимание? На эти вопросы ответили эксперты по Data Science.

Читать
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 0

Блокировки MySQL: виды, проблемы и способы обнаружения

Время прочтения 27 мин
Просмотры 21K
Блог компании Ситимобил MySQL *SQL *Серверная оптимизация *Серверное администрирование *

Рано или поздно любой разработчик или администратор СУБД, имеющий дело с MySQL, сталкивается с проблемой блокировок. Всё дело в природе MySQL как системы с конкурентным доступом на чтение/запись. Я расскажу о видах блокировок в MySQL, их преимуществах и недостатках, о проблемах, которые они вызывают, а также дам полезные советы по обнаружению и способам борьбы с блокировками.

Читать далее
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 2

Как мы учились находить заказы по пути домой

Время прочтения 7 мин
Просмотры 4.6K
Блог компании Ситимобил Python *Машинное обучение *

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

Нам жаловались на некоторые предложения: водители считали, что им предлагают заказы не по пути. Поэтому они часто отказывались от заказа после подачи автомобиля, что приводило к плохому пользовательскому опыту и у водителей, и у пассажиров. Мы решили пересмотреть алгоритм. Самый сложный вопрос в этой задаче — «что такое по пути?». Оказалось, каждый водитель понимает это по-своему.

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

Поехали
Всего голосов 27: ↑27 и ↓0 +27
Комментарии 8

React. Как не стать заложником макета, или пример использования принципа единой ответственности

Время прочтения 6 мин
Просмотры 5.2K
Блог компании Ситимобил JavaScript *ReactJS *

Пожалуй, каждый разработчик сталкивается с ситуациями, когда два и более компонентов оказываются тесно связаны логически, но в DOM отображаются раздельно, вперемешку с другими элементами UI. Лобовое решение задачи синхронизации таких разрозненных модулей ведёт к просачиванию их состояния и логики наружу в третьи компоненты. Давайте обсудим эту ситуацию и способы её разрешения.

Для наглядного примера из практики рассмотрим приложение «Такси ВКонтакте», а именно указание «нитки» маршрута.

Поехали
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 6

Тестирование с нуля, или Один в поле — тестировщик

Время прочтения 3 мин
Просмотры 12K
Блог компании Ситимобил Тестирование веб-сервисов *

Никто.

Абсолютно никто.

Вы — единственный тестировщик в проекте.

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 1

Как справиться с отсутствием личных проектов

Время прочтения 4 мин
Просмотры 10K
Блог компании Ситимобил Здоровье

Постоянно читая статьи на тему того, как %user% буквально на коленке научил свою кофеварку выгуливать собаку, начинаешь чувствовать себя немного неуютно. Складывается ощущение, что вокруг тебя взрослый мир и все вокруг знают больше тебя, умеют лучше и т.д. 

Читать далее
Всего голосов 23: ↑19 и ↓4 +15
Комментарии 11

Как не выйти в Window при работе с Window?

Время прочтения 9 мин
Просмотры 6.3K
Блог компании Конференции Олега Бунина (Онтико) Блог компании Ситимобил Программирование *Разработка мобильных приложений *Разработка под Android *

Многие разработчики разбиваются о жизненные циклы onResume, onActivity, onCreate, которые связаны с отображением UI внутри приложения, будь то Activity или фрагмент. Некоторые методы работы со стремительно развивающимся андроидом приходится искать интуитивно, потому что официальная документация не дает полной картины. Стоит разобраться, где заканчиваются знания и начинается интуиция.

Я Дмитрий Манько, андроид-разработчик в компании Ситимобил, попробую объяснить, что такое onResume() и почему определение от Google не совсем корректное. Разберу иерархию внутри Activity, покажу когда происходит взаимодействие и какие события для этого нужны. А ещё объясню, почему фрагмент дешевле и проще Activity.

Читать далее
Всего голосов 25: ↑25 и ↓0 +25
Комментарии 3

Apple Watch, статистика и Siri — как мы провели iOS-хакатон

Время прочтения 3 мин
Просмотры 1.3K
Блог компании Ситимобил Разработка мобильных приложений *Хакатоны

Всем привет, меня зовут Семён, я iOS-разработчик в Ситимобиле. 🙋‍♂️

Недавно мы провели внутренний хакатон для iOS-разработчиков. Расскажу, зачем мы это сделали, как всё прошло и что получилось.

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 0

Go и MySQL: настраиваем пул соединений

Время прочтения 14 мин
Просмотры 16K
Блог компании Конференции Олега Бунина (Онтико) Блог компании Ситимобил MySQL *Go *
✏️ Технотекст 2021

Каждый день мы пишем код в условиях высоких нагрузок, и нередко в таких случаях сталкиваемся с проблемами, связанными с базой данных. Мы в компании используем MySQL, поэтому я расскажу про конфигурирование соединений с этой базой данных. Пройдемся по основным моментам, на которые нужно обращать внимание при работе с MySQL средствами языка Go: 

немного затронем основы клиент-серверного протокола MySQL, его базовое устройство и принципы работы;

дальше перейдем к Go части и разберем реализацию пула соединений;

будем двигаться от конфигурирования соединений к выполнению запросов, параллельно заглядывая в код драйвера.

Надеюсь каждый для себя найдет что-то полезное.

Поехали
Всего голосов 44: ↑43 и ↓1 +42
Комментарии 12

Геоанализ этажности Санкт-Петербурга алгоритмом KDE, или Как меняется облик города

Время прочтения 4 мин
Просмотры 3.1K
Блог компании Ситимобил Алгоритмы *Геоинформационные сервисы *Big Data *

Всем привет, меня зовут Максим Шаланкин, в Ситимобил я занимаюсь машинным обучением. Мы используем множество крутых алгоритмов для оптимизации наших сервисов и улучшения бизнес-процессов. В этой публикации я расскажу, как использовать в геоаналитике алгоритм ядерной оценки плотности (Kernel Density Estimation) и строить полигоны на карте, основываясь на распределении географических данных.

Врууум
Всего голосов 30: ↑28 и ↓2 +26
Комментарии 3

Citymobil Data Meetup #1 | Работа с географическими неоднородными данными в моделях онлайн-оценки

Время прочтения 14 мин
Просмотры 690
Блог компании Ситимобил Геоинформационные сервисы *Машинное обучение *Конференции

Спасибо большое, что все пришли послушать. У нас сейчас будет с вами чуть-чуть другая тема выступления. Мы поговорим про работу с географическими данными уже не с точки зрения такси, а с точки зрения работы с данными про недвижимость, что будет не менее интересно. Меня зовут Андрей Критилин. Я руководитель центра моделирования компании ЦИАН. О чем мы с вами сегодня конкретно поговорим. 

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 0

Citymobil Data Meetup #1 | Switchback эксперименты и сетевые эффекты

Время прочтения 12 мин
Просмотры 881
Блог компании Ситимобил

Всем привет! На связи с вами Артем Солоухин. Я представляю команду surge pricing, подразделение эффективности и маркетплейса «Ситимобил». Сегодня мы с вами немного поговорим про switchback эксперименты и про сетевые эффекты. Начнем с небольшого интро в том, чем занимается наша команда, чтобы стало понятно, почему нас волнует то, о чем мы сегодня поговорим.  Далее немного обсудим сетевой эффект, поговорим про switchback, решает ли он проблему сетевого эффекта и насколько. Подведем какие-то итоги. Итак, погнали. 

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 5

Эффективный DevOps

Время прочтения 11 мин
Просмотры 7.9K
Блог компании Конференции Олега Бунина (Онтико) Блог компании Ситимобил IT-инфраструктура *IT-стандарты *DevOps *

Статья по мотивам доклада «Эффективный DevOps / Максим Залысин (Ситимобил)» с конференции DevOps Live 2020 команды Онтико.

Читать далее
Всего голосов 26: ↑25 и ↓1 +24
Комментарии 0