<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Алексей Меленчук — пояснительная записка</title><description>Разборы по шести узлам серверной части: ядро, хранилище, обмен, сборка и выкат, наблюдаемость, каркас.</description><link>https://melenchuk.ru/</link><language>ru</language><item><title>Что писать в логи, чтобы они пригодились в аварию</title><link>https://melenchuk.ru/notes/chto-pisat-v-logi/</link><guid isPermaLink="true">https://melenchuk.ru/notes/chto-pisat-v-logi/</guid><description>Почему подробные логи не помогают в разборе, что такое структурированное логирование, зачем сквозной идентификатор запроса и как на самом деле различаются уровни.</description><pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate><category>Наблюдаемость</category></item><item><title>Как хранить пароли: хеш — это не шифрование</title><link>https://melenchuk.ru/notes/kak-hranit-paroli/</link><guid isPermaLink="true">https://melenchuk.ru/notes/kak-hranit-paroli/</guid><description>Чем хеширование отличается от шифрования, почему SHA-256 для паролей не годится, зачем нужна соль и какие алгоритмы и параметры рекомендует OWASP в 2026 году.</description><pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate><category>Хранилище</category></item><item><title>Prometheus или Zabbix: что ставить для мониторинга</title><link>https://melenchuk.ru/notes/prometheus-ili-zabbix/</link><guid isPermaLink="true">https://melenchuk.ru/notes/prometheus-ili-zabbix/</guid><description>Чем Prometheus отличается от Zabbix, почему сравнивать их по числу возможностей бессмысленно и какой единственный признак решает выбор на практике.</description><pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate><category>Наблюдаемость</category></item><item><title>REST или GraphQL: что выбрать для API</title><link>https://melenchuk.ru/notes/rest-ili-graphql/</link><guid isPermaLink="true">https://melenchuk.ru/notes/rest-ili-graphql/</guid><description>Чем GraphQL отличается от REST, какую задачу он решает на самом деле и что приходится строить заново после перехода: кеш, коды ответов, ограничение сложности запроса.</description><pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate><category>Обмен</category></item><item><title>Зачем нужен CI/CD, если выкатывать можно руками</title><link>https://melenchuk.ru/notes/zachem-nuzhen-ci-cd/</link><guid isPermaLink="true">https://melenchuk.ru/notes/zachem-nuzhen-ci-cd/</guid><description>Что означают буквы CI и CD на самом деле, чем доставка отличается от развёртывания и почему автоматический выкат — дешёвая половина, которую внедряют вместо дорогой.</description><pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate><category>Сборка и выкат</category></item><item><title>Чистая архитектура: что от неё остаётся на практике</title><link>https://melenchuk.ru/notes/chistaya-arhitektura/</link><guid isPermaLink="true">https://melenchuk.ru/notes/chistaya-arhitektura/</guid><description>Что такое чистая архитектура, какое у неё единственное несущее правило и почему четыре кольца со схемы не выживают в реальном проекте. Разбор с границей применимости.</description><pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate><category>Каркас</category></item><item><title>Docker: что он изолирует на самом деле</title><link>https://melenchuk.ru/notes/docker-chto-izoliruet/</link><guid isPermaLink="true">https://melenchuk.ru/notes/docker-chto-izoliruet/</guid><description>Чем контейнер отличается от виртуальной машины, какие механизмы ядра его изолируют и почему контейнер не является границей безопасности. Разбор устройства без метафор.</description><pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate><category>Сборка и выкат</category></item><item><title>JWT или сессии: чем платят за отсутствие состояния</title><link>https://melenchuk.ru/notes/jwt-ili-sessii/</link><guid isPermaLink="true">https://melenchuk.ru/notes/jwt-ili-sessii/</guid><description>Чем JWT отличается от сессий, почему токен нельзя отозвать и когда список отзыва обнуляет весь смысл JWT. Разбор с вердиктом для браузерных приложений и для сервисов.</description><pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate><category>Обмен</category></item><item><title>Kafka или RabbitMQ: журнал против брокера</title><link>https://melenchuk.ru/notes/kafka-ili-rabbitmq/</link><guid isPermaLink="true">https://melenchuk.ru/notes/kafka-ili-rabbitmq/</guid><description>В чём разница между Kafka и RabbitMQ, почему вопрос «что быстрее» поставлен неверно и по какому признаку выбирать. Плюс третий вариант, который часто лучше обоих.</description><pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate><category>Обмен</category></item><item><title>SQL или NoSQL: когда реляционная база перестаёт подходить</title><link>https://melenchuk.ru/notes/sql-ili-nosql/</link><guid isPermaLink="true">https://melenchuk.ru/notes/sql-ili-nosql/</guid><description>Чем отличается SQL от NoSQL, почему «NoSQL» — это четыре разных вида баз, и по какому признаку выбирать. Разбор с процедурой выбора, а не «зависит от задачи».</description><pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate><category>Хранилище</category></item><item><title>CAP: теорема, которую цитируют неправильно</title><link>https://melenchuk.ru/notes/cap-teorema/</link><guid isPermaLink="true">https://melenchuk.ru/notes/cap-teorema/</guid><description>Формулировка «выберите два из трёх» не соответствует доказанному. Что именно доказали Гилберт и Линч, что признал Брюер и почему PACELC точнее.</description><pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate><category>Обмен</category></item><item><title>Что из метрик кода действительно предсказывает поломки</title><link>https://melenchuk.ru/notes/metriki-koda/</link><guid isPermaLink="true">https://melenchuk.ru/notes/metriki-koda/</guid><description>Цикломатическая сложность, связность, расстояние до главной последовательности. Что из этих метрик подтверждено эмпирически, а что осталось фольклором.</description><pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate><category>Каркас</category></item><item><title>Почему добавление потоков снижает пропускную способность</title><link>https://melenchuk.ru/notes/potoki-i-propusknaya-sposobnost/</link><guid isPermaLink="true">https://melenchuk.ru/notes/potoki-i-propusknaya-sposobnost/</guid><description>Закон Амдала объясняет, почему ускорение упирается в потолок. Он не объясняет, почему после некоторого числа потоков система начинает работать хуже.</description><pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate><category>Ядро</category></item><item><title>Среднее лжёт, перцентиль тоже</title><link>https://melenchuk.ru/notes/srednee-i-pertsentili/</link><guid isPermaLink="true">https://melenchuk.ru/notes/srednee-i-pertsentili/</guid><description>Почему перцентили нельзя усреднять, почему задержка взрывается задолго до полной загрузки и что такое согласованное умолчание в нагрузочном замере.</description><pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate><category>Наблюдаемость</category></item><item><title>Уровни изоляции: что стандарт не смог определить</title><link>https://melenchuk.ru/notes/urovni-izolyatsii/</link><guid isPermaLink="true">https://melenchuk.ru/notes/urovni-izolyatsii/</guid><description>ANSI SQL определяет уровни изоляции через три аномалии. В 1995 году было показано, что это определение неполно и допускает несовместимые прочтения.</description><pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate><category>Хранилище</category></item><item><title>Воспроизводимая сборка: от Томпсона до SOURCE_DATE_EPOCH</title><link>https://melenchuk.ru/notes/vosproizvodimaya-sborka/</link><guid isPermaLink="true">https://melenchuk.ru/notes/vosproizvodimaya-sborka/</guid><description>Кен Томпсон в 1984 году показал, что исходный код не доказывает свойств бинарника. Что из этого следует и какие источники недетерминизма приходится закрывать.</description><pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate><category>Сборка и выкат</category></item><item><title>Алерт, на который никто не идёт</title><link>https://melenchuk.ru/notes/alert-na-kotoryy-nikto-ne-idjot/</link><guid isPermaLink="true">https://melenchuk.ru/notes/alert-na-kotoryy-nikto-ne-idjot/</guid><description>Правило, которое срабатывает и не требует действия, — это лог с уведомлением. Разбор того, почему такие правила вреднее отсутствия мониторинга.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Наблюдаемость</category></item><item><title>Четыре языка — это выбор, а не коллекция</title><link>https://melenchuk.ru/notes/chetyre-yazyka/</link><guid isPermaLink="true">https://melenchuk.ru/notes/chetyre-yazyka/</guid><description>Чем PHP, Java, Python и C++ действительно отличаются для одной серверной задачи, и почему цена второго языка в проекте измеряется не синтаксисом.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Ядро</category></item><item><title>Exactly-once не существует</title><link>https://melenchuk.ru/notes/exactly-once-ne-sushchestvuet/</link><guid isPermaLink="true">https://melenchuk.ru/notes/exactly-once-ne-sushchestvuet/</guid><description>Доставку ровно один раз продают как свойство очереди. Разбор того, почему это свойство получателя, и что делать вместо надежды на брокера.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Обмен</category></item><item><title>Где на самом деле живёт бизнес-логика</title><link>https://melenchuk.ru/notes/gde-zhivet-logika/</link><guid isPermaLink="true">https://melenchuk.ru/notes/gde-zhivet-logika/</guid><description>Одно и то же правило оказывается реализовано в базе, в сервисе и на клиенте — с тремя разными поведениями. Разбор того, кто и что должен вынуждать.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Ядро</category></item><item><title>Границы модулей дороже, чем стиль кода</title><link>https://melenchuk.ru/notes/granitsy-modulei/</link><guid isPermaLink="true">https://melenchuk.ru/notes/granitsy-modulei/</guid><description>Линтер спорит о кавычках, а проект тонет в том, что модули знают друг о друге слишком много. Разбор того, как границу описать и как заставить её держаться.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Каркас</category></item><item><title>Индекс есть, а планировщик его не берёт</title><link>https://melenchuk.ru/notes/index-est-planirovshchik-ne-berjot/</link><guid isPermaLink="true">https://melenchuk.ru/notes/index-est-planirovshchik-ne-berjot/</guid><description>Почему «добавьте индекс» — не ответ, и как читать решение планировщика, который считает полный проход дешевле поиска по дереву.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Хранилище</category></item><item><title>Kubernetes раньше, чем он нужен</title><link>https://melenchuk.ru/notes/kubernetes-ranshe-chem-nuzhen/</link><guid isPermaLink="true">https://melenchuk.ru/notes/kubernetes-ranshe-chem-nuzhen/</guid><description>Оркестратор решает задачу, которой у вас может не быть, и создаёт задачу, которая появится обязательно. Разбор того, что именно он покупает и чем за это платят.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Сборка и выкат</category></item><item><title>Миграции без простоя: почему «просто добавить колонку» врёт</title><link>https://melenchuk.ru/notes/migratsii-bez-prostoya/</link><guid isPermaLink="true">https://melenchuk.ru/notes/migratsii-bez-prostoya/</guid><description>Схема и код меняются в разные моменты, и между ними всегда есть окно, где работают обе версии. Разбор того, что из этого следует.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Хранилище</category></item><item><title>Микросервисы — ответ на организационную проблему</title><link>https://melenchuk.ru/notes/mikroservisy-otvet-na-organizatsiyu/</link><guid isPermaLink="true">https://melenchuk.ru/notes/mikroservisy-otvet-na-organizatsiyu/</guid><description>Распил решает вопрос независимости команд и выкатов, а не производительности. Разбор того, что покупается и чем платят, если команда одна.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Каркас</category></item><item><title>ORM: что вы отдаёте за удобство</title><link>https://melenchuk.ru/notes/orm-chto-vy-otdayote/</link><guid isPermaLink="true">https://melenchuk.ru/notes/orm-chto-vy-otdayote/</guid><description>ORM берёт плату не производительностью. Она прячет границу между памятью процесса и состоянием базы — и поэтому N+1 переживает любое код-ревью.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Хранилище</category></item><item><title>Ошибка — часть контракта, а не случайность</title><link>https://melenchuk.ru/notes/oshibka-eto-kontrakt/</link><guid isPermaLink="true">https://melenchuk.ru/notes/oshibka-eto-kontrakt/</guid><description>Почему «бросим исключение, наверху разберутся» — это решение не проектировать контракт, и чем ожидаемый отказ отличается от дефекта.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Ядро</category></item><item><title>Ретрай, который устраивает DDoS вам же</title><link>https://melenchuk.ru/notes/retray-kotoryy-ustraivaet-ddos/</link><guid isPermaLink="true">https://melenchuk.ru/notes/retray-kotoryy-ustraivaet-ddos/</guid><description>Повтор без джиттера и без бюджета превращает частичный отказ в полный. Разбор механики лавины и трёх вещей, которые её останавливают.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Обмен</category></item><item><title>Секрет в переменной окружения — это не секрет</title><link>https://melenchuk.ru/notes/sekret-v-peremennoy-okruzheniya/</link><guid isPermaLink="true">https://melenchuk.ru/notes/sekret-v-peremennoy-okruzheniya/</guid><description>Переменные окружения видны в дампе, в отчёте о падении, в списке процессов и в панели оркестратора. Разбор того, где они утекают и что ставить вместо.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Сборка и выкат</category></item><item><title>Таймаут по умолчанию — это отсутствие таймаута</title><link>https://melenchuk.ru/notes/taymaut-po-umolchaniyu/</link><guid isPermaLink="true">https://melenchuk.ru/notes/taymaut-po-umolchaniyu/</guid><description>Незаданный таймаут не «разумный», а чаще всего бесконечный. Разбор того, как один медленный сосед выедает пул соединений и утаскивает за собой сервис.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Обмен</category></item><item><title>Логи, метрики, трассировка: что из трёх вам действительно нужно</title><link>https://melenchuk.ru/notes/tri-stolpa-nablyudaemosti/</link><guid isPermaLink="true">https://melenchuk.ru/notes/tri-stolpa-nablyudaemosti/</guid><description>Три столпа продают набором. Они отвечают на разные вопросы, стоят по-разному, и начинать надо не с того, что модно.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Наблюдаемость</category></item></channel></rss>