Обновить
13
0
evilbloodydemon @evilbloodydemon

Пользователь

Отправить сообщение

Сервис поиска за три недели: как сделать и не пожалеть через год

Уровень сложностиСредний
Время на прочтение12 мин
Просмотры3K

Как запустить поисковый сервис, если у тебя всего три недели, а данные нужно агрегировать с десятков источников, каждый из которых работает по своим правилам? Как обойти жёсткие лимиты партнёров, которые ограничивают запросы в 500 RPM и p99 до 5 секунд, когда для быстрой загрузки первых результатов нужно минимум 1000 RPM? Как справиться с геопоиском, когда традиционные решения вроде Elasticsearch не подходят?

В 2022 году 2ГИС запустил сервис бронирования Отелло, и перед нами стояла амбициозная цель — не просто создать поиск, а сделать его быстрым, надёжным и масштабируемым, чтобы успеть занять место на рынке. Спойлер: мы справились. В этой статье расскажем, как именно.

Материал будет полезен бэкенд-разработчикам и продакт-менеджерам, которые сталкиваются с задачами интеграции сложных данных, высокой нагрузки и оптимизации поисковых алгоритмов. А если тебе понравится наш проект, рассмотри нашу вакансию — мы в поисках Senior Golang Engineer

Читать далее

Дело о несрабатывающем тайм-ауте. Проблемы гистограмм Prometheus

Уровень сложностиСредний
Время на прочтение20 мин
Просмотры3K

Привет! Меня зовут Олег Стрекаловский, я старший разработчик в команде корзины маркетплейса. Сервис корзины Ozon отвечает за хранение корзин покупателей и за отрисовку соответствующего экрана в приложении и на сайте. Слежение за стабильностью сервиса — важная задача. В этой статье я расскажу о нюансах интерпретации данных, которые предоставляет система мониторинга Prometheus. Если вы тоже часто всматриваетесь в графики, чтобы понять, как чувствует себя сервис, эта статья для вас.

Читать далее

Devhands Open Sessions c Владимиром Перепелицей. Очереди в 2025м, что выбрать: Kafka, RabbitMQ, NATS или что-то ещё?

Уровень сложностиСредний
Время на прочтение46 мин
Просмотры4.4K

Привет, Хабр! На прошлой неделе мы провели стрим по очередям с Владимиром Перепелицей (эксперт по большим проектам, очередям и Tarantool, Solution Architect в Exness, создатель S3 в VK Cloud, регулярный спикер и член ПК конференций Highload). Обсудили выбор брокера или системы очередей 2025м году: что поменялось? NATS, его особенности, перспективы, кого он “подвинет” в первую очередь - Kafka или RabbitMQ? Что нового в свежей Apache Kafka 4? Насколько популярны архитектуры, где, например, Kafka основной storage (IoT, сбор метрик и тд). Под катом - расшифровка стрима.

Читать далее

Почему сложно разработать OLAP-базу данных, если у тебя уже есть OLTP

Время на прочтение14 мин
Просмотры5.9K

Это адаптированная для Хабра расшифровка доклада Алексея Дмитриева, директора аналитической платформы YDB DWH, которую создаёт команда Yandex Cloud, — компонента нашей гибридной базы данных YDB для обработки аналитических нагрузок. Когда проект только начинался, у нас было много наработок, которые мы успешно переиспользовали в других проектах. Но оказалось, что OLAP‑нагрузка так сильно отличается от OLTP, что за три года пришлось практически написать по ещё одной реализации многих частей системы. Под катом история о том, почему на рынке так мало гибридных баз данных класса Hybrid Transactional and Analytical Processing (HTAP) и какие сложности стоят на пути их разработки.

Читать далее

Соссюр и революция в лингвистике

Время на прочтение7 мин
Просмотры14K

«Гипотетические частицы, которых никто никогда не видел, но с введением которых в расчёты наблюдаемая хаотичная реальность начинает выглядеть строго логичной системой? Да не, ерунда какая-то!» – так решили учёные и на полвека забыли о гипотезе Фердинанда де Соссюра, французского студента-лингвиста. Спустя полвека эти частицы (которым он дал название «ларингалы») были обнаружены в одном из новонайденных древних языков, и теория Соссюра перевернула всю лингвистику. Но он об этом уже не узнал. «Трактат о первоначальной системе гласных в индоевропейских языках» так и остался единственной его книгой, изданной при жизни. А сам он умер неизвестным, непризнанным скромным профессором Женевского университета даже без какого-то значимого числа публикаций. Но давайте по порядку.

Читать далее

Как понять своего разработчика: мы не тираны, мы просто своеобразные

Время на прочтение4 мин
Просмотры525

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

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

Читать далее

Гореть, но не сгорать: практические советы по борьбе с burnout’ом

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

Битый час подряд переписываете код, а внутри нарастает тревожное ощущение, будто все вокруг разбираются в теме лучше вас, и в любой момент может выясниться, что вы здесь вообще случайно. Или так. Открываете IDE, а внутри пустота. Никакого драйва, лишь сплошное раздражение на таски. Бывало такое? 

