Node JSでイベントソーシングアプリを使用してCQRSを作成したいと思います。
マイクロソフトは「 CQRSJourney 」という本をリリースしました。この本は「ドメイン駆動設計」の原則を使用しています。関数型プログラミングに適合するかどうかはわかりません... 2013年に書かれた本なので、 CQRSパターンを使用してアプリを構築するのがまだ「現代的な方法」であるかどうかを尋ねたいと思います。
CQRSを開始する前にDDDの学習を開始する必要がありますか?私は少し混乱していて、どこから始めればよいのかわかりません...
どんな方向性、レファレン、記事も素晴らしいでしょう!
まず、CQRSの基本原則について読むことをお勧めします(「CQRSジャーニー」は大きすぎて複雑すぎると思います) https://martinfowler.com/bliki/CQRS.html および http://cqrs.nu/ 。
次に、いくつかのCQRSライブラリとフレームワークを見てください。たとえば Resolve または上記のwolkenkitです。
次のステップは、コーディング中にいくつかの問題に遭遇し、それらについて質問できるため、単純なアプリの作成です。これは、CQRS学習に適したアプローチです。
開始するには、ブログ投稿シリーズ DDD&co。 に興味があるかもしれません。これは、複数のエピソードにわたって、DDD、イベントソーシング、およびCQRSとは何か、それらが相互にどのように参照するかなどを説明しています…
Node.jsを明示的に要求しているので、 wolkenkit と呼ばれるCQRSとイベントソーシングフレームワークがあります。これは非常に興味深いかもしれません。オープンソースなので、コードは GitHub にあります。
また、広範な ドキュメント を提供し、 68ページの電子ブック も無料で利用できます。これは、DDD、イベントソーシング、CQRSの概念とその方法を説明しています。 wolkenkitを使用してこれらの概念を適用します。
最後に、wolkenkitコミュニティには Slack team もあり、DDD、イベントソーシング、CQRS全般についての議論もあります。
PS:私はネイティブWeb(私がリンクしているブログが属する会社)で働いており、wolkenkitの作成者の一人でもあるので、一言で答えてください。塩。私はここで宣伝をしたくありませんでしたが、あなたの質問は私たちの仕事と完全に一致しているので、ここでこれらのリンクを共有しても大丈夫だと思います。
DDDコミュニティでは、関数型プログラミングでDDDを使用する傾向があります。互換性があるだけでなく、CQRSとイベントソーシングの原則を実装しやすくなっていることがわかりました。
最初に、DDDには2つの大きな主題があることを理解する必要があります。戦略的(ドメインモデリング、ユビキタス言語、制限されたコンテキスト...)と戦術的(実装、さまざまな構成要素)です。 CQRSとイベントソーシングは、アプリケーションを実装する1つの方法である可能性があります。
この主題についての優秀なスコット・ラッシングによる本があります: https://pragprog.com/book/swdddf/domain-modeling-made-functional そしてあなたは彼のブログで概要を知ることができます- https://fsharpforfunandprofit.com/
F#にはイベントソーシングの素晴らしい実装があります https://github.com/thinkbeforecoding/FsUno.Prod
ところで、DDDなしでCQRSとイベントソーシングを完全に学ぶことができます。並行して、DDDについて学び始めることができます。これにより、アプリケーションを設計し、複雑なビジネスドメインに取り組み、ビジネスの理解を深め、より関連性の高い言語を使用する方法の優れたツールボックスが得られます。アプリで名前を付けます。