Как стать автором
Обновить
Сначала показывать

Когда вам стоит обратиться к ИТ-юристу? (Возможно, прямо сейчас!)

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров1.7K

Где именно юристы пересекаются с ИТ?

Ответ здесь может быть долгим. Тимлиды регулярно принимают решения о выборе технологий и инструментов, менеджеры управляют ИТ-проектами с учетом сроков и бюджета, а разработчики пилят полезные сервисы и фичи. Каждый из них сталкивается с правовыми аспектами своей работы: от проверки лицензий open source компонентов до простого (иногда в кавычках) оформления договора с подрядчиком.  

Часто коммуникация юристов и ИТ-спецов напоминает диалог двух разных миров: технический жаргон встречается с правовыми терминами; планы по запуску прорывных решений — с рядом законодательных ограничений.

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

Оба этих аспекта раскрываем под катом, в формате памятки. 

Читать далее

Как эксперимент помог распутать спагетти-код: применяем DDD-Lite на микросервисах

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров7.7K

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

Хорошая новость: распутать спагетти-код можно по-разному, и иногда срабатывают не самые очевидные способы. В нашем случае помогла комбинация действий: не просто выделение части кода в отдельные микросервисы, но и параллельная реализация архитектурного подхода DDD Lite (в связке с принципами чистой архитектуры).

О том, как в рамках кейса мы избавились от спагетти-зависимостей, поделили сервис на чёткие слои, упростили поддержку и масштабирование кода, — рассказываем под катом. Плюс делимся рекомендациями: кому и при каких сценариях связка «DDD Lite + микросервисы» может пригодиться.

Читать далее

Создаём многомодульную библиотеку на Android: как же собрать fat-aar?

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров2K

В Android-разработке могут возникать сценарии, когда нам нужно собрать один aar из нескольких модулей. 

Однажды нам в Сравни потребовалось создать SDK для наших партнёров — на основе уже существующего проекта. Сделать это хотелось без радикальных изменений в проекте и излишнего раскрытия деталей его устройства.

Задача понятная, но нетривиальная в реализации. Google до сих пор не предоставляет полноценного инструмента для создания fat-aar; к opensource-решениям также много вопросов. 

Выход из ситуации: вникнуть в нюансы того, как работает gradle, и на базе общедоступных средств сделать свой инструмент для создания многомодульной библиотеки. С автоматизированной сборкой модулей и публикацией артефакта. 

О том, как мы к этому подступились и к чему пришли, рассказываем под катом.

Читать далее

Postgres как поисковый движок

Время на прочтение12 мин
Количество просмотров9.9K

Поиск — это сложно. Важная часть многих приложений, которую нелегко реализовать правильно. Особенно в случае с RAG-пайплайнами, где на качество поиска завязан весь процесс.

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

Эрик Закариассон, разработчик и автор блога Anyblockers, рассмотрел в своей статье, как использовать Postgres для создания надёжной поисковой системы. В рамках задачи автор объединил три техники:

1. Полнотекстовый поиск с tsvector

2. Семантический поиск с pgvector

3. Нечёткое сопоставление с pg_trgm

4. Бонус: BM25

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

Читать далее

Интегрируемся с банками: Saga бесконечности, или как мы начали проводить вклады онлайн

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров1.7K

Осенью 2020 года финтех в России несколько изменился: открывать вклады онлайн стало возможно не только банкам, но и сторонним финансовым платформам. В Сравни мы уже много лет помогаем клиентам сопоставлять условия по вкладам в различных банках. И с появлением новой возможности задумались о том, чтобы разработать свою платформу для проведения онлайн-вкладов. 

Под катом рассказываем о том, по каким принципам работает наша платформа, какую роль в её устройстве играет Saga MassTransit и как посредством решения происходят интеграции с банками. Плюс раскрываем процесс самой интеграции — на конкретном кейсе.

Читать далее