Что ж, вы не одиноки. Согласно исследованиям, 58% IT-специалистов регулярно сталкиваются с двумя проблемами: синдромом самозванца и профессиональным выгоранием. 

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

В общем, если чувствуете себя, как этот песик, — советуем заглянуть под кат.

Читать далее

Каждый бэкенд-инженер должен знать, как обрабатывать платежи. Краткое руководство по повторным попыткам платежа

Время на прочтение4 мин
Просмотры38K
Любая система, работающая с платежами, должна быть надежной и отказоустойчивой.

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

Сейчас покажу, как это сделать.
Читать дальше →

Принцип каскадного снижения связанности

Время на прочтение9 мин
Просмотры7.9K

Часто ли вы слышите о новом принципе проектирования IT-архитектуры? А об обновлении классических принципов? Попробую вас удивить и привнести что-то новое. 😎

У вас никогда не вызывало недоумения, что связанность и прочность (или связность) — это про примерно одно и то же (и то, и другое — это некая связь), но одно — хорошо, а другое — почему-то плохо? 🙂
Но давайте по порядку.

Читать далее

CORS, CORP, COEP, COOP. Разбираемся со всеми CO* и смотрим на нюансы

Уровень сложностиПростой
Время на прочтение17 мин
Просмотры6.5K

В сети интернет достаточно информации на русском языке по поводу SOP и CORS, но введение в такие технологии как CORP, COEP и COOP показалось недостаточным (а кто-то может видеть эти аббревиатуры впервые). Поэтому решил написать статью по знакомству с cross-origin политиками.

Читать далее

Почему мы построили монолит на чистой архитектуре. И почему это взбесило системных аналитиков

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

Привет! Меня зовут Павел Лукьянов, я заместитель CTO в AGIMA. На одной из прошлых работ мы с ребятами попробовали внедрить так называемую чистую архитектуру на монолитном проекте. И это был интригующий опыт. Во-первых, мы начали намного рациональнее подходить к оценке задач. Во-вторых, заметно сократили time-to-market. А в-третьих, сильно разозлили наших аналитиков. Считаю, такими впечатляющими результатами стоит делиться.

Читать далее

Психология разработки: как когнитивные искажения влияют на архитектурные решения и качество кода (часть 2)

Уровень сложностиПростой
Время на прочтение11 мин
Просмотры3.5K

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

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

Читать далее

Полнота OSM в сравнении с ПКК и ГАР ФИАС

Уровень сложностиСредний
Время на прочтение7 мин
Просмотры1.9K

База Open Street Map (OSM) является открытым ресурсом, пополняемым добровольцами. Она широко используется в проектах, где нужно отобразить что-либо на карте. Встаёт вопрос - насколько данные в ней полные и корректные?

Мы попробуем ответить на него для объектов типа "строение" (дом) на территории России. В этом нам поможет база объектов ГАР ФИАС, которая также содержит объекты такого типа, и её с некоторыми оговорками можно брать за эталонный уровень полноты. С оговорками - потому что каждый месяц в ней появляются новые объекты. На данный момент в ней около 32 млн строений (не считая гаражей, земельных участков и устаревших объектов).

Объекты ГАР ФИАС не содержат координат GPS, но есть ещё один открытый ресурс - Публичная кадастровая карта Росреестра. К сожалению, она не даёт выгружать данные целиком, как предыдущие базы, а предоставляет только API, по которому можно извлекать один объект за раз. Но зато она для многих из них содержит GPS, так что можно их сопоставить с GPS от OSM.

Забегая вперёд, озвучим результат: OSM содержит около 24% от всех домов ГАР, ПКК - около 21%, пересечение OSM с ПКК - 6% и разница координат несущественная.

Для получения результата использовался движок нормализации адресов Pullenti Address.

Читать далее

Про найм, собесы и объемное видение

Уровень сложностиПростой
Время на прочтение4 мин
Просмотры5.6K

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

Читать далее

Лучшие китайские нейросети — бесплатно и без VPN

Время на прочтение8 мин
Просмотры63K

В последние годы Китай продемонстрировал поразительный технологический скачок, создав ИИ-инструменты, которые не просто конкурируют с западными аналогами, но и предлагают уникальные решения, меняющие правила игры. От распределённых систем обработки данных до инновационных моделей естественного языка — китайские разработчики научились сочетать скорость, масштаб, точность и экономию, создавая продукты, которые уже обходят западные аналоги. Я собрал топ самых впечатляющих китайских ИИшек, которыми лично сам пользуюсь. Осторожно! Статья для тех, кто просто не хочет потерять ИНТЕРЕСНЫЕ ССЫЛКИ. Подробнее о каждой нейросети— далее в статье.

Читать далее

Секреты стройности монолита: подходы по снятию нагрузки с БД

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

