App Architecture

Паттерн Circuit Breaker в Go: предотвращение каскадных сбоев

Паттерн Circuit Breaker в Go: предотвращение каскадных сбоев

Предотвращайте каскадные отказы в микросервисах на Go.

Предохранитель (circuit breaker) предотвращает перегрузку вашего Go-сервиса при обращении к неустойчивой зависимости, избегая каскадных сбоев, которые потребляют горутины, сокеты и память, пока вся система не рухнет.

Рабочий процесс Spec-Driven Development: от требований к коду

Рабочий процесс Spec-Driven Development: от требований к коду

Пять этапов: от замысла к проверенному коду.

Разработка на основе спецификаций (Spec-Driven Development, SDD) работает, когда спецификация представляет собой рабочий процесс, а не документ, который архивируется после начала проекта. Цель заключается не в создании объемного документа требований к продукту.

Шаблон Transactional Outbox на Go с PostgreSQL

Шаблон Transactional Outbox на Go с PostgreSQL

Запишите событие с данными. Никогда не разделяйте их.

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

Что такое разработка на основе спецификаций? Спецификация как источник истины

Что такое разработка на основе спецификаций? Спецификация как источник истины

Спецификация как источник истины, а не побочный документ

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

Регистры решений для разработки программного обеспечения на базе ИИ

Регистры решений для разработки программного обеспечения на базе ИИ

Держите интент рядом с кодом.

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

Тестирование конкурентного кода на Go с помощью synctest

Тестирование конкурентного кода на Go с помощью synctest

Прекратите использовать сон в конкурентных тестах на Go.

Тестирование конкурентного кода на Go всегда требовало определенной дисциплины. Горутины дешевы, каналы просты, а отмена контекста является идиоматичной — фоновые рабочие процессы и таймеры повсюду в реальных сервисах на Go.

Идемпотентность в распределённых системах, которая действительно работает

Идемпотентность в распределённых системах, которая действительно работает

Предотвращайте повторные побочные эффекты

Идемпотентность в распределённых системах — это свойство, которое спасает вас, когда сеть подводит, очередь повторяет обработку, клиент паникует, а оператор запускает повторную отправку. В продакшн-системах дублирование доставки — это норма. Дублирование побочных эффектов — это баг.

Чат-платформы как системные интерфейсы в современных системах

Чат-платформы как системные интерфейсы в современных системах

Чат-платформы в качестве контрольных плоскостей для систем

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

Шаблон интеграции Discord для уведомлений и контуров управления

Шаблон интеграции Discord для уведомлений и контуров управления

Превратите Discord в безопасную интерактивную шину оповещений.

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

Шаблоны интеграции Slack для оповещений и рабочих процессов

Шаблоны интеграции Slack для оповещений и рабочих процессов

Slack — это слой интерфейса пользовательского взаимодействия для рабочих процессов и доставки уведомлений.

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

Архитектура приложения в продакшене: паттерны интеграции, проектирование кода и доступ к данным

Архитектура приложения в продакшене: паттерны интеграции, проектирование кода и доступ к данным

Шаблоны для интеграций, структуры кода и доступа к данным.

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

Реализация рабочих процессов с помощью Temporal на Go: полное руководство

Реализация рабочих процессов с помощью Temporal на Go: полное руководство

Создание рабочих процессов на Go с помощью Temporal SDK

Temporal — это open-source воркфлоу-движок корпоративного уровня, который позволяет разработчикам создавать надежные, масштабируемые и отказоустойчивые приложения для управления бизнес-процессами, используя знакомые языки программирования, такие как Go.

Структура проекта Go: практики и шаблоны

Структура проекта Go: практики и шаблоны

Структурируйте проекты на Go для масштабируемости и ясности

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