RU

Архитектурный крест: как приручить System Design interview

Вначале, наверное, каждый попадал в эту ловушку на собеседовании: кандидат открывает экран, уверенно запускает draw.io и бодро начинает рисовать. Бац …

system design интервьюархитектура системархитектураархитектура поархитектура приложений
Habr
RU

[Перевод] System Design: проектируем Rate Limiter, ограничитель запросов

В задаче проектирования Rate Limiter важны сразу несколько вещей: выбор алгоритма лимитирования, централизованное хранение состояния, работа через API…

system designbackendhighloadподготовка к собеседованиюраспределенные системыархитектурапроектирование системсистемный дизайнпаттерны проектированиясобеседования задачи
Habr
RU

ObjectId против UUID: как выбор _id в MongoDB влияет на API, индексы и миграции

_id в MongoDB кажется мелочью, пока не попадает в API, события и миграции. Разбираем, когда оставить стандартный ObjectId , когда нужен UUID , почему …

MongoDBObjectIdUUIDBSONиндексыархитектураAPIбазы данныхидентификаторы
Habr
RU

Постанализ юзкейсов, или Как спроектировать непрерывную ABAC-авторизацию UI и API. Часть 2

Всем привет! На связи снова Никита Таскин и Анастасия Ильина . Продолжаем тему о контроле доступа применительно к системным интерфейсам, и на этот раз…

авторизацияархитектураapiинформационная безопасностьuse caseсистемный анализтаск-трекерrbacabacпроектирование систем
Habr
RU

Постанализ юзкейсов, или Как спроектировать непрерывную ABAC-авторизацию UI и API. Часть 1

Замечаете, что безопасность становится важнейшим атрибутом качества современных систем. А знакомы ли вы с концепцией Zero Trust? Не упустили ли вы мом…

проектирование системавторизацияпользовательский интерфейстаск-трекерabacrbacuse casesсистемный анализинформационная безопасностьархитектура
Habr
RU

Как избежать 7 критических ошибок при переходе на микросервисы

Микросервисы обещают масштабирование и независимость команд, но чаще ломают систему медленнее монолита. Почему? В статье разбираем семь архитектурных …

микросервисыархитектураbackenddistributed-systemsdesign-patternsjava-kotlinмасштабирование
Habr
RU

Архитектура безопасности во frontend-приложениях: Server Actions и защита данных в эпоху Next.js

Мир frontend-разработки за последние несколько лет изменился коренным образом. Если еще пять лет назад стандартом де-факто были одностраничные приложе…

безопасностьархитектураnext.jsreactreact server componentsserver actionssecuritysecurity through obscurity
Habr
RU

Feature Based Clean Architecture. Часть 2: Декомпозиция на сервисы: анализ ограниченности подхода

Стандартный ответ на god-сервис — декомпозиция: разнести логику по нескольким сервисам с чёткими зонами ответственности, оставить тонкий оркестратор. …

nestjstypescriptархитектурабэкендантипаттерныgod objectfeature-basedтехнический долгрефакторингtypeorm
Habr
RU

«Продай мне этот космолёт» или история любви к симуляторам. От космосима X-Tension до ActorModel/DoD/ECS архитектуры. Ч3

Это третья и финальная часть истории. По исходному плану их должно было быть две, потом я честно обещал уложиться в три после второй, и вот мы здесь. …

симуляторысимуляции и моделированиеимитационное моделированиеиерархии управленияactor modeldata oriented designentity component systemархитектураbevyakka
Habr
RU

Архитектура монорепозитория для параллельного исполнения торговых стратегий

⚡ Архитектура монорепозитория для параллельного исполнения торговых стратегий Статья описывает архитектуру эмулятора биржи. Эмулятор ускоряет время в …

typescriptjavascriptpythonbinanceалгоритмическая торговляtradingviewмосбиржаархитектураархитектура приложенийархитектура по
Habr
RU

«Продай мне этот космолёт» или история любви к симуляторам. От космосима X-Tension до ActorModel/DoD/ECS архитектуры. Ч2

Продолжение истории. Во второй части речь пойдет про поиск пути к своему симулятору: затронем мультиагентные системы "прошлого" (MAS), акторную модель…

симуляторысимуляции и моделированиеимитационное моделированиеиерархии управленияactor modeldata oriented designentity component systemархитектураbevyakka
Habr
RU

[Перевод] System Design: проектируем Dropbox, сервис для хранения и обмена файлами

Самая интересная часть в проектировании Dropbox — не хранение метаданных, а работа с самими файлами: как загружать большие объекты без перегрузки свои…

system designbackendhighloadподготовка к собеседованиюраспределенные системыархитектурапроектирование системсистемный дизайнпаттерны проектированиясобеседования задачи
Habr
RU

Outbox-паттерн для мобильного мессенджера: как Telegram не теряет сообщения и почему ваш код их теряет

Это седьмая статья про инженерные решения в ONEMIX. Тема узкая, но болезненная для каждого кто делал мобильное приложение с отправкой сообщений или фа…

react nativeмессенджерoptimistic updateoutboxмобильная разработкаархитектураtelegramасинхронностьобработка ошибокretry
Habr
RU

Почему spec-driven development плохо работает на микросервисах: часть 1. Где теряется контекст

Я работаю в большой продуктовой компании с тысячей микросервисов. В такой системе даже небольшая фича часто проходит через несколько сервисов,&nb…

claude codespec-driven developmentmicroservicessystem designllmархитектураcode reviewgoclean architecture
Habr
RU

Разбираем Bulletproof React: как не утонуть в хаосе собственного кода

Помните тот момент, ĸогда вы отĸрываете свой собственный проеĸт, ĸоторый не трогали пару месяцев, и не понимаете, где что лежит? А&nbsp…

frontendreactfsdbulletprooftypescriptjavascriptархитектураархитектура приложенийzustandredux-toolkit
Habr
RU

Как я сделал трёхуровневый кэш сообщений в мессенджере на React Native — и что узнал по дороге

Я делаю мессенджер ONEMIX на React Native. К моменту, когда я начал писать этот пост, в нём уже больше десятка экранов, групповые WebRTC-звонки через …

react nativesqliteкэшированиеexpoмессенджерdrizzle ormмобильная разработкапроизводительностьархитектураtelegram
Habr
RU

30 дней: блочный конструктор README — один DOM, два хозяина

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

ReactTypeScriptcontenteditableWYSIWYGDOMRedux Toolkitбраузерные APIархитектураFSDfrontend
Habr
RU

Ещё один круг ада: мониторинг ERP без Prometheus, Grafana и выделенного DevOps

Загнивая от усталости, дописывая последнюю строчку последнего (или не очень) модуля системы, теша себя мыслями о скорой зарплате, каждый уважающий себ…

gogolangprometheusgrafanagrafana-дашбордerpархитектураbackendnext.jsts