関数型ドメインモデリング 非公式宣伝サイト
2025-01-08 13:30:25
書籍情報
- タイトル:関数型ドメインモデリング - ドメイン駆動設計とF#でソフトウェアの複雑さに立ち向かおう
- 原著タイトル:Domain Modeling Made Functional - Tackle Software Complexity with Domain-Driven Design and F#
- 著者:Scott Wlaschin
- 訳者:猪股 健太郎
- 出版社:KADOKAWA (アスキードワンゴ)
- ISBN:4048931164 / 978-4048931168
- 発売日:2024年6月28日 初版発行
出版社による紹介文
ドメイン駆動設計と関数型プログラミングを組み合わせることで、顧客満足度の向上、開発サイクルの短縮、無駄な作業の削減を実現できます。本書では、ビジネスドメインの例とF#のコードで、ビジネスに焦点を当てた、柔軟で高品質なソフトウェアを構築する方法を紹介します。たとえば、F#の型システムを使って複雑なドメインをモデル化し、読みやすいドキュメントにもなるコードを作成します。また、ビジネスルールをエンコードして「コンパイル時ユニットテスト」を作成することで、不正な状態を表現できないようにして潜在的なバグを排除します。関数型プログラミングの核となる原則を適用することで、実世界の要求をエレガントかつ簡潔にモデル化したソフトウェア設計を実現できます。
目次
- 第1部 ドメインの理解
- 第1章 ドメイン駆動設計の紹介
- 第2章 ドメインの理解
- 第3章 関数型アーキテクチャ
- 第2部 ドメインのモデリング
- 第4章 型の理解
- 第5章 型によるドメインモデリング
- 第6章 ドメインの完全性と整合性
- 第7章 パイプラインによるワークフローのモデリング
- 第3部 モデルの実装
- 第8章 関数の理解
- 第9章 実装:パイプラインの合成
- 第10章 実装:エラーの扱い
- 第11章 シリアライズ
- 第12章 永続化
- 第13章 設計を進化させ、きれいに保つ
公式情報リンク
レビューと解説記事
このリストには、原著 “Domain Modeling Made Functional” と日本語訳『関数型ドメインモデリング』の両方に関する日本語の記事を載せています。
解説記事
- Ktor × Exposed × Koin × kotlin-resultを用いたDDDを意識したアプリケーションの実装 - Don’t Repeat Yourself 2025年01月06日
- claude.aiによる要約:この記事は、KotlinでDDDを意識したバックエンドアプリケーションの実装例について解説したものです。Ktor、Exposed、Koin、kotlin-resultなどの主要なライブラリを使用し、レイヤードアーキテクチャに基づいて設計されたTodoアプリケーションを実装しながら、トランザクション管理、エラーハンドリング、非同期処理などの実践的な課題に対する解決方法を詳しく説明しています。著者は関数型プログラミングの考え方を取り入れつつ、Kotlinの言語機能(value class、sealed class、スコープ関数など)を効果的に活用する方法を示しながら、実用的なアプリケーション設計のプラクティスを共有しています。
- システム開発と教育におけるアンラーンの重要性 - Zenn 2024年12月24日
- claude.aiによる要約:この記事は、システム開発と教育におけるアンラーン(学習した知識や信念を意図的に棄却すること)の重要性について論じています。特にドメイン駆動設計(DDD)の文脈で、開発者がドメインエキスパートと同じメンタルモデルを共有するためには、自身の誤った先入観や理解をアンラーンする必要があることを、具体的な事例を通じて説明しています。さらに、教育の本質的な目的は知識の記号接地(理論的な知識を実践的な理解に結びつけること)であり、そのためにもアンラーンが重要な役割を果たすと結論付けています。
- アラフィフでも関数型をあきらめない!「関数型ドメインモデリング」で再入門してみた話 - iimon TECH BLOG 2024年12月21日
- claude.aiによる要約:この記事は、45歳のエンジニアマネージャーが関数型プログラミングへの再挑戦について書いた技術ブログです。著者は過去にHaskellでの挫折経験がありながらも、「関数型ドメインモデリング」の本を読んで、特にTypeScriptを使用したドメインロジックの実装において関数型アプローチの利点を再発見しています。関数型プログラミングの主要な利点として、状態管理のしやすさ、副作用の管理、型チェックによるエラー検出の容易さを挙げており、従来の命令型プログラミングと比較しながら実践的な説明を行っています。
- 「関数型ドメインモデリング」から学ぶモデリングの勘所 - Bitkey Developers, Zenn 2024年12月20日
- claude.aiによる要約:この記事は、関数型ドメインモデリングのメリットについて、オブジェクト指向と比較しながら解説しています。関数型アプローチの主な利点は、抽象的な概念からではなく具体的に観測可能な状態から始められること、処理を分解しやすいこと、そして必要以上に複雑化しにくい点にあると説明しています。著者は関数型アプローチが特にモデリングの経験が少ないチームにとって有効な選択肢になり得ると結論付けていますが、これは銀の弾丸ではなく、汎用性の低さやカプセル化の難しさなどのトレードオフがあることも指摘しています。
- 【関数型ドメインモデリング】TypeScriptで書いてみた - Zenn 2024年12月09日
- claude.aiによる要約:この記事は、関数型ドメインモデリングの書籍で紹介されているF#のサンプルコードをTypeScriptで実装した経験について解説しています。著者は、Result型やモナドの概念を活用し、neverthrowライブラリを用いて関数型プログラミングのアプローチを実現しましたが、TypeScriptでの関数型プログラミングには言語仕様上の制約があり、標準では用意されていない機能を補う必要があることを指摘しています。最終的に実装は完了したものの、関数型プログラミングを行うならF#などの関数型言語を選択したほうが良いかもしれないという結論に至っています。
- ①ドメインモデルの分類と②関数型DDDによる実装パターンを考える 〜「事業活動」の構成要素とは…?〜 - 株式会社ログラス テックブログ, Zenn 2024年12月09日
- claude.aiによる要約:この記事は、ドメイン駆動設計(DDD)の文脈で、事業活動をモデル化する方法とその実装パターンについて論じています。著者は事業活動のモデルを「知識レベル」(業務手順、業務資源情報、属性・値、意思決定・制約条件)と「オペレーションレベル」(業務フロー、業務イベント)の2つの軸で分類し、それぞれについてKotlinでの実装例を示しています。この分類方法は、コードアーキテクチャの観点、経営学的な事業活動の構成要素の観点、そして存在論的な世界の構成要素の観点という3つの視点から導き出されています。
- ビジネスルールを型で表現するリファクタリング手法 - コドモン Product Team Blog 2024年12月03日
- claude.aiによる要約:本記事は、Kotlinで開発されている請求システムにおいて、ビジネスロジックを型で表現するアプローチを採用し、単一クラスで管理していた状態(キャンセル、返金、支払い完了など)をsealed interfaceを使って分割するリファクタリング事例を紹介したものです。複雑化していた状態管理を型安全に整理し、コードの可読性、保守性、拡張性を向上させた過程を、具体的なコード例とその成果とともに解説しています。
- Rubyではじめる関数型ドメインモデリング - Zenn 2024年11月06日
- claude.aiによる要約:本記事は、Railsアプリケーションにおけるビジネスロジックを「ワークフロー」として実装する手法を提案しています。ワークフローとは業務プロセスを純粋な関数の組み合わせで表現する方法で、dry-monadsライブラリを使用して処理の成功/失敗を明示的に扱い、それらをパイプライン化します。外部システムとの相互作用を両端に配置することで、中心となるビジネスロジックの純粋性と見通しの良さを保ち、保守性と拡張性の高いコード設計を実現します。
- TypeScriptの型で設計を表現する、宣言的バックエンド実装具体例 - 株式会社CHILLNN, Zenn 2024年09月01日
- claude.aiによる要約:この記事は、TypeScriptを使用したバックエンド開発において、宣言的プログラミングと関数型ドメインモデリングの実践的な実装方法を解説しています。著者は、型システムを活用して設計をコードで表現し、コンパイラレベルで解釈可能なビジネスロジックを実現する手法を、具体的なECサイトの決済処理を例に説明しています。この手法により、ドメイン知識の暗黙化を防ぎ、処理の複雑化を抑制しながら、チーム開発の効率化とコードの保守性向上を実現できることが示されています。
- F#でAsyncとResultを組み合わせたときにきれいに書く方法 - Uzabase for Engineers 2024年08月09日
- claude.aiによる要約:この記事は、F#で非同期処理(Async)と結果型(Result)を組み合わせる際に生じる冗長なコードの問題とその解決策を説明しています。著者は、「関数型ドメインモデリング」書籍で提案されている
AsyncResult
型エイリアスと、FsToolkit.ErrorHandlingライブラリのasyncResult
コンピュテーション式を使用することで、コードをより簡潔に書けることを示しています。さらに、FSharpPlusライブラリのモナドトランスフォーマーを用いたアプローチも紹介し、より柔軟な型の組み合わせが可能になることを提案しています。
- claude.aiによる要約:この記事は、F#で非同期処理(Async)と結果型(Result)を組み合わせる際に生じる冗長なコードの問題とその解決策を説明しています。著者は、「関数型ドメインモデリング」書籍で提案されている
- 【シン・プロセス指向】pythonを題材にDomain Modeling Made Functional/関数型ドメインモデリング【気分はstatic! 】 - Qiita 2024年06月27日
- claude.aiによる要約:この記事は、関数型プログラミングとドメイン駆動設計の手法を融合させ、Pythonで実践する革新的なアプローチを提案しています。ビジネスプロセスを直接コードに反映する「プロセス指向」の方法を中心に、Result型やADTなどの関数型概念をPythonで実装する具体的な手法を紹介しています。特に注目すべきは、このアプローチが現代の技術環境(高度な型システム、自動テスト、サーバーレスアーキテクチャなど)と整合性が高いことを示唆している点です。理論と実践のバランスが取れた内容で、ドメインモデリングの新たな可能性を探る貴重な資料となっています。
- TypeScript開発にRailway Orientedを持ち込み、より型安全なエラーハンドリングへ - Sansan Tech Blog 2024年03月26日
- claude.aiによる要約:この記事は、関数型プログラミングの概念をTypeScriptに適用し、型安全で網羅的なエラーハンドリングを実現する手法を提案しています。Railway Oriented Programmingを基に、Result型、パイプライン、パターンマッチングを組み合わせることで、エラー表現の統一、処理の可読性向上、エラーハンドリングの網羅性保証を達成する方法を具体的に示しています。この手法は、TypeScriptを用いた実際の開発現場でも適用可能な、実践的かつ革新的なアプローチとして評価できます。
- 振る舞いに応じて型を分けることで複雑さに対処する - LabBaseテックノート, Zenn 2023年12月01日
- claude.aiによる要約:この記事は、「Domain Modeling Made Functional」の概念をTypeScriptで実践し、タスク管理アプリのAPI開発を通じて得られた知見を共有しています。イベントストーミングからドメインモデリング、オニオンアーキテクチャの採用、zodを使用したドメイン知識の表現、振る舞いに応じた型の分割など、具体的な実装例とともに課題や疑問点も率直に述べられています。特に、振る舞いによる型分割の利点と課題、I/O部分を含めた実装の全体像の提示は、理論を実践に落とし込む際の貴重な参考となり、ドメイン駆動設計と関数型プログラミングの融合に興味を持つ開発者にとって価値のある情報を提供しています。
- (ほぼほぼ)typed (わりかし)fuctional python【関数型ドメインモデリング】 - Zenn 2023年11月27日
- claude.aiによる要約:この記事は、「Domain Modeling Made Functional」の概念をPythonで実践し、関数型プログラミングの手法をドメイン駆動設計に適用する方法を詳細に解説しています。架空の家具店の注文プロセスを例に、データモデル、ビジネスロジック、ビジネスルール、データアクセスの実装方法を示し、特にResult型とモナドを用いたエラーハンドリングと処理の連鎖、代数的データ型とスマートコンストラクタの活用に焦点を当てています。Pythonという広く使用されている言語で関数型プログラミングの概念を実践し、具体的なビジネスプロセスに基づいた実装例を提示することで、理論と実践のバランスの取れた、実用的なアプローチを提案しています。
- Domain Modeling Made Functional から学ぶドメイン駆動開発 - Qiita 2022年12月09日
- claude.aiによる要約:この記事は、「Domain Modeling Made Functional」から得られたDDDの洞察を紹介し、関数型プログラミングの概念がDDDの実践に適していることを示しています。技術的偏見を排除した要求の整理、レイヤードアーキテクチャの問題点と代替案、純粋関数の重要性と副作用の排除などの key points を解説しています。特に、関数型の考え方をオブジェクト指向に適用することの利点を強調し、テストの容易さや管理しやすいコード構造の実現方法を提案しています。この記事は、DDDの実践において関数型プログラミングの概念を取り入れることの価値を示す、実用的で洞察に富んだ内容となっています。
「鉄道指向プログラミング (Railway oriented programming)」の解説
- Resultと鉄道指向プログラミングの関係性とその役割 | 株式会社一創 2025年01月06日
- claude.aiによる要約:鉄道指向プログラミング(Railway Oriented Programming)は、エラーハンドリングを効率化し、コードの可読性を向上させるための設計手法です。この手法の特徴は、処理フローを「成功」と「失敗」の2つのパスに明確に分け、鉄道の線路のように処理が分岐する仕組みを持つことで、Result型を活用して一貫したエラー処理を実現します。特に大規模なプロジェクトや分散システム、マイクロサービスなどの複雑なシステムで効果を発揮し、従来のtry-catch構文と比べてコードの保守性と堅牢性を高めることができます。
- Javaで鉄道指向プログラミング(Railway Oriented Programming)を実践する - ZOZO Advent Calendar 2024 10日目, Qiita 2024年12月11日
- claude.aiによる要約:この記事は、関数型プログラミングの手法の1つである「鉄道指向プログラミング(Railway Oriented Programming: ROP)」をJavaで実装する方法について解説しています。ROPは、エラー処理を鉄道のレールのように連結して扱うことで、煩雑になりがちなエラーハンドリング処理をスマートに記述することができる手法です。具体的には、Vavrライブラリの
Either
型を使用し、入力値の検証→更新→送信という典型的なユースケースを例に、失敗のパターンを統一しflatMap
でつなげることで、より簡潔で視覚的にわかりやすいコードを実現する方法を紹介しています。
- claude.aiによる要約:この記事は、関数型プログラミングの手法の1つである「鉄道指向プログラミング(Railway Oriented Programming: ROP)」をJavaで実装する方法について解説しています。ROPは、エラー処理を鉄道のレールのように連結して扱うことで、煩雑になりがちなエラーハンドリング処理をスマートに記述することができる手法です。具体的には、Vavrライブラリの
- TypeScriptで始めるRailway Oriented Programming - ejuLabs, Zenn 2024年04月03日
- claude.aiによる要約:この記事は、Railway Oriented Programming (ROP)というプログラミング手法をTypeScriptを用いて説明しています。ROPは関数型プログラミングの文脈で有用な手法で、エラーハンドリングを効果的に行うためのアプローチです。記事では、Result型の導入、try-catchからResultへの変換、バリデーションのResult化、map関数とflatMap関数の実装、副作用の分離などについて具体的なコード例を用いて解説しています。最終的に、従来の命令型のコードをROP風に書き換えた例を示し、その利点を説明しています。
- 【Swift】鉄道指向プログラミング(Railway Oriented Programming)でResultの使い方を学ぶ - Qiita 2019年06月27日
- claude.aiによる要約:この記事は、SwiftのResultタイプと鉄道指向プログラミング(ROP)の概念を解説しています。ROPはエラーハンドリングを鉄道の線路に例えて説明する手法で、Resultタイプと組み合わせることで、統一的なエラー処理と高い可読性を実現します。flatMapやmapなどの関数を使って異なる型の関数を連結し、複雑な処理フローを表現できます。この手法は型を重視し、関数型プログラミングの考え方を取り入れており、より堅牢で保守性の高いコードを書くための効果的なアプローチとして紹介されています。
- 鉄道指向プログラミング(翻訳) - github.com/yukitos 2013年05月27日
書評・レビュー
- ★★★★★ 関数型とF#の魅力に気づかされた - Amazon カスタマーレビュー 2024年12月21日
- 引用 “顧客との共通言語として書かれた仕様書(F#)がそのまま動くコードになるのが素敵です。”
- ★★★★★ SNSで戦ってる変なITエンジニアは第1章だけでも読むべき - Amazon カスタマーレビュー 2024年10月28日
- 引用 “SNSで値オブジェクトがどうこう無限に言い続けてドメインとは何なのかユビキタス言語は何故重要なのかも全く説明出来ないような連中にはいい薬になると思った”
- ★★★☆☆ 最近のトレンドが覗い知れる一冊 - Amazon カスタマーレビュー 2024年10月18日
- 引用 “DDDには殆ど興味が無かったのですが、意外とその主張が自分の感性に近い事を発見でしました。”
- ★★★★★ 型と関数によるワークフローパイプラインドメインモデリング - Amazon カスタマーレビュー 2024年10月04日
- 引用 “抽象と具象を往復しつつ、型と関数を使ったドメイン駆動のフローを、これほどまで明晰に実コードで示すのは見事である。”
- 「関数型ドメインモデリング」を読んだ - p-kino’s blog 2024年07月21日
- 引用 “正直言って、この本に書いてある内容を全て実践するのは難しいと感じた。 …… しかし、それでもなおこの本により新しく知った考え方は多く、読む価値があったと思う。”
- 「関数型ドメインモデリング」の日本語訳が出たので読んでみた(後編) - Zenn 2024年07月16日
- 引用 “DDDとF#の両方とも知らなかったとしても問題ない程度にそれぞれの説明も行われており、本書を読み終えることでこれらの知識を底上げできるというのも推したいポイントです。”
- Xユーザーのartonさん: 「関数型ドメインモデリングを読み始めた(これも嘉平さんから貰った)。俺にとっては初めてのDDD関係の本なのだった。で、1章を読み始めてイベントとコマンドってアクターとユースケースの再定義だなとか考えながら読み進めて行ったわけだが、最も重要な点って章のまとめには出て来ないが問題領域と」 / X 2024年07月15日
- 引用 “設計方法と実装技術が手に手を取り合ってより正確に、より楽な道へ進む姿はなかなか感動的だ。”
- 『関数型ドメインモデリング』はF#の本なのか? - 詩と創作・思索のひろば 2024年07月08日
- 引用 “普段の言語における実践的な適用にどう落としこむかが、読者の宿題だ。パラダイムの違う言語を通して見ることで、そのエッセンスがより研ぎ澄まされて見えてくるのだと思う。”
- 『関数型ドメインモデリング』を読んだ - nekoTheShadow’s diary 2024年07月07日
- 引用 “自分の仕事柄「Excel仕様書の中身とソースコードの実装が違って困る」ということが多々あるので、こういう仕様と実装の一致を強制できる仕組みには本当に感動しました。”
- #1475 「関数型ドメインモデリング」 - るいもの戯れ言 2024年07月05日
- 引用 “本書での主張は自分は、要件定義ですぐにER図とかクラス図などの実装詳細を書こうとするな、ドメインロジックからはI/Oを無くせ。あたりが本質かなと感じた。 …… ただ盲従しない方が良いかなと。 …… 結局はトレードオフなのだ。”
- 『関数型ドメインモデリング』の感想など|yonekubo 2024年07月03日
- 引用 “特に10章「実装:エラーの扱い」では、成功と失敗の二系統がある関数を合成により連鎖していく方法(2トラックモデル)が、プラレールのような線路のイメージを用いて非常にわかりやすく説明されており、目から鱗が落ちました。”
- 関数型ドメインモデリング ドメイン駆動設計とF#でソフトウェアの複雑さに立ち向かおう を読んだ - 平常運転 2024年07月02日
- 引用 “一見気になるようなトピックは理想化されたケーススタディでよくカバーされているが、実践的とまでは届かないだろう”
- 「関数型ドメインモデリング」の日本語訳が出たので読んでみた(前編) - Zenn 2024年06月30日
- 引用 “「設計上の困りごとは型で解決」というのが本当に良いですね。”
- Xユーザーのミノ駆動さん: 「『関数型ドメインモデリング』届いたから読むよー。
ざっと全体見た感じ。訳書だけど平易で読みやすく、序盤からフフッて笑える内容も。序盤でDDDの要点を解説してるので、初めてDDDに触れる人にも優しい感じ。サンプルコードもどシンプルで、小さい認知負荷で読める。良書の予感。 https://t.co/eTiVOkOaUB」 / X 2024年06月30日
- 引用 “訳書だけど平易で読みやすく、序盤からフフッて笑える内容も。”
- Domain Modeling Made Functional の訳本が出ます - FLINTERS Engineer’s Blog 2024年06月06日
- 引用 “書籍全体で例が共通しているので、非常に理解がしやすいです。”
- Xユーザーのkawasima@99卒さん: 「『関数型ドメインモデリング(Domain Modeling Made Functional)』は、従来ごっちゃになりがちだったDomain ModelingとEncodingを切り分け、Domain Modelingをまずやれ、やり方はこうだ、ってのを非常に上手く説明した革命的な本なのです。…が https://t.co/ENKAkwe7Y3」 / X 2024年05月24日
- 引用 “F#がなまじドメインモデルのエンコーディング能力が高いため、そっち側の内容ばかり入ってきやすいのは、ちょっと残念なところです。”
- Xユーザーのkawasima@99卒さん: 「Domain Modeling Made Functionalが従来のドメインモデリングの書籍と一線を画すのは、「ドメインエキスパートとよく対話してモデル作っていこうな!」で留まらずに、型の粒度の設計指針を明確に打ち出していることです。
そしてその本質は8章のTotal Functionsにあります。」 / X 2023年02月25日
- 引用 “Total Functionsにしようと思えばこそ、「この業務ではこのデータ全部同じように扱えるんだっけ」の議論に注力するようになる。”
- 『Domain Modeling Made Functional』を読んだ - r7kamura.com 2022年10月09日
- 引用 “不正な状態を取り得たり、コードで説明できていない暗黙的な挙動を含んだりしないようにプログラムを組み上げることが本当に大事である、という考え方が本の中で徹底されており、これも著者の強く主張したい部分なのだろうと感じられた。”
- 関数型言語で DDD - Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F# - Shin x Blog 2019年08月20日
- 引用 “OOP による DDD の情報が多いですが、もしかすると関数型言語の方が平易に DDD を実装できるのはないかという印象すら持っています。”
- 社内Lightning Talk 第7回 - MonotaRO Tech Blog 2019年11月18日
- 引用 “このようなワークフローに準じた設計になると、ありえない状態データが生まれないみたいです。”
- 関数型DDD〜Domain Modeling Made Functional まとめ- Qiita 2019年04月04日
- 引用 “自分が特に面白いと思うのは以下の点 …… ・型の重視 …… ・イベントとワークフローへのフォーカス …… ・自然言語ベースのモデリング ……”
読書メモ
- 『関数型ドメインモデリング(Domain Modeling Made Functional)』を読んだ 03 - Zenn 2024年12月23日
- 引用 “境界づけられたコンテキストという抽象概念への考察から、シリアライズフォーマットのような細部までカバーしてきた”
- 『関数型ドメインモデリング(Domain Modeling Made Functional)』を読んだ 02 - Zenn 2024年12月23日
- 『関数型ドメインモデリング(Domain Modeling Made Functional)』を読んだ 01 - Zenn 2024年12月23日
- 引用 “ワークショップやインタビューから得たDDDのコアドメインを、オニオンアーキテクチャを通して関数型プログラミングのコアな関心として表現して繋いでいく箇所は、DDD -> アーキテクチャ -> 関数型プログラミングでの実装、という実際の開発の流れの解像度を大きく高めてくれました。”
- 関数型ドメインモデリング勉強会 第6章 ドメインの完全性と整合性 │ Find out by JURABI 2024年12月17日
- 引用 “本章では、完全性と整合性をモデルで保証する方法を扱います。今回の内容は、関数型言語に限らず、普段の開発で役立つ内容になってます。”
- 『関数型ドメインモデリング』勉強会 第5章 型によるドメインモデリング │ Find out by JURABI 2024年12月16日
- 引用 “本章では、F#の型システムを使用したドメインモデルの表現方法を学ぶ。これにより、開発者でなくても理解できるようになる(はず)。”
- 『関数型ドメインモデリング ドメイン駆動設計とF#でソフトウェアの複雑さに立ち向かおう』で実践的なドメイン駆動設計+関数型言語によるコードの書き方を学ぶ - Magnolia Tech 2024年11月11日
- 引用 “プロダクションコードをF#で書いている人が日本にどれだけ居るのか想像が付かないところもあるけど、これからドメイン駆動設計を元にコードを書きたいと思っている人には言語に拠らず参考になります 一方で、冒頭のドメイン駆動設計の解説は、書いてあること自体は「そうだよねー」なのですが、そんなに理想的に行くのか?という記載もちらほら”
- 『関数型ドメインモデリング』勉強会 第4章 型の理解 │ Find out by JURABI 2024年10月07日
- 引用 “一般的に代数的データ型を採用した言語は型と値の両方に共通したプリミティブな演算を用いて複雑なデータを構成し、それをパターンマッチの際に分解して取り出したりすることによって、複雑なデータの取り扱いを容易にしている。”
- 『関数型ドメインモデリング』勉強会 第3章 関数型アーキテクチャ │ Find out by JURABI 2024年10月07日
- 引用 “本章ではまずそういった細かい所に入る前に、構築されたドメインモデルをどのように実装していくかについて、DDDの概念である境界付けられたコンテキストやドメインイベントをソフトウェアにどのように変換していくかについてみていく。”
- 関数型ドメインモデリングを読んだ - 技術メモ 2024年09月30日
- 引用 “DDDが関数型プログラミングと相性が良いということはわかる。というかDDDを型のない言語でやるのは無理がある。クラスで値オブジェクトとかいちいち作ってるのだるすぎる。”
- 『関数型ドメインモデリング』勉強会 第2章 ドメインの理解 │ Find out by JURABI 2024年08月29日
- 引用 “本章では、ドメインエキスパートへのインタビューを通じて、ワークフローについて理解することを目指す。そしてそのワークフローを構造化された文章として表現する。”
- 「関数型ドメインモデリング」と合わせて見たい動画 - アウトプッツ 2024年08月25日
- 引用 “「型」「代数的データ型」「コンパイル時ユニットテスト」あたりが大きなキーワードって感じ。”
- 関数型ドメインモデリング勉強会 第一章の感想 │ Find out by JURABI 2024年08月22日
- 引用 “実際のところ、この一章を読むだけでも結構DDDの本質について知見が得られると思う。”
- 『関数型ドメインモデリング』を読んだ - blog.foresta.me 2024年07月21日
- 引用 “DDD 読んでみてじゃあ実際にどうやってコードを書いていこうかといった状況でこの本に出会うと非常に学びが多いと思います。”
- 『Domain Modeling Made Functional』 - mrsekut-p 2024年06月16日
- 引用 “ドメインでの処理の流れをそのまま型で表現しちゃえばいい”
- 【DMMF】ドメインのモデリングについて - UGA Boxxx 2024年01月25日
- 引用 “「顧客は電子メールまたは住所を持っている必要があります。」をモデリングすると以下になりがち …… そうではなく、持ちうる状況分の型を作る”
- Domain Modeling Made Functionalの読書メモ - LabBaseテックノート, Zenn 2023年10月26日
- 引用 “個人的には TypeScript や Rust で実践してみたいと思います。”
- Domain Modeling Made Functional - miyamonz-books 2023年06月20日
- 引用 “DDDを実践するために、FPな言語の型、型システムを使ったほうが簡単で読みやすい書きやすい”
- DMMFを読む - Zenn 2023年05月10日
- 引用 “ビジネスとは単なるデータではなくそれを変換するプロセスであり、そこに価値がある。だからその変換プロセスがどのように機能するかを理解することが重要なのだと。”
スライド
- 「関数型プログラミングのパラダイムはアプリケーション開発に必要なのか?」発表資料 2024年09月07日
- 関数型ドメインモデリングを 非関数型のプログラミング言語で やってみた - Speaker Deck 2024年09月07日
- 古典ドメインモデリングパターンの解脱 - 大吉祥寺.pm - kawasima 2024年07月14日
- TypeScript 関数型スタイルでバックエンド開発のリアル - Speaker Deck 2024年05月11日
- ビジネスロジックを「型」で表現するOOPのための関数型DDD / Functional And Type-Safe DDD for OOP - Speaker Deck 2024年03月23日
- DDDとF# / dotnetConf2019 関西 - slidesare 2020年01月06日
リポジトリ
- https://github.com/kawasima/dmmf-ts Domain Modeling Made Functional in TypeScript
関連書籍(主に日本語)
ドメイン駆動設計
- [入門]ドメイン駆動設計 (増田 亨ほか) 2024年07月01日
- ドメイン駆動設計をはじめよう (Vlad Khononov) 2024年07月20日
- ドメイン駆動設計入門 (成瀬 允宣) 2020年02月13日
- 実践ドメイン駆動設計 (Vaughn Vernon) 2015年03月16日
- エリック・エヴァンスのドメイン駆動設計 (Eric Evans) 2011年04月08日
関数型プログラミング・設計
- 関数型デザイン (Robert C. Martin) 2024年06月10日
- なっとく!関数型プログラミング (Michał Płachta) 2023年08月03日
- 関数型プログラミングの基礎 (立川 察理) 2016年11月18日
- Functional and Reactive Domain Modeling (Debasish Ghosh) 2016年11月01日 ※英語
- [増補改訂]関数プログラミング実践入門 (大川 徳之) 2016年09月24日
F#
- 実践F# (荒井 省三、いげ太) 2011年01月07日
- プログラミングF# (Chris Smith) 2010年08月20日
訳者による関連情報
- F# for Fun and Profit 日本語訳
- 『関数型ドメインモデリング』に関するメモ part1 関数型アプローチと「ドメインモデル貧血症」について
- 『関数型ドメインモデリング』に関するメモ part2 関数型アプローチと「Repositoryパターン」について
- 『関数型ドメインモデリング』に関するメモ part3』 関数型アプローチと「Transaction Scriptパターン」について(作成中)
コミュニティ情報
- Twitter ハッシュタグ: #関数型ドメインモデリング #DMMF_JP