<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Идеи и инсайты – Autotomy</title><description>Исследуем AI-first разработку, кодовые ограждения и архитектуру одноразовости.</description><link>https://autotomy.dev/</link><language>ru</language><item><title>Ваша main ветка сломана. Вам нужно перебрать 200 коммитов.</title><link>https://autotomy.dev/ru/blog/git-bisect-binary-search-commit/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/git-bisect-binary-search-commit/</guid><description>Git bisect превращает ручной поиск коммитов в автоматизированный бинарный поиск. Вот как найти точный коммит, в котором появился баг, не переключаясь на каждый по отдельности.</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Ваш трекер ошибок знает, где всё упало. Это не поможет вам воспроизвести баг.</title><link>https://autotomy.dev/ru/blog/production-crash-capture-replay/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/production-crash-capture-replay/</guid><description>Стектрейсы говорят, где произошёл краш, а не что его вызвало. Вот паттерн захвата и воспроизведения, который превращает продакшен-краши в локальные тест-кейсы, которые можно реально отладить.</description><pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Символическое исполнение нашло целочисленное переполнение, которое пропустило моё покрытие тестами в 94%</title><link>https://autotomy.dev/ru/blog/symbolic-execution-integer-overflow-coverage/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/symbolic-execution-integer-overflow-coverage/</guid><description>Ваши модульные тесты проверяют конкретные входные данные. Символическое исполнение проверяет каждый возможный ввод. Вот как это работает, чего это стоит и с чего начать.</description><pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Ваши логи утекают с PII, и grep вас не спасёт</title><link>https://autotomy.dev/ru/blog/pii-tracking-code-pipeline/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/pii-tracking-code-pipeline/</guid><description>Большинство команд находят утечки PII после жалобы клиента. Вот как отслеживать чувствительные данные от момента получения до вывода, с примерами кода, которые можно использовать уже сегодня.</description><pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Ваш API сломался в продакшене, потому что CI тестировал код, а не contracts</title><link>https://autotomy.dev/ru/blog/api-contract-testing-ci/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/api-contract-testing-ci/</guid><description>Большинство CI pipelines находят синтаксические ошибки и логические баги. Они пропускают изменения, ломающие обратную совместимость API contracts, которые реально валят продакшен. Вот как это исправить.</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Корреляции крашей лгут. Вот как заставить их указывать на реальный баг.</title><link>https://autotomy.dev/ru/blog/crash-correlation-triangulation/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/crash-correlation-triangulation/</guid><description>Statistical debugging находит predicates, коррелированные с крашами, но корреляция — это не файл и номер строки. Вот как ранжировать, фильтровать и триангулировать свой путь от корреляционного score к реальному месту бага.</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Seer от Sentry может читать ваши трейсы. Это не значит, что он всегда находит root cause.</title><link>https://autotomy.dev/ru/blog/sentry-seer-trace-root-cause/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/sentry-seer-trace-root-cause/</guid><description>Seer поглощает деревья трейсов, связанные ошибки и данные профилирования для диагностики распределённых проблем. Вот как он на самом деле работает, где блестит и где всё ещё нужна человеческая помощь.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Statistical debugging должен был покончить с отладкой через printf. Большинство команд так и не заставило его работать.</title><link>https://autotomy.dev/ru/blog/statistical-debugging-adoption-challenges/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/statistical-debugging-adoption-challenges/</guid><description>Statistical debugging обещал точно находить баги, коррелируя поведение программы с отказами. Вот почему эта идея так и не перешла из научных статей в продакшен-системы.</description><pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Ваши тесты прошли. Ваши данные всё равно неверны.</title><link>https://autotomy.dev/ru/blog/statistical-debugging-production-data-anomalies/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/statistical-debugging-production-data-anomalies/</guid><description>Statistical debugging рассматривает ваши продакшен-данные как сигнал, а баги — как аномалии в этом сигнале. Вот как находить повреждение данных, ошибки off-by-one и тихие отказы, не добавляя ни одного юнит-теста.</description><pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Metamorphic testing нашёл 147 багов в компиляторах и дефект в системе самоуправляемого автомобиля. Вот как это работает.</title><link>https://autotomy.dev/ru/blog/metamorphic-testing-production-bugs-compiler/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/metamorphic-testing-production-bugs-compiler/</guid><description>Metamorphic testing выявил реальные баги в GCC, LLVM, компиляторах шейдеров Vulkan и симуляторах ADAS. В этом посте объясняется техника с рабочим кодом и показано, куда она вписывается в ваш набор тестов.</description><pubDate>Sun, 16 Aug 2026 00:00:00 GMT</pubDate></item><item><title>LLM могут предлагать metamorphic relations. Но не могут гарантировать их.</title><link>https://autotomy.dev/ru/blog/llm-metamorphic-relations-brainstorming/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/llm-metamorphic-relations-brainstorming/</guid><description>Large language models — неплохие партнёры для brainstorming при открытии test oracles, но они hallucinate свойства и упускают domain constraints. Вот как использовать их, не выкатывая фиктивные тесты.</description><pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Большинство metamorphic relations бесполезны. Вот как выбрать хорошие.</title><link>https://autotomy.dev/ru/blog/metamorphic-relation-quality/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/metamorphic-relation-quality/</guid><description>Не все metamorphic relations ловят баги. Слабые соотношения дают ложную уверенность, а сильные находят реальные дефекты. Вот как отличить их и построить набор соотношений, который реально работает.</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Как тестировать код, когда я не знаю правильного ответа?</title><link>https://autotomy.dev/ru/blog/metamorphic-testing-oracle-problem/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/metamorphic-testing-oracle-problem/</guid><description>Metamorphic testing позволяет проверять корректность кода, не зная точного ожидаемого вывода. Вот как это работает, когда чего-то не хватает, и как начать использовать.</description><pubDate>Thu, 13 Aug 2026 00:00:00 GMT</pubDate></item><item><title>TypeScript не даст вам сделать этот вызов: кодирование состояния протокола в системе типов</title><link>https://autotomy.dev/ru/blog/typescript-phantom-types-protocol-state/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/typescript-phantom-types-protocol-state/</guid><description>Как использовать phantom types и параметры `this`, чтобы превращать недопустимые переходы протокола в ошибки компиляции вместо runtime-багов.</description><pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate></item><item><title>OpenAPI даёт алфавит. Session types — это грамматика.</title><link>https://autotomy.dev/ru/blog/openapi-session-types-protocol-gap/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/openapi-session-types-protocol-gap/</guid><description>Спецификации OpenAPI описывают схемы запросов и ответов, но не задают допустимые последовательности сообщений. Вот как извлечь то, что можно, и где всё ещё нужно заполнять пробелы.</description><pubDate>Tue, 11 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Типы сессий работают. Большинство языков просто отказалось их реализовывать.</title><link>https://autotomy.dev/ru/blog/session-types-research-to-production/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/session-types-research-to-production/</guid><description>Типы сессий кодируют коммуникационные протоколы в системе типов, превращая runtime-ошибки протоколов в ошибки компиляции. Вот почему они провели тридцать лет в исследовательских статьях, прежде чем продакшн-код смог их использовать.</description><pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Как типы сессий превращают deadlocks в ошибки компилятора</title><link>https://autotomy.dev/ru/blog/session-types-deadlock-compiler-errors/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/session-types-deadlock-compiler-errors/</guid><description>Типы сессий кодируют коммуникационные протоколы в вашей системе типов, превращая несоответствия передачи сообщений в ошибки компилятора до того, как ваш код запустится.</description><pubDate>Sun, 09 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Abstract interpretation звучит как требование для PhD. Больше это не так.</title><link>https://autotomy.dev/ru/blog/infer-abstract-interpretation-ci/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/infer-abstract-interpretation-ci/</guid><description>Как запускать формальный статический анализ в CI-пайплайне с помощью Infer, с рабочими конфигами и реалистичными компромиссами.</description><pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate></item><item><title>LLM могут ранжировать предупреждения статического анализа. Они просто не могут объяснить почему.</title><link>https://autotomy.dev/ru/blog/llm-static-analysis-triage/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/llm-static-analysis-triage/</guid><description>Большие языковые модели могут помочь в триаже ложноположительных срабатываний статического анализа, но они не понимают семантику программ так, как это делает abstract interpretation. Вот как совместить оба подхода.</description><pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Facebook распараллелил Android с помощью abstract interpretation. Вот как это работает.</title><link>https://autotomy.dev/ru/blog/facebook-android-abstract-interpretation-races/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/facebook-android-abstract-interpretation-races/</guid><description>Как Facebook использовал abstract interpretation и намеренную unsoundness для поиска race conditions в масштабе миллионов строк Android-кода.</description><pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Meta нашла 100 000 багов в production-коде статическим анализатором, который никогда не запускает программу</title><link>https://autotomy.dev/ru/blog/meta-infer-100000-bugs-static-analysis/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/meta-infer-100000-bugs-static-analysis/</guid><description>Infer от Meta использует abstract interpretation и bi-abduction для поиска null dereference, утечек памяти и race conditions, рассуждая о структуре кода, а не о его выполнении. Вот как это работает и как использовать в своей codebase.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Статический анализ не может доказать, что ваш самолёт не разобьётся. Но он может доказать кое-что более полезное.</title><link>https://autotomy.dev/ru/blog/static-analysis-aviation-abstract-interpretation/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/static-analysis-aviation-abstract-interpretation/</guid><description>Абстрактная интерпретация аппроксимирует сверху каждое возможное состояние программы. Если деление на ноль недостижимо в абстракции, оно недостижимо и в реальном коде. Вот как это работает и где даёт сбои.</description><pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Как доказать, что в вашем коде нет ошибок времени выполнения (и почему вы, скорее всего, бросите эту затею)</title><link>https://autotomy.dev/ru/blog/abstract-interpretation-runtime-error-proof/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/abstract-interpretation-runtime-error-proof/</guid><description>Абстрактная интерпретация позволяет доказать невозможность ошибок времени выполнения ещё до запуска программы. Вот как это работает на самом деле, почему это сложно и где это применяется в вашем инструментарии.</description><pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Ваш код на C может работать на capability-оборудовании без полного rewrite</title><link>https://autotomy.dev/ru/blog/cheri-c-porting-hybrid-abi/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/cheri-c-porting-hybrid-abi/</guid><description>Гибридный ABI CHERI позволяет портировать код на C на capability-оборудование постепенно. Вот как компилировать, что ломается и как это исправить без rewrite всей codebase.</description><pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Hardware capability не провалился. Он пришёл на 40 лет раньше времени.</title><link>https://autotomy.dev/ru/blog/capability-hardware-cheri-history/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/capability-hardware-cheri-history/</guid><description>Безопасность памяти на уровне hardware была возможна с 1970-х. Вот почему архитектуры capability проигрывали плоским моделям памяти, и почему CHERI наконец меняет расклад.</description><pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Ваша зависимость на C может уронить весь процесс. WebAssembly может это остановить.</title><link>https://autotomy.dev/ru/blog/c-library-wasm-sandbox/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/c-library-wasm-sandbox/</guid><description>Контейнеры — это overkill для изоляции одной C-библиотеки. Скомпилируйте её в WebAssembly и запустите внутри WASI-sandbox для memory safety, capability-based доступа к файловой системе и crash containment без Docker.</description><pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Ваш телефон уже оснащён аппаратным обеспечением, которое обнаруживает повреждение памяти</title><link>https://autotomy.dev/ru/blog/mobile-memory-tagging-extension/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/mobile-memory-tagging-extension/</guid><description>ARM Memory Tagging Extension и GWP-ASan делают возможным обнаружение проблем безопасности памяти в продакшене на современных мобильных устройствах. Вот как они работают и каковы компромиссы.</description><pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Buffer Overflows Продолжают Происходить, Потому Что Мы Исправляем Их в Software</title><link>https://autotomy.dev/ru/blog/cheri-hardware-buffer-overflow-prevention/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/cheri-hardware-buffer-overflow-prevention/</guid><description>CHERI — это hardware-расширение, которое превращает каждый pointer в bounded capability. Вот как оно останавливает buffer overflows на уровне CPU, что это стоит и как попробовать его на реальном оборудовании.</description><pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate></item><item><title>LLM не могут доказать корректность вашего кода, но они могут написать шаблонный код, который это делает</title><link>https://autotomy.dev/ru/blog/llm-cleanroom-proof-obligation-automation/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/llm-cleanroom-proof-obligation-automation/</guid><description>Верификация по методологии Cleanroom требует генерации и разрядки обязательств доказательства. Вот как LLM автоматизируют аннотации и генерацию VC, чтобы вы могли сосредоточиться на самых сложных доказательствах.</description><pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Cleanroom Даёт 0,1 Дефектов на KLOC. Полный Ритуал Для Этого Не Нужен.</title><link>https://autotomy.dev/ru/blog/cleanroom-pragmatic-subset/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/cleanroom-pragmatic-subset/</guid><description>Cleanroom software engineering снижает плотность дефектов в 100 раз, но полное внедрение требует отдельных команд тестирования и формальных доказательств. Вот прагматичное подмножество, которое улавливает большую часть выгоды без overhead.</description><pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Zero-Defect Process IBM обеспечил 0,1 bug на KLOC. Промышленность всё равно отказалась от него.</title><link>https://autotomy.dev/ru/blog/ibm-cleanroom-zero-defects-disappearance/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/ibm-cleanroom-zero-defects-disappearance/</guid><description>Cleanroom engineering IBM достиг defect rate в 100 раз лучше промышленного среднего, а затем исчез в забвении. Исчезновение не имело ничего общего с тем, работал ли он.</description><pubDate>Sun, 26 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Кто-то действительно верифицировал 10 000 строк с нулевым количеством дефектов? IBM сделала это, и методология страннее результата.</title><link>https://autotomy.dev/ru/blog/ibm-cleanroom-10000-lines-zero-defects/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/ibm-cleanroom-10000-lines-zero-defects/</guid><description>Cleanroom software engineering обещала инкременты с нулевым количеством дефектов через mathematical verification вместо debugging. Мы смотрим на реальные данные проекта IBM, чтобы проверить, выдержал ли этот тезис.</description><pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate></item><item><title>У вашего модуля три слоя. Вы, скорее всего, написали только один.</title><link>https://autotomy.dev/ru/blog/cleanroom-box-structure-three-layers/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/cleanroom-box-structure-three-layers/</guid><description>Box Structure заставляет вас определять, что делает модуль, что он запоминает и как работает, как три отдельных проверяемых слоя. Вот как Cleanroom использует их для устранения отладки.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate></item><item><title>IBM поставляла ПО с 0,1 дефектами на KLOC, запрещая разработчикам запускать собственный код</title><link>https://autotomy.dev/ru/blog/ibm-cleanroom-01-defects-per-kloc/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/ibm-cleanroom-01-defects-per-kloc/</guid><description>Процесс Cleanroom-инжиниринга IBM достиг дефектности в 100 раз лучше отраслевого среднего, предотвращая баги вместо их поиска. Вот как это работало, почему почти никто это не использует и что вы можете позаимствовать из него сегодня.</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Ваша литературная программа сломана, пока CI не может сделать tangle без вас</title><link>https://autotomy.dev/ru/blog/ci-literate-programming-tangle/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/ci-literate-programming-tangle/</guid><description>Literate programming обещает единственный источник правды, но ручные шаги weave и tangle ломают CI/CD-пайплайн. Вот как автоматизировать извлечение и генерацию документации, чтобы ваши Markdown-файлы оставались каноническими.</description><pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Сначала объяснять код LLM снизило мою частоту багов на 85 %</title><link>https://autotomy.dev/ru/blog/llm-rubber-ducking-bug-rate/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/llm-rubber-ducking-bug-rate/</guid><description>Я 30 дней писал объяснения дизайна перед тем, как просить код у LLM. Результаты изменили моё отношение к rubber-ducking.</description><pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Я перестал копировать код в документацию, храня тесты, код и прозу в одном Markdown-файле</title><link>https://autotomy.dev/ru/blog/literate-programming-markdown-python/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/literate-programming-markdown-python/</guid><description>Literate programming поддерживает синхронизацию документации, тестов и реализации, делая Markdown-файл единственным источником правды. Вот как реализовать это тридцатью строками на Python.</description><pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Ваш тред в Claude уже является документацией. Он просто умрёт через двенадцать часов.</title><link>https://autotomy.dev/ru/blog/claude-thread-to-documentation/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/claude-thread-to-documentation/</guid><description>Диалоги с LLM содержат намерения, отвергнутые альтернативы и работающий код. Именно это и должна представлять собой документация. Вот как превратить эфемерный чат в долговечные, доступные для поиска документы, не теряя повествования.</description><pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Текстовые редакторы позволяют писать невалидный код. Древовидные редакторы не позволили бы.</title><link>https://autotomy.dev/ru/blog/structured-editing-ast-text-editors/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/structured-editing-ast-text-editors/</guid><description>Каждый компилятор видит ваш код как дерево, но редактор позволяет редактировать сырой текст. Вот как выглядит структурное редактирование на самом деле, почему оно не захватило мир и как получить его преимущества, не меняя инструменты.</description><pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Donald Knuth хотел, чтобы программы читались как литература. У компилятора были другие планы.</title><link>https://autotomy.dev/ru/blog/knuth-literate-programming-history/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/knuth-literate-programming-history/</guid><description>Literate programming обещала, что код должен писаться в первую очередь для людей, а во вторую — для машин. Четыре десятилетия спустя почти никто так не пишет. Вот почему самая элегантная идея в документировании программного обеспечения не смогла изменить наш способ работы.</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Исправить баг — просто. Понять, почему он существует, — вот что важно.</title><link>https://autotomy.dev/ru/blog/fagan-causal-analysis-defects/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/fagan-causal-analysis-defects/</guid><description>Большинство команд исправляют дефекты и двигаются дальше. Те же дефекты возвращаются. Вот как запустить причинный анализ внутри Fagan inspection, чтобы перестать писать один и тот же баг дважды.</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Ревью Pull Request выявляет 15–30 % дефектов. Данные говорят об этом уже 50 лет.</title><link>https://autotomy.dev/ru/blog/pr-reviews-catch-15-to-30-percent-defects/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/pr-reviews-catch-15-to-30-percent-defects/</guid><description>Множество исследований в IBM, AT&amp;T, HP и Microsoft подтверждают, что неформальное code review выявляет примерно четверть дефектов. Вот что данные говорят на самом деле, почему этот показатель так низок и как это исправить.</description><pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Универсальный чек-лист ничего не ловит. Структурированный ловит 60 % дефектов.</title><link>https://autotomy.dev/ru/blog/fagan-structured-checklist-defect-detection/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/fagan-structured-checklist-defect-detection/</guid><description>Большинство чек-листов для ревью — это скопированные списки благих намерений. Структурированный чек-лист в стиле Fagan inspection строится на основе реальных данных о дефектах, ориентирован на конкретные типы артефактов и используется во время индивидуальной подготовки. Вот как построить тот, который работает.</description><pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate></item><item><title>LLM может провести предварительную инспекцию кода. Но он не может провести собрание.</title><link>https://autotomy.dev/ru/blog/llm-fagan-inspection-preparation/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/llm-fagan-inspection-preparation/</guid><description>Инспекции Фагана требуют от четырёх до шести человек и двух часов на проверку 250 строк. LLM может сократить эти затраты, взяв на себя подготовку и соблюдение чек-листа, но не может заменить человеческие роли, которые находят самые дорогие дефекты.</description><pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Fagan Inspections выявляли 90% дефектов до тестирования. Затем мы перестали их проводить.</title><link>https://autotomy.dev/ru/blog/fagan-inspections-disappearance-ibm/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/fagan-inspections-disappearance-ibm/</guid><description>Структурированный процесс ревью Майкла Фагана в IBM позволял находить почти все дефекты ещё до компиляции. Но он поглощал 15–20% общих трудозатрат проекта. Вот почему исчез самый эффективный метод ревью в истории разработки ПО и что команды на самом деле теряют.</description><pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Ваш лучший ревьюер пропускает большинство дефектов. Fagan измерил это в IBM в 1976 году.</title><link>https://autotomy.dev/ru/blog/fagan-reviewer-defect-detection-variance/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/fagan-reviewer-defect-detection-variance/</guid><description>Даже senior-инженеры находят лишь долю дефектов в неструктурированном review. Исследование Michael Fagan в IBM показало, почему, и построило структурированный процесс inspection для исправления этого.</description><pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Большинство code review находит 20% дефектов. Fagan inspections находят 90%.</title><link>https://autotomy.dev/ru/blog/fagan-inspections-90-percent-defects/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/fagan-inspections-90-percent-defects/</guid><description>Неформальное code review выявляет 15–30% дефектов. Fagan inspections — структурированный 50-летний процесс — стабильно демонстрирует показатели устранения 60–90%. Вот как они работают, почему команды избегают их и как запустить облегчённую версию.</description><pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate></item><item><title>AutoVerus превращает 40 часов написания proof в 3 вызова LLM. Хитрость в том, чтобы знать, когда сдаваться.</title><link>https://autotomy.dev/ru/blog/autoverus-llm-rust-verification/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/autoverus-llm-rust-verification/</guid><description>AutoVerus использует сеть агентов LLM для генерации proof корректности Verus для кода на Rust, автоматизируя более 90% proof obligations через цикл generate-repair-discharge, управляемый обратной связью SMT-solver.</description><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate></item><item><title>LLM могут генерировать код на Rust. Формальные доказательства — это совершенно другая проблема.</title><link>https://autotomy.dev/ru/blog/llm-rust-formal-proofs-hallucination/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/llm-rust-formal-proofs-hallucination/</guid><description>Большие языковые модели пишут удивительно хороший код на Rust, но когда вы просите их о формальном доказательстве, они галлюцинируют инварианты и изобретают синтаксис, который не принимает ни один верификатор. Вот что они на самом деле делают правильно, где ломаются и как их всё равно использовать.</description><pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Ожидание race conditions — ужасная стратегия тестирования</title><link>https://autotomy.dev/ru/blog/model-checking-race-conditions/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/model-checking-race-conditions/</guid><description>Почему model checking превосходит дни продакшен-рантайма в поиске concurrency-багов и как применить его к собственному коду.</description><pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Можно верифицировать код с помощью model checking, не изучая temporal logic</title><link>https://autotomy.dev/ru/blog/is-there-a-model-checker-that-doesnt-require-learning-temporal-logic/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/is-there-a-model-checker-that-doesnt-require-learning-temporal-logic/</guid><description>Bounded model checkers вроде Kani и реляционные model finders вроде Alloy позволяют проверять свойства с помощью обычных assertions и constraints. Вы жертвуете доказательствами liveness ради кривой обучения, измеряемой часами, а не неделями.</description><pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Можно доказать корректность кода на Rust, не написав ни одного доказательства, но пространство состояний — это плата</title><link>https://autotomy.dev/ru/blog/rust-model-checking-kani-state-space/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/rust-model-checking-kani-state-space/</guid><description>Инструменты model checking вроде Kani позволяют верифицировать свойства Rust с помощью assertions вместо формальных доказательств. Проблема в том, что происходит, когда ваши циклы не имеют маленьких границ.</description><pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Распределённый протокол нельзя покрыть юнит-тестами, но можно проверить модельно</title><link>https://autotomy.dev/ru/blog/distributed-protocol-model-checking-tla/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/distributed-protocol-model-checking-tla/</guid><description>Исправление распределённых багов после деплоя обходится дорого. Модельная проверка позволяет найти их до написания хотя бы одной строчки кода реализации. Вот как это сделать с помощью TLA+.</description><pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Копирование файлов `.env` между окружениями — это не стратегия конфигурации</title><link>https://autotomy.dev/ru/blog/infrastructure-config-dsl-per-context/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/infrastructure-config-dsl-per-context/</guid><description>Как команды инфраструктуры управляют конфигурацией в dev, staging и production с помощью DSL на контекст, которые делают различия между окружениями явными и типобезопасными.</description><pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Grammar-constrained decoding: заставляем LLMs выдавать валидный синтаксис на каждом токене</title><link>https://autotomy.dev/ru/blog/grammar-constrained-decoding-llm/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/grammar-constrained-decoding-llm/</guid><description>LLMs галлюцинируют синтаксис, потому что делают probabilistic sampling токенов. Grammar-constrained decoding фильтрует vocabulary на каждом шаге, так что эмитируются только те токены, которые сохраняют синтаксическую валидность.</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Перевод с английского на тему — просто. Сделать его детерминированным — вот настоящая проблема.</title><link>https://autotomy.dev/ru/blog/english-to-theme-deterministic-design-tokens/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/english-to-theme-deterministic-design-tokens/</guid><description>Можно генерировать дизайн-токены из простых английских описаний, но только если рассматривать описание как DSL с ограниченным контекстом, со схемой-контрактом и снапшот-тестами.</description><pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Выбрось файл грамматики: пиши свой DSL-парсер на простом TypeScript</title><link>https://autotomy.dev/ru/blog/typescript-parser-combinators-dsl/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/typescript-parser-combinators-dsl/</guid><description>Генераторы парсеров — избыточны для большинства DSL с ограниченным контекстом. Парсер-комбинаторы позволяют построить рабочий парсер на том же языке, что и приложение, без генерируемого кода и без шагов сборки.</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Ошибки конфигурации в рантайме — это отказы в продакшене, которые вы согласились допустить</title><link>https://autotomy.dev/ru/blog/config-validation-build-time/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/config-validation-build-time/</guid><description>Как отлавливать ошибки конфигурации до того, как приложение начнёт обрабатывать трафик, используя валидацию схем и проверки во время сборки.</description><pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Ваши зависимости могут читать переменные окружения. JavaScript им позволяет.</title><link>https://autotomy.dev/ru/blog/javascript-capability-security-lockdown/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/javascript-capability-security-lockdown/</guid><description>Ambient Authority означает, что любой код в вашем процессе Node.js может взаимодействовать с файловой системой, сетью и окружением. Вот как убрать это с помощью lockdown, compartments и явной передачи capabilities.</description><pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Близость в сети — это не идентичность: как сервисы аутентифицируются без окружающего полномочия</title><link>https://autotomy.dev/ru/blog/service-authentication-without-ambient-authority/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/service-authentication-without-ambient-authority/</guid><description>Большая часть доверия между сервисами основана на сетевом расположении, а не на криптографическом доказательстве. Вот как возможности, mTLS и SPIFFE позволяют сервисам аутентифицироваться без окружающего полномочия, и почему это сложнее, чем должно быть.</description><pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Ваши зависимости могут читать любые файлы на диске. cap-std заставляет их запрашивать разрешение.</title><link>https://autotomy.dev/ru/blog/rust-cap-std-capability-filesystem/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/rust-cap-std-capability-filesystem/</guid><description>Стандартная библиотека Rust предоставляет окружающее файловое полномочие каждой зависимости. cap-std заменяет его API на основе полномочий, которые заставляют код доказывать, что у него есть право доступа к пути, прежде чем он откроет его.</description><pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Ваш сервис — невольный пособник: как работают атаки Confused Deputy</title><link>https://autotomy.dev/ru/blog/whats-a-confused-deputy-attack-and-how-do-i-prevent-it/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/whats-a-confused-deputy-attack-and-how-do-i-prevent-it/</guid><description>Атака Confused Deputy заставляет привилегированный сервис использовать свои полномочия против себя. Вот как злоумышленники эксплуатируют неявное доверие и почему capability-based security — это решение.</description><pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Ваши проверки прав вам лгут</title><link>https://autotomy.dev/ru/blog/typescript-capability-based-security/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/typescript-capability-based-security/</guid><description>Безопасность на основе capabilities заменяет разбросанные проверки ролей на неподделываемые токены полномочий. Вот как реализовать это в TypeScript, не делая код нечитаемым.</description><pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Что, если каждая функция должна была бы получить разрешение, вместо того чтобы предполагать его?</title><link>https://autotomy.dev/ru/blog/capability-based-security-permissions/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/capability-based-security-permissions/</guid><description>Большая часть кода работает с окружающей полномочностью: каждая функция может затронуть всё. Безопасность на основе возможностей переворачивает эту модель, заставляя функции получать явные, ограниченные разрешения.</description><pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Хватит выбрасывать ошибки, которые не видит ваша система типов</title><link>https://autotomy.dev/ru/blog/should-i-stop-throwing-errors-and-start-returning-them/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/should-i-stop-throwing-errors-and-start-returning-them/</guid><description>Выброшенные исключения скрывают пути отказа от вашей системы типов. Вот почему явный возврат ошибок делает ваш код более честным, и как перейти на него, не ненавидя свою жизнь.</description><pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Newtypes в Rust делают некорректные состояния невыразимыми на этапе компиляции бесплатно</title><link>https://autotomy.dev/ru/blog/rust-newtypes-zero-cost-safety/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/rust-newtypes-zero-cost-safety/</guid><description>Однополевая обёрточная структура ловит баги смешения единиц измерения и путаницу типов, не добавляя ни одного байта накладных расходов.</description><pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Операторы switch пропускают баги на этапе компиляции</title><link>https://autotomy.dev/ru/blog/is-there-a-better-way-than-switch-statements-for-type-safe-matching/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/is-there-a-better-way-than-switch-statements-for-type-safe-matching/</guid><description>Операторы switch в TypeScript молча позволяют забыть кейсы. Вот как заменить их паттернами с проверкой на исчерпываемость, которые ломают сборку вместо рантайма.</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Компилятор должен отлавливать недостающие case&apos;ы состояний, а не ваша команда QA</title><link>https://autotomy.dev/ru/blog/typescript-exhaustiveness-state-machines/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/typescript-exhaustiveness-state-machines/</guid><description>Добавить новое состояние в машину легко. Помнить об обновлении каждого switch — нет. Вот как заставить TypeScript отказаться компилироваться, если вы забудете case.</description><pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Да, но ваша система типов должна знать, что такое доллар</title><link>https://autotomy.dev/ru/blog/typescript-currency-types/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/typescript-currency-types/</guid><description>TypeScript видит все числа как одинаковые. Вот как научить его различать USD и EUR, чтобы компилятор отлавливал баги конвертации валют ещё до продакшена.</description><pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Число — это не просто число: как заставить компилятор ловить баги с единицами измерения</title><link>https://autotomy.dev/ru/blog/typescript-unit-types-compile-time/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/typescript-unit-types-compile-time/</guid><description>Передача миллисекунд туда, где ожидались секунды, — это баг, который проходит все тесты. Вот как закодировать единицы измерения прямо в системе типов TypeScript, чтобы смешение вызывало ошибку на этапе компиляции с нулевыми затратами во время выполнения.</description><pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate></item><item><title>TypeScript позволил мне передать идентификатор пользователя туда, где ожидается идентификатор заказа</title><link>https://autotomy.dev/ru/blog/typescript-branded-types-newtypes/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/typescript-branded-types-newtypes/</guid><description>Псевдонимы типов не создают отдельные типы в TypeScript. Брендированные типы — да, и они могут защитить вас от перепутывания идентификаторов на этапе компиляции.</description><pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Differential testing работает без формального доказательства, но common-mode failures — вот подвох</title><link>https://autotomy.dev/ru/blog/differential-testing-common-mode-failures/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/differential-testing-common-mode-failures/</guid><description>Differential testing позволяет находить баги, не зная правильного ответа. Проблема в том, что коррелированные ошибки выглядят как согласие. Вот как обнаружить слепые зоны.</description><pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Тестирование не докажет, что две функции эквивалентны. Вот что докажет.</title><link>https://autotomy.dev/ru/blog/function-equivalence-smt-solvers/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/function-equivalence-smt-solvers/</guid><description>N-версионное программирование предполагает, что ваши реализации согласованы. Мы разбираем, почему тестов недостаточно, как SMT-солверы могут реально доказать эквивалентность и где провести границу между «достаточно хорошо» и формально верифицировано.</description><pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Что делать, если мои варианты LLM не согласны? Какой из них прав?</title><link>https://autotomy.dev/ru/blog/llm-variant-disagreement-resolution/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/llm-variant-disagreement-resolution/</guid><description>Запуск нескольких LLM параллельно позволяет отлавливать ошибки, которые любая отдельная модель уверенно пропустит. Вот как построить систему разрешения разногласий, которая действительно работает.</description><pubDate>Sat, 13 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Пять реализаций и нет большинства: как на самом деле выбрать лучшую</title><link>https://autotomy.dev/ru/blog/n-version-implementation-selection/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/n-version-implementation-selection/</guid><description>N-version programming звучит просто: запустить несколько реализаций и выбрать лучший ответ. На практике «лучший» определить гораздо сложнее, чем «самый распространённый».</description><pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Тот же LLM может написать пять версий вашей функции. Вот как сделать их по-настоящему разными.</title><link>https://autotomy.dev/ru/blog/llm-n-version-diverse-implementations/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/llm-n-version-diverse-implementations/</guid><description>N-version programming с LLM не требует нескольких моделей. Можно извлечь разнообразные, корректные реализации из одной модели, варьируя промпты, персоны и ограничения на рассуждения.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate></item><item><title>NASA запускала 27 копий одной программы. Баги голосовали единым блоком.</title><link>https://autotomy.dev/ru/blog/nasa-n-version-programming-knight-leveson/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/nasa-n-version-programming-knight-leveson/</guid><description>N-version programming обещало, что независимые команды допускают независимые ошибки. Эксперимент Knight и Leveson в 1986 году доказал обратное, и NASA тихо отказалась от этой идеи.</description><pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Половина ваших сценариев Cucumber пропущена. Вот почему этот статус вам лжёт.</title><link>https://autotomy.dev/ru/blog/cucumber-skipped-scenarios-diagnosis/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/cucumber-skipped-scenarios-diagnosis/</guid><description>Статус &apos;skipped&apos; в Cucumber скрывает три совершенно разные проблемы. Вот как диагностировать, какая из них пожирает ваш тестовый набор, и как это остановить.</description><pubDate>Tue, 09 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Ваши спецификации Gherkin врут вам</title><link>https://autotomy.dev/ru/blog/gherkin-specs-automated-sync/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/gherkin-specs-automated-sync/</guid><description>Спецификации Gherkin расходятся с кодом, как только вы доверяете людям обновлять их вручную. Вот как автоматизировать проверки, которые заставляют feature files оставаться честными.</description><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Ваш компилятор проверяет синтаксис. Ваши тесты должны проверять архитектуру.</title><link>https://autotomy.dev/ru/blog/architecture-tests-ci-enforcement/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/architecture-tests-ci-enforcement/</guid><description>Большинство команд документирует правила архитектуры в вики. Вот как записать их в виде исполняемых тестов, которые ломают CI, когда ваш граф зависимостей уходит от задуманного.</description><pubDate>Sun, 07 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Ваш доменный слой импортирует Postgres. Ваш CI всё равно.</title><link>https://autotomy.dev/ru/blog/clean-architecture-domain-infrastructure-ci/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/clean-architecture-domain-infrastructure-ci/</guid><description>Диаграммы чистой архитектуры отлично смотрятся на доске. Вот как заставить пайплайн сборки принудительно соблюдать направление зависимостей, чтобы доменный код не мог обращаться к инфраструктуре.</description><pubDate>Sat, 06 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Ваша архитектурная диаграмма уже ложь</title><link>https://autotomy.dev/ru/blog/architecture-docs-code-generated-diagrams/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/architecture-docs-code-generated-diagrams/</guid><description>Архитектурная документация гниёт в тот момент, когда вы её сохраняете. Вот как поддерживать её в актуальном состоянии с помощью диаграмм, генерируемых из кода, ADR и автоматизированных архитектурных тестов.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Ваш цикл повторов предполагает, что первый запрос не удался. Скорее всего, это не так.</title><link>https://autotomy.dev/ru/blog/idempotency-keys-api-retries/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/idempotency-keys-api-retries/</guid><description>Таймаут или сбой не означают, что ваш API-запрос был потерян. Вот как ключи идемпотентности делают повторы безопасными, и как паттерн хранения на самом деле предотвращает дублирование.</description><pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Блокировка, которая переживает ваш процесс: как на самом деле работают distributed lease</title><link>https://autotomy.dev/ru/blog/distributed-leases-fencing-tokens/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/distributed-leases-fencing-tokens/</guid><description>In-memory mutex исчезает при перезапуске сервера. Вот как distributed lease с fencing token и TTL предотвращают дублирование работы при сбоях, и где они всё ещё ломаются.</description><pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Circuit breaker без goroutine, таймеров и фоновой нагрузки</title><link>https://autotomy.dev/ru/blog/circuit-breaker-lazy-recovery-no-goroutines/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/circuit-breaker-lazy-recovery-no-goroutines/</guid><description>Большинство библиотек circuit breaker порождают фоновые потоки для проверки восстановления. Они вам не нужны. Вот request-driven дизайн, который устраняет всю фоновую нагрузку без потери корректности.</description><pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate></item><item><title>У вашего веб-сервиса есть путь корректного завершения. Это и есть баг.</title><link>https://autotomy.dev/ru/blog/crash-only-software-web-services/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/crash-only-software-web-services/</guid><description>Crash-only софт обрабатывает каждый сбой как крах, а каждый запуск — как восстановление. Для веб-сервисов это означает удаление логики завершения и проектирование состояния, которое переживёт kill -9.</description><pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Как убить выжившего мутанта, когда вы не понимаете, что он изменил</title><link>https://autotomy.dev/ru/blog/killing-surviving-mutants/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/killing-surviving-mutants/</guid><description>Мутационное тестирование нашло выжившего, и вы понятия не имеете, что делает мутация. Вот пошаговый метод написания правильного теста без предварительного понимания мутанта.</description><pubDate>Sun, 31 May 2026 00:00:00 GMT</pubDate></item><item><title>Код аутентификации нуждается в 90% покрытии мутациями. Ваши строковые утилиты — нет.</title><link>https://autotomy.dev/ru/blog/mutation-score-per-module-risk/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/mutation-score-per-module-risk/</guid><description>Почему принудительное единое покрытие мутациями для всей кодовой базы — ошибка, и как установить пороговые значения для каждого модуля в соответствии с реальным риском.</description><pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate></item><item><title>Ваши тесты проходят. Mutation score — 40%. Вот что на самом деле говорят выжившие мутанты.</title><link>https://autotomy.dev/ru/blog/my-tests-pass-but-my-mutation-score-is-40-whats-a-surviving-mutant/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/my-tests-pass-but-my-mutation-score-is-40-whats-a-surviving-mutant/</guid><description>Code coverage говорит, что всё в порядке. Mutation testing говорит, что ваши тесты — в основном декорация. Вот как выжившие мутанты выявляют этот разрыв и как его устранить.</description><pubDate>Fri, 29 May 2026 00:00:00 GMT</pubDate></item><item><title>Mutation testing в Rust работает, но ваше время компиляции этого не простит</title><link>https://autotomy.dev/ru/blog/rust-mutation-testing-cargo-mutants/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/rust-mutation-testing-cargo-mutants/</guid><description>cargo-mutants находит тесты, которые только притворяются, что проверяют ваш код. Вот как работает mutation testing в Rust, что он ловит и стоит ли затрат времени компиляции.</description><pubDate>Thu, 28 May 2026 00:00:00 GMT</pubDate></item><item><title>Спектр валидации: Почему AI лучше пишет код для бэкенда</title><link>https://autotomy.dev/ru/blog/ai-coding-validation-spectrum-backend-web-mobile/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/ai-coding-validation-spectrum-backend-web-mobile/</guid><description>Разработка с AI следует градиенту валидации. Бэкенд: миллисекунды. Веб: минуты. Мобильная разработка: часы. Цикл обратной связи определяет, где AI работает.</description><pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate></item><item><title>Обезьяна, пулемёт, аимбот: управление AI в командах</title><link>https://autotomy.dev/ru/blog/monkey-machine-gun-aimbot/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/monkey-machine-gun-aimbot/</guid><description>Управление AI-кодом — не про отбирание инструментов у джуниоров и AI-агентов. Это про guardrails, которые делают каждый выстрел точным — без побочного ущерба.</description><pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate></item><item><title>Мутационное тестирование занимает 4 часа. Как команды реально используют его в CI?</title><link>https://autotomy.dev/ru/blog/mutation-testing-takes-4-hours-how-do-teams-actually-use-it-in-ci/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/mutation-testing-takes-4-hours-how-do-teams-actually-use-it-in-ci/</guid><description>Большинство команд не запускают полные наборы мутационного тестирования на каждый коммит. Вот как инженерные команды реально интегрируют его в CI, не ломая пайплайн сборки.</description><pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate></item><item><title>Ваши unit tests проходят, но данные всё равно исчезают</title><link>https://autotomy.dev/ru/blog/database-persistence-testing-mocks/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/database-persistence-testing-mocks/</guid><description>Mock-тесты базы данных проверяют синтаксис SQL, но не то, переживут ли строки сбои, конкурентные записи или несоответствие схемы. Вот как тестировать persistence по-настоящему.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate></item><item><title>Страх против напора: Две реальности AI-кодинга</title><link>https://autotomy.dev/ru/blog/fear-vs-steamroll-ai-coding-divide/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/fear-vs-steamroll-ai-coding-divide/</guid><description>AI-кодинг работает для элитных команд, способных восстановиться после любого беспорядка. Все остальные получают страх, упавший CI и заброшенные эксперименты. Разрыв — не в модели.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate></item><item><title>Тестирование Redux без утопания в мок-экшенах</title><link>https://autotomy.dev/ru/blog/redux-testing-real-state-transitions/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/redux-testing-real-state-transitions/</guid><description>Мокирование каждого экшена Redux превращает ваши тесты в валидатор ченджлога. Вот как тестировать стор с реальными переходами состояния.</description><pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate></item><item><title>ИИ-кодинг в продакшене: почему большинство команд сдаётся</title><link>https://autotomy.dev/ru/blog/ai-coding-in-production-autotomy-framework/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/ai-coding-in-production-autotomy-framework/</guid><description>Большинство команд пробуют ИИ-кодинг, выпускают код, который проваливает QA, и сдаются. Проблема не в модели — а в отсутствии ограждений, которые делают вывод ИИ надёжным.</description><pubDate>Sun, 24 May 2026 00:00:00 GMT</pubDate></item><item><title>100 прогонов — это ложь: как на самом деле определять размер property-based тестов</title><link>https://autotomy.dev/ru/blog/property-based-testing-run-count/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/property-based-testing-run-count/</guid><description>Стандартные 100 примеров в property-based testing — это социальный компромисс, а не статистическая стратегия. Вот как выбрать количество прогонов, соответствующее вашим потребностям в уверенности и бюджету CI.</description><pubDate>Sun, 24 May 2026 00:00:00 GMT</pubDate></item><item><title>Fuck-u-code: детерминированный барьер качества, который забыл ваш AI-пайплайн</title><link>https://autotomy.dev/ru/blog/fuck-u-code-deterministic-quality-gate-ai-pipeline/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/fuck-u-code-deterministic-quality-gate-ai-pipeline/</guid><description>У вас есть проверка типов, линтинг и архитектурные правила. Но ваш детерминированный стек не видит сложности, дублирования и катастроф с именованием. Вот исправление за $0.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate></item><item><title>Тесты на основе свойств в Rust находят баги, которые пропускают ваши юнит-тесты</title><link>https://autotomy.dev/ru/blog/rust-property-based-testing-quickcheck/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/rust-property-based-testing-quickcheck/</guid><description>Тестирование на примерах покрывает только те входные данные, о которых вы подумали. Тестирование на основе свойств генерирует случайные данные, проверяет инварианты и сокращает ошибки до минимальных контрпримеров.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate></item><item><title>Почему первая версия никогда не проблема: разработка с AI и долгосрочное сопровождение</title><link>https://autotomy.dev/ru/blog/ai-coding-why-version-one-is-never-the-problem/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/ai-coding-why-version-one-is-never-the-problem/</guid><description>Инструменты для разработки с AI отлично создают первую версию. Настоящая инженерная задача начинается на четвёртой версии, когда команде нужно что-то изменить, не ломая всё остальное.</description><pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate></item><item><title>Код, сгенерированный AI, и принцип заменяемости</title><link>https://autotomy.dev/ru/blog/ai-generated-code-replaceability-principle/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/ai-generated-code-replaceability-principle/</guid><description>Настоящая мера качества кода, сгенерированного AI, — не в том, работает ли он в первый день. Она в том, сможете ли вы заменить его на тридцатый день, не переписывая всё остальное.</description><pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate></item><item><title>Детерминированные guardrails для AI codebases</title><link>https://autotomy.dev/ru/blog/deterministic-guardrails-ai-codebases/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/deterministic-guardrails-ai-codebases/</guid><description>Проверка человеком непоследовательна. Проверка AI ещё хуже. Единственная масштабируемая защита для codebases, сгенерированных AI, — детерминированное enforcement: правила, которые валят сборку, а не советы, которые игнорируют.</description><pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate></item><item><title>Ваши unit tests проходят. Ваш production-код всё равно сломан.</title><link>https://autotomy.dev/ru/blog/i-write-unit-tests-why-do-bugs-still-slip-through/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/i-write-unit-tests-why-do-bugs-still-slip-through/</guid><description>Метрики coverage создают ложное чувство безопасности. Вот почему unit tests пропускают баги, которые реально лишают вас сна, и что тестировать вместо этого.</description><pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate></item><item><title>Runtime contracts в Rust могут быть бесплатными в релизных сборках, но компилятор не сделает это за вас</title><link>https://autotomy.dev/ru/blog/rust-zero-cost-runtime-contracts/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/rust-zero-cost-runtime-contracts/</guid><description>Rust автоматически удаляет debug assertions, но настоящий design-by-contract требует большего, чем debug_assert!. Вот как построить zero-cost runtime contracts, которые исчезают из вашего релизного бинарника.</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate></item><item><title>Ноль, один или двенадцать: сколько assertions нужно production-функции на самом деле</title><link>https://autotomy.dev/ru/blog/production-assertion-decision-framework/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/production-assertion-decision-framework/</guid><description>Разработчики либо разбрасывают assertions как конфетти, либо избегают их полностью. Вот фреймворк принятия решений, который отделяет полезные invariants от причин падения production.</description><pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate></item><item><title>Ваш слой валидации больше самой бизнес-логики</title><link>https://autotomy.dev/ru/blog/declarative-runtime-contracts-validation/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/declarative-runtime-contracts-validation/</guid><description>Ручная валидация раздувает codebase и всё равно пропускает крайние случаи. Вот как обеспечить runtime contracts с помощью декларативных схем, которые не мешают.</description><pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate></item><item><title>strictNullChecks — это compile-time защита, а не runtime щит</title><link>https://autotomy.dev/ru/blog/typescript-strictnullchecks-runtime-nulls/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/typescript-strictnullchecks-runtime-nulls/</guid><description>strict mode отлавливает null, которые вы пишете сами, а не те, что приходят на runtime из API, DOM-запросов и JSON.parse. Вот где заканчивается type system и начинается ваша оборона.</description><pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate></item><item><title>В эпоху AI ревью кода превращается в ревью спецификаций</title><link>https://autotomy.dev/ru/blog/code-review-becomes-specification-review/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/code-review-becomes-specification-review/</guid><description>Когда AI может сгенерировать по спецификации реализацию, тесты и contracts, самая ценная человеческая работа смещается выше по цепочке. Самой пристальной проверки теперь требует сама спецификация.</description><pubDate>Sun, 17 May 2026 00:00:00 GMT</pubDate></item><item><title>AI Safety Stack: types, contracts, property tests и mutation gates</title><link>https://autotomy.dev/ru/blog/ai-safety-stack-types-contracts-property-tests-mutation/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/ai-safety-stack-types-contracts-property-tests-mutation/</guid><description>Если вы хотите, чтобы AI-generated code выдерживал production, одного code review недостаточно. Нужен многослойный safety stack: от type constraints до mutation testing и runtime containment.</description><pubDate>Sat, 16 May 2026 00:00:00 GMT</pubDate></item><item><title>Meteor development реален. Вашей codebase не обязательно рушиться вместе с ним</title><link>https://autotomy.dev/ru/blog/meteor-development-is-real/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/meteor-development-is-real/</guid><description>Этот мем работает, потому что команды и правда разрабатывают продукты в условиях постоянно меняющихся целей, фиксированных сроков и наполовину определённого объёма работ. Autotomy не исправит фантазийное планирование, но не даст development останавливаться каждый раз, когда снова меняется маршрут.</description><pubDate>Sat, 16 May 2026 00:00:00 GMT</pubDate></item><item><title>Stanford CS146S прав насчет AI coding. Недостающий предмет — архитектура</title><link>https://autotomy.dev/ru/blog/stanford-cs146s-ai-architecture-gap/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/stanford-cs146s-ai-architecture-gap/</guid><description>Этот критический разбор Stanford CS146S показывает, почему курс верно оценивает AI coding, но все еще упускает ключевой урок про AI-архитектуру, границы системы и заменяемость.</description><pubDate>Sat, 16 May 2026 00:00:00 GMT</pubDate></item><item><title>Почему сильные инженерные идеи оставались нишевыми, пока AI не сделал их экономически реальными</title><link>https://autotomy.dev/ru/blog/engineering-ideas-ai-economics/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/engineering-ideas-ai-economics/</guid><description>Design by contract, property-based testing, mutation testing и model checking не были плохими идеями. Их было слишком дорого поддерживать с точки зрения специализированных знаний. AI меняет это уравнение.</description><pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate></item><item><title>От Vibe Code к production: почему вашему AI-coded React Native-приложению нужны guardrails для масштабирования</title><link>https://autotomy.dev/ru/blog/ai-react-native-guardrails-scaling/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/ai-react-native-guardrails-scaling/</guid><description>AI может очень быстро довести ваш React Native MVP до релиза, но без guardrails любое небольшое изменение может сломать несвязанные между собой flow. Вот как декларативные ограничения не дают скорости превратиться в хрупкость.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>Гайд по жизненному циклу React Native-приложения для vibe coders</title><link>https://autotomy.dev/ru/blog/app-lifecycle-resume-status/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/app-lifecycle-resume-status/</guid><description>В dev всё работает, но пользователи видят пустой экран, когда возвращаются в приложение после обеда. Вот паттерн resume status, который правильно обрабатывает native lifecycle.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>Почему ваше vibe-coded React Native-приложение падает при запуске (и как это остановить)</title><link>https://autotomy.dev/ru/blog/dependency-tiers-hard-soft-optional/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/dependency-tiers-hard-soft-optional/</guid><description>Если optional SDK инициализируются как core infrastructure, они могут уронить приложение ещё на старте. Вот система dependency tiers, которая не даёт не-критичным инструментам валить production.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>Почему vibe coding с NativeWind в Cursor сломает ваше React Native-приложение при масштабировании</title><link>https://autotomy.dev/ru/blog/nativewind-vs-stylesheet-contract/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/nativewind-vs-stylesheet-contract/</guid><description>Вы собрали MVP за выходные в Cursor, но теперь изменение одного цвета ломает 47 файлов. Вот styling contract, который останавливает это расползание.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>Почему не стоит поручать ревью кода Claude Code (и что использовать вместо этого)</title><link>https://autotomy.dev/ru/blog/o1-guards-vs-llm-reviews/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/o1-guards-vs-llm-reviews/</guid><description>LLM-ревью кода недетерминировано, медленно и пропускает архитектурные нарушения. Вот стек O(1) guardrails, который действительно держит код в порядке.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>Удаляйте, а не мигрируйте: стратегия рефакторинга для vibe-coded React Native-приложений</title><link>https://autotomy.dev/ru/blog/refactor-by-replacement/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/refactor-by-replacement/</guid><description>Рефакторинг AI-generated кода требует расшифровывать замысел, которого у вас никогда не было. Вот interface-driven паттерн замены, который делает удаление безопасным.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>Как Cursor и Claude Code разрушают архитектуру React Native-приложения (и как это исправить)</title><link>https://autotomy.dev/ru/blog/service-boundaries-composition-root/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/service-boundaries-composition-root/</guid><description>AI-generated auth выглядит нормально, пока новая фича не лезет не в тот service. Вот interface-driven архитектура, которая не даёт смене вендора и новым фичам ломать login.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>Почему deep links ломают vibe-coded React Native-приложения (и как валидировать их через Zod)</title><link>https://autotomy.dev/ru/blog/url-validation-expo-router/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/url-validation-expo-router/</guid><description>Deep links, payload push-уведомлений и shared URLs - это недоверенный input. Вот как валидировать их на границе Expo Router до того, как битые params дойдут до экранов.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>useSyncExternalStore: React hook, который спасает ваше vibe-coded приложение от багов состояния</title><link>https://autotomy.dev/ru/blog/useSyncExternalStore-pattern/</link><guid isPermaLink="true">https://autotomy.dev/ru/blog/useSyncExternalStore-pattern/</guid><description>Перестаньте писать подписки через useEffect, которые текут по памяти и пропускают обновления состояния. Вот React 18-паттерн для bulletproof external state.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item></channel></rss>