RealWorld 仕様と API に準拠した実際のサンプル (CRUD、認証、高度なパターンなど) を含むマイクロサービス ASP.NET Core コードベース。
このコードベースは、 ASP.NET Coreで構築された本格的なマイクロサービス アーキテクチャをデモンストレーションするために作成されました。これには、gRPC、ドメイン駆動設計、CQRS、メディエーター、プロキシ、その他多くのパターンが含まれます。
ASP.NET Coreコミュニティのスタイル ガイドとベスト プラクティスに完全に準拠しています。
これを他のフロントエンド/バックエンドと連携させる方法の詳細については、RealWorld リポジトリを参照してください。
マイクロサービス アーキテクチャ - 独立して展開可能で、ビジネス機能を中心に編成された、保守性とテスト性が高く、疎結合されたサービスのコレクションを提供するアーキテクチャ スタイル。サービス層はドメイン モデルの最上位に配置されます。
ドメイン駆動設計 - ドメインの小さな個別のほぼ自律的な部分に焦点を当てるように導き、プロセスとその結果として得られるソフトウェアはより柔軟になります。小さなパーツを副作用なく簡単に移動または変更できます。
gRPC を介した通信 - クロスプラットフォーム、クロス言語でサービスを接続するための、成長を続ける新しい方法。
リモート プロキシ - ネットワーク経由でリモート リソースに接続する方法の詳細を隠しながら、ローカル リソースのように機能します。クライアントとサービス間の API ゲートウェイとして動作します。
関数型原則の適用 - C# での関数型プログラミングにより、プログラムがどのように動作するかについての洞察が得られます。ここでの具体的なトピックは、不変アーキテクチャ、例外の回避、原始的なこだわり、失敗や入力エラーの処理方法などです。
コマンドとクエリの責任分離 (CQRS) - 単一の統合ドメイン モデルを解きほぐし、コマンド処理用とクエリ処理用の 2 つのモデルを作成することを推奨します。 CQRS を使用すると、読み取りと書き込みに対して異なる決定を下すことができるため、スケーラビリティ、パフォーマンス、そして最大の利点であるシンプルさという 3 つの利点がもたらされます。 CQRS は、CQS をアーキテクチャ レベルまで拡張します。
MediatR - メッセージが適切な場所にルーティングされることを保証します。したがって、これをもう少しメモリ内メッセージング システムと考えることもできます。
Docker - コンテナは、従来のハイパーバイザーよりも特定のシナリオのニーズを満たすことができる、高密度の種類の「仮想化」を表します。
Travis CI - プロジェクトの構築とテストに使用される継続的統合サービス。 Travis CI は、コミットが作成され、Travis CI を使用している GitHub リポジトリにプッシュされたことを自動的に検出し、これが発生するたびに、プロジェクトをビルドしてテストを実行しようとします。