Как видеть всё: внедряем простой мониторинг производительности в командах (на примере QA)

Время на прочтение7 мин
Количество просмотров8.1K

Анализ показателей по ключевым метрикам — то, что помогает командам принимать верные решения. Оперативно выявлять узкие места в процессах, оценивать их эффективность на разных этапах релизного цикла, равномерно распределять нагрузку между сотрудниками.

Только как быть, если в вашей команде уже не 5 человек, а 15, и вручную отслеживать данные стало непросто?

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

Под катом рассказываем, как мы начали (и продолжаем) централизованно мониторить эффективность нашего QA-направления. Поэтапно и с практическими советами. 

Читать далее

Сегментация данных — это не больно. Применяем ML-модели в аналитике

Время на прочтение8 мин
Количество просмотров2.9K

Как именно пол, возраст или семейное положение пользователей влияют на наши продуктовые метрики? 

Ответить на подобные вопросы помогает решение задач в духе «сегментация чего-либо по имеющимся данным».

Классические подходы аналитиков (анализ зависимостей отдельных переменных, группировка по всем потенциальным переменным) в таких случаях могут быть сложны и требовать больших трудозатрат. 

Альтернативный вариант — использовать собственный инструмент сегментирования, созданный на базе ML-модели под конкретный набор задач. 

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

Читать далее

1 января 1970 года. День создания индустрии программного обеспечения

Время на прочтение9 мин
Количество просмотров5.2K

Эра Unix — это дата, которая жёстко закодирована в компьютерах повсеместно. Возможно, это самая известная дата в вычислительной технике, и она будет существовать до тех пор, пока у нас есть системы, основанные на Unix.

Эра определяется как начало определённого отрезка в истории чего-либо. К сожалению, эпоха Unix по факту — просто произвольная дата. Конечно, она близка к дате начала разработки Unix, но, как позже стало известно, выбрана она была не поэтому.

Хотя исторически эра Unix — дата произвольная, так получилось, что она совпала со знаменательной датой для компьютерной индустрии. Это невероятное совпадение, учитывая, какое значение эта дата имела для индустрии ПО. Она особенно важна для инженеров-программистов, потому что именно в этот день,1 января 1970, ИТ-рынок и индустрия в их современном виде были узаконены.

Читать далее

Один год с GraphQL: как технология работает на длинной дистанции?

Время на прочтение8 мин
Количество просмотров14K

Предновогодний кодфриз — это время для полезных открытий: есть возможность поковыряться в имеющихся системах и что-нибудь исправить.

В Сравни у нас много продуктов, включая сервисы подбора и покупки полиса ОСАГО, подбора кредита, образовательных курсов, онлайн-оформления ипотеки. Информация о пользователях хранится и обрабатывается в специальном центральном сервисе (Profile Service). На текущий момент сервис содержит миллионы объектов пользователей, а нагрузка в пиковые моменты там до 180 запросов в секунду.

Исходная реализация Profile Service была построена на микросервисах и, как казалось нам ранее, полностью покрывала наши потребности: в плане гибкости взаимодействия с продуктами и работы с существующей нагрузкой. Изменения назрели под конец прошлого года, когда продуктовые команды стали настойчиво обращаться в команду сервиса для решения срочных задач. Здесь им регулярно требовалась помощь разработчиков — и команда Profile Service около месяца занималась только обработкой продуктовых запросов.

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

Читать далее

Как построить карьеру в области искусственного интеллекта. Советы от Эндрю Ына

Время на прочтение27 мин
Количество просмотров6.8K

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

О трех ключевых составляющих этой схемы — обучении базовым навыкам, работе над проектами и поиске работы, — читайте под катом. 

Читать далее

Что тестировщикам (и не только им) важно знать о базах данных. Шпаргалка по популярным ошибкам

Время на прочтение6 мин
Количество просмотров15K