Привет! Меня зовут Олег Кретинин, и я разработчик в команде общих компонентов в Яндекс Еде. Сегодня я расскажу о том, как мы смогли успешно снять нагрузку с нашей базы данных, а также уменьшить её размер.

Помимо сервисов, написанных на C++, Go и Python, у нас есть монолит, он же «кора», на PHP, который всё ещё представляет огромную кодовую базу, хранит кучу логики и предоставляет данные по API для 120 сервисов.

После обновления фреймворка и версии PHP мы принялись за решение другой проблемы, которая всё чаще и чаще давала о себе знать. В тот период у нас возросло количество инцидентов, связанных с базой данных, и нам нужно было что‑то придумать, чтобы стабилизировать проект максимально быстро. Случалось, что всё сыпалось во время праздничных дней, когда количество заказов увеличивалось на 30–40%, или во время разовых массовых операций, например когда однажды в большую сеть ресторанов добавлялся бесплатный соус к каждой позиции меню.

Читать далее

Как с помощью deep learning мы построили Геокодер, масштабируемый для разных стран

Время на прочтение11 мин
Просмотры12K

Давным‑давно, когда мир ML состоял из бустингов, линейных моделей и статистических подходов, перед нашей командой API Яндекс Карт стояла задача сделать качественный Геокодер. Это алгоритм, который конвертирует текстовые запросы пользователей в поисковой строке карт в координаты и обратно. Он нужен, когда люди вводят адреса с ошибками, опечатками или народными наименованиями, например «Мяснитская 8». Геокодер должен понять, что имелось в виду «улица Мясницкая, дом 8/2», и вернуть на карте отметку с точной локацией и координатами.

Разработанный для России Геокодер отлично справлялся, но мы хотели найти способ быстро адаптировать это решение к адресным системам других стран. Технологические ограничения не позволяли быстро адаптировать решение, поскольку для каждой страны требовалась разработка собственных правил геокодирования, которые бы учитывали различия и языковые особенности. Однако появление и развитие алгоритмов deep learning открыло новые горизонты: методы active learning, аугментации данных и contrastive learning позволяют значительно улучшить итоговое качество геокодирования и учитывать нюансы различных адресных систем.

В этой статье мы рассмотрим основные этапы и методы построения нового Геокодера, который быстро масштабируется на адресные системы разных стран. Расскажем, что у него под капотом, как именно использовались механизмы deep learning при его создании, с какими проблемами мы столкнулись и как научили его понимать адреса с ошибками и опечатками.

Читать далее

Мне удалили аденому простаты: как это было

Уровень сложностиПростой
Время на прочтение19 мин
Просмотры51K

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

Дисклеймер: я не врач и не даю здесь рекомендаций. Названия лекарств привожу не для рекламы, а потому, что мне их выписывал доктор. Основная часть данных получена из личного опыта, консультаций с четырьмя докторами, медицинской литературы и ChatGPT 4o. Лично мои мнения помечены как «думаю, что...».

Итак, что произошло

Десятого декабря у меня был юбилей. Через три дня, в пятницу 13-го (я не верю в приметы) пошли с коллегами в ресторан отмечать событие. Было хорошее настроение и хороший коньяк. Через два часа захотелось в туалет. Струя оказалась тоненькой. Через 15 минут пошел еще раз – она стала еще тоньше, а в очередной поход через еще 15 минут исчезла вовсе. Я подумал, что пора прекращать пить и надо идти домой, ждать когда алкоголь выйдет из крови. Но дома лучше не стало, хотя отрезвел полностью. Я не спал  всю ночь, искал решение в интернете и пробовал что-нибудь сделать – ничто не помогало. Утром в девять я был в больнице, в очереди к урологу. Было уже страшно, что лопнет мочевой пузырь или откажут почки. Когда вошел в кабинет доктора, не смог даже самостоятельно лечь на кушетку из-за резкой боли внизу живота. Доктор быстро вставил мне катетер в уретру и я наконец понял, что такое настоящее счастье, когда услышал звук бурного потока мочи в рядом стоящий тазик.

Читать далее

Как перейти от монолита к микросервисам без сложностей и рисков? Четыре проверенных паттерна

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

При переходе от монолитной к микросервисной архитектуре разработчики часто сталкиваются с несколькими проблемами.

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

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

Использование в практике таких паттернов как Strangler Fig Pattern, Parallel Run Pattern, Decorating Collaborator Pattern и Change Data Capture позволяет разработчикам значительно снизить риски и проблемы, возникающие при таком сложном переходе.

Давайте рассмотрим основные концепции этих паттернов.

Читать далее

Антипаттерны Go: чего нельзя делать и почему

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

Привет, Хабр! Go часто называют «языком простоты»: мол, нет лишних фич, легко стартовать, запустил горутину — и вперед! Но в реальности эта «простота» — палка о двух концах. Я собрал самые распространенные (на мой взгляд) антипаттерны в Go, которые приводят к дедлокам, паникам и километрам непонятного кода.

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность