Рубрика «архитектура»

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

Я попытался представить не академическую доктрину, а её переход в реальность: туда, где красивые архитектурные шаблоны сталкиваются с производительностью, сроками, legacy, ограничениями команды и конкретными production‑задачами. Главная мысль статьи — попробовать описать пространство где‑то посередине между архитектурной чистотой и производительностью, не превращая ни одну из сторон в абсолют.

Читать полностью »

Введение. Role-Play LLM бот

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

Весь смысл был в том, чтобы это были действительно разные модели и пользователь мог просто между ними переключаться по запросу. Для начала мне нужно было найти зоопарк апи ключей с бесплатными лимитами. Я прошерстил весь интернет и в итоге нашел относительно нормальные варианты: Groq для LLama, Google AI Studio для Gemma и Gemini.

Читать полностью »

Дисклеймер: это не stand-up и не пародия. Это полноценное упражнение в системном дизайне на необычной предметной области: TL;DR, требования, парные сравнения альтернатив, failure modes, реальные измерения, references на DDIA / Release It! / Use The Index Luke. Все числа реальные, основаны на 12+ годах личного шашлычного опыта.

Идея статьи проста: дисциплина системного дизайна применима к любой системе, не только к hi-load backend. После прочтения возьми любой свой текущий сервис и пройди те же шаги: workload analysis, paired comparisons, failure modes, реальные измерения. Структура та же, инструменты разные.


TL;DR

Я узнал об отключении не из новостей. Утром мне написал знакомый из небольшого банка: «всё упало, паспорта не проверяются, онлайн встал». В то время как раз дописывал обработку ошибок в smev4-rs, Rust-крейте для работы с СМЭВ 4.

Совпадение так совпадение.

Первые несколько часов ушли на то, чтобы понять, что вообще происходит. Минцифры говорило что транспорт в порядке. Жалобы шли и от тех, кто на СМЭВ 3, и от тех, кто переезжал на СМЭВ 4. Значит дело было не в версии протокола.

Читать полностью »

Если вы не стыдитесь свой код, написанный полгода назад — значит, вы недостаточно выросли как разработчик — «Дядюшка Боб»

Для кого эта статья?

Для того, кто только начинает и уже чувствует: «что-то здесь не так, но как правильно — никто не объяснил».

А еще — для того парня, которым я был много лет назад. Который только начинал, радостно накидал компонентов в src/components, порадовался, что всё работает, закрыл задачу и пошел пить чай. А через три месяца открыл этот же проект и не узнал собственный код.

Если вы узнали себя — эта статья для вас.

Введение: Проклятие выбора и гибĸости React

Читать полностью »

Уровень: middle/senior мобильная разработка, React Native, SQLite Стек: Expo SDK 54, React Native, expo-sqlite, drizzle-orm, AsyncStorage, TypeScript Что внутри: архитектура, код из продакшна, грабли, цифры

Вступление

Я делаю мессенджер ONEMIX на React Native. К моменту, когда я начал писать этот пост, в нём уже больше десятка экранов, групповые WebRTC-звонки через LiveKit, E2E на Double Ratchet + Sealed Sender, push-нотификации с cold-start навигацией и десктоп-версия на Electron. Но самым важным куском, который определяет ощущение от приложения, оказался не звук и не видео. А то, насколько быстро открывается чат.

Читать полностью »

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

ИИ я использую. Но в этом проекте он был исключительно быстрой документацией — особенно когда добрался до selection/range API, про которые до этого знал чуть меньше чем ничего. Реализация все равно была за мной.

Читать полностью »

Как Сетунь обогнала время и проиграла кремнию - 1

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

Читать полностью »

StaticEcs

Коротко о том, что такое ECS (Entity Component System)

Сущность — числовой идентификатор без данных.
Компонент — структура данных (Position, Health, Velocity), которая может быть прикреплена к сущности.
Система — код, перебирающий сущности с нужным набором компонентов и обрабатывающий их.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js