Нужно ли тестировщику разбираться в базах данных? Короткий ответ: да, как минимум на том уровне, чтобы можно было успешно выявлять и локализовывать ошибки в их работе. На практике же проблемы в базах данных зачастую фрустрируют даже опытных QA-инженеров. Что-то где-то пошло не так, но что именно и где?

Разумеется, БД — вовсе не черный ящик с магией внутри, а такой же набор взаимодействующих по определенным правилам компонентов, как и все остальное, с чем ежедневно приходится иметь дело QA-инженерам (и разработчикам, на самом деле, тоже, но они обычно больше погружены в контекст). Понимание того, что там под капотом, помогает эффективно проводить тест-дизайн, локализовывать баги, общаться с разработкой.

Под катом — наша шпаргалка по распространённым багам в работе баз данных. Разбили их по категориями, снабдили примерами и объяснили первопричины появления. Надеемся, будет полезно не только QA-специалистам, но и бэкенд-разработчикам начального уровня, а также всем, кто хочет углубить свои познания в области взаимодействия с БД.

Читать далее

Не можешь победить — автоматизируй. Упрощаем рутину в аналитических задачах

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров13K

Автоматизация — краеугольный камень современной аналитики, и речь здесь не только о том, чтобы оптимально настроить масштабные базовые процессы вроде CI/CD. Точечное внедрение инструментов и фреймворков, исходя из конкретной задачи, могут дать ощутимый быстрый эффект как минимум на уровне экономии времени. И стать предпосылками к более крупным оптимизациям.

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

По итогу автоматизации остались довольны и аналитики, и аккаунт-менеджеры: теперь вместо недели рабочего времени задача сверки данных из таблиц занимает несколько часов (с перспективой дальнейшего ускорения).

Читать далее

История Git: на этот раз не так весело

Время на прочтение23 мин
Количество просмотров34K

Линус Торвальдс как-то написал в своей книге, что создавал Linux для развлечения, но в итоге это привело к революции. Git, его второе творение, также оказалось «случайной революцией» — и сегодня это стандартный инструмент для людей в ИТ. Однако процесс его создания был уже не таким «весёлым» — по крайней мере, для самого Линуса. 

Читать далее

Не потеряться в данных: оптимизируем аналитику с помощью DataHub

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров3.6K

Как не потеряться в данных для аналитики? 

Когда количество их источников ограничено, а аналитикой занимается пара человек, в целом всё понятно: обеспечить прозрачность вполне можно на уровне ведения документации (если заниматься этим ответственно). 

Но что, если данных в компании много, они отличаются сложной структурой и поступают из разных источников? Едут и из MongoDB, и из PostgresSQL, и из MS SQL; при этом постоянно появляются новые продукты и направления, данных становится ещё больше. Документация по ним устаревает примерно в тот момент, когда заканчиваешь её писать.

Попутно растёт команда аналитиков — новым людям нужно рассказывать, что где лежит, откуда прилетает, какие есть особенности. 

Упростить жизнь в такой ситуации призван Data Catalog, и в Сравни мы выбрали популярный вариант — DataHub. Под катом рассказываем, как меняется работа с данными для аналитики, когда в твоей жизни появляется визуализация потоков данных.

Читать далее

Ближайшие события

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

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров5.8K

«Что там с базами, не пора ли добавлять ресурсов?» — казалось бы, звучит как дежурная реплика менеджера, и классический ответ на неё: «всё ок, до конца недели должно хватить!». 

На деле этот безобидный на первый взгляд вопрос может быть сигналом о целом ворохе проблем. Важно разобраться, почему его задают (можно ведь посмотреть алерты и мониторинг), о чём именно речь (у нас точно всё ок с архитектурой?), как часто вопрос возникает (сколько денег мы тратим на содержание баз?).

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

О том, что из этого вышло, читайте под катом.

Читать далее

Что делают лиды разработки, когда собираются вместе? Об опыте проведения встреч в формате LeadHub

Время на прочтение10 мин
Количество просмотров838

