App Architecture

要件定義からコード生成までの仕様に駆動する開発ワークフロー

要件定義からコード生成までの仕様に駆動する開発ワークフロー

意図から検証済みのコードへ:5つのフェーズ

仕様駆動型開発(SDD)は、仕様がドキュメントとしてキックオフ後に棚卸しされるものではなく、ワークフローそのものであるときに機能します。目的は、大規模な製品要件定義ドキュメントを作成することではありません。

AI駆動型ソフトウェア開発における意思決定記録

AI駆動型ソフトウェア開発における意思決定記録

意図をコードに近づけよ。

意思決定記録は、AI支援ソフトウェア開発における欠けていた記憶層です。それらは何が開発されたかだけでなく、なぜ開発されたかを捉えます。そしてその区別は、AIツールがコードを書く際には決定的に重要になります。

synctestを用いたGoの並行コードのテスト

synctestを用いたGoの並行コードのテスト

並行Goテストでスリープ処理に頼るのをやめましょう

Goの並行コードのテストには、これまで少しの規律が必要でした。 ゴルーチンは軽量で、チャネルはシンプル、コンテキストのキャンセルは慣用的です——バックグラウンドワーカーとタイマーは、実世界のGoサービスにどこにでもあります。

実際に機能する分散システムにおける冪等性

実際に機能する分散システムにおける冪等性

重複する副作用を防止する

分散システムにおける冪等性(Idempotency)は、ネットワークが嘘をつき、キューがリトライし、クライアントがパニックになり、オペレーターがリプレイを実行した後にあなたを救う性質です。本番環境のシステムにおいて、重複配信は日常的なものです。重複した副作用こそがバグです。

アラートとワークフローのための Slack 連携パターン

アラートとワークフローのための Slack 連携パターン

Slack はワークフロー UI およびアラート配信レイヤーです。

Slack の統合は、1 つの HTTP コールでメッセージを送信できるため、欺瞞的に簡単に見えるかもしれません。 しかし、Slack を対話的で信頼性の高いものにする必要が出てきた時が、本物の面白い部分です。

アラートと制御ループ向けの Discord 統合パターン

アラートと制御ループ向けの Discord 統合パターン

Discord を安全でインタラクティブなアラートバスに変えましょう。

Discord をシステムとして扱う場合、イベントを公開する場所、人間が意思決定を行い、自動化がワークフローを継続させる場として扱うことで、本格的な統合の土台となります。

本番環境におけるアプリアーキテクチャ:統合パターン、コード設計、およびデータアクセス

本番環境におけるアプリアーキテクチャ:統合パターン、コード設計、およびデータアクセス

インテグレーション、コード構造、およびデータアクセスに関するパターン

アプリのアーキテクチャに関するアドバイスは、実践に適用するには抽象的すぎたり、スケーリングするには範囲が狭すぎたりするものが多いのが実情です。 ここでは、統合、コード構造、データアクセスにまたがる本番環境向けシステムにおける実用的なトレードオフ(Trade-offs)について解説します。

GoでTemporalを用いたワークフローアプリケーションの実装:完全ガイド

GoでTemporalを用いたワークフローアプリケーションの実装:完全ガイド

Temporal SDKを使用してGoでワークフローを構築

Temporal はオープンソースでエンタープライズグレードのワークフローエンジンであり、Go のような馴染みのあるプログラミング言語を使用して、耐障害性があり、スケーラブルで、フォールトトレラントなワークフローアプリケーションを構築することを開発者に可能にします。

Goプロジェクトの構造:実践とパターン

Goプロジェクトの構造:実践とパターン

スケーラビリティと明確さを確保するためのGoプロジェクトの構造設計

Go プロジェクトの構造を適切に整えることは、長期的な保守性、チームの協業、そしてスケーラビリティにとって不可欠です。厳格なディレクトリ構成を強制するフレームワークとは異なり、Go は柔軟性を重視しています。しかし、その自由度には、プロジェクトの具体的なニーズに合ったパターンを選択する責任が伴います。