Чем больше в компании продуктов, команд и процессов, тем острее становится потребность в развитой культуре лидерства. Речь не только о тонкостях управления, но и об организации слаженного взаимодействия: на уровне разработчиков, между командами, с бизнесом. 

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

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

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

Под катом на примере LeadHub #8 рассказываем, как устроены встречи тимлидов, и какой эффект дают на разных дистанциях. С примерами прорабатываемых на встречах проблем и практическими советами по организации подобных ивентов.

Читать далее

Как мы создавали собственную дизайн-систему для ускорения процессов разработки

Время на прочтение8 мин
Количество просмотров5K

Может ли в 2024 году фронтенд-разработчик не тратить время сперва на изучение макета, а затем на его реализацию в коде, в условиях быстро меняющихся требований бизнес-задач? Да, если использовать готовую дизайн-систему. 

При её отсутствии разработчики либо занимаются копипастом подходящих компонентов из других проектов, либо пользуются шарингом этих компонентов в каком-либо виде (вероятно, даже со сторибуком) — но такой подход имеет свои минусы.

Ранее мы рассказали об общем процессе создания и внедрения нашей дизайн-системы. Сегодня углубимся в технические подробности — поэтапно рассмотрим, что в ходе разработки происходило под капотом. 

Читать далее

Оптимизируем A/B-тесты: единый шаблон и DIY-инструментарий для аналитиков

Уровень сложностиПростой
Время на прочтение16 мин
Количество просмотров4.2K

Представьте ситуацию. Приходит Product Owner и говорит: «Давайте сделаем новый дизайн страницы сайта». Аналитик берётся за задачу — проводит A/B-тест. Такая же задача случается в соседней команде, в сопоставимом по сложности продукте, — но если в первом случае тест занимал пару часов, то во втором ждать приходится несколько дней. Чем больше команд и аналитиков, тем выше риск разрозненности. 

Унификация процессов помогает минимизировать этот риск, только как к ней лучше подступиться? Подготовить чеклисты, шаблоны, документацию, скрипты..? В нашем случае понадобилось всё это, плюс самодельный инструмент, который автоматизирует статистический анализ результатов A/B-тестов

Под катом пошагово описываем, как мы унифицировали процессы в нашем A/B-тестировании, и что получили на выходе.

Читать далее

Исправляем следующие 10 000 багов, связанных с наложением ссылок

Время на прочтение18 мин
Количество просмотров3.3K

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

Под катом автор блога Considerations on Codecrafting рассматривает ошибки, связанные с наложением ссылок, предлагает методы их предотвращения и призывает внедрить эти методы на уровне проектирования новых языков.

Читать далее

Оживляем ретроспективы с помощью процессных метрик

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров1.1K

«Нам нечего обсуждать, давайте пропустим» — такую реакцию на идею провести очередную ретроспективу мы слышали столько раз, что сбились со счёта.

В теории всё красиво: собрались на отдельную встречу (чтобы сфокусировано обсудить нужную тему), вспомнили недавнюю работу (пока не забылось), определили области для улучшений (итеративное развитие — наше всё).

На практике же ретроспективы часто получаются поверхностными и малопродуктивными. Участники отмалчиваются или обсуждают одни и те же боли из раза в раз; скучают или параллельно занимаются другими делами; уходят со встречи с ощущением впустую проведенного времени.

Хорошие новости: можно по‑другому. Повысить вовлеченность команды в ретроспективу, помочь увидеть конкретный результат своих усилий по улучшению работы. Уйти от вопросов «Что будем обсуждать на ретро?» и «У нас все хорошо?» к прозрачной картине того, что происходит с командой, чего удалось достичь и куда двигаться дальше. Помогут нам в этом процессные метрики.

Читать далее

Информация

Сайт
www.sravni.ru
Дата регистрации
Дата основания
2009
Численность
501–1 000 человек
Местоположение
Россия