### DDD-PKM-ADR 繋がる世界 [[📕tadashi-aikawa]] <small style="color: grey;"> 最終更新日: 2021-09-20 </small> --- ![[🦉tadashi-aikawaのスキルマップ#^762577]] --- ### 本日お話しすること - [[DDD]] (domain-driven design) - [[PKM]] (Personal Knowledge Management) - [[ADR]] (Architectural Decision Records) --- ```mermaid flowchart LR DDD ----> PKM ----> ADR class DDD,PKM,ADR internal-link ``` --- ![[#^a51503]] --- ```mermaid flowchart LR DDD:::focus ----> PKM ----> ADR classDef focus fill:#dfd; class DDD,PKM,ADR internal-link ``` --- ### [[DDD]] domain-driven design <split even> ![](https://images-fe.ssl-images-amazon.com/images/I/61NEeFU8lhL._SX218_BO1,204,203,200_QL40_ML2_.jpg) ![](https://images-fe.ssl-images-amazon.com/images/I/51f7WXHJYCL._SX218_BO1,204,203,200_QL40_ML2_.jpg) ![](https://images-na.ssl-images-amazon.com/images/I/51E+hPktiQL._SY344_BO1,204,203,200_.jpg) </split> - 左から順番に読んだ - 1冊目は挫折、2冊目読み切って、3冊目は流し - **右から順番がオススメ** --- ### [[DDD]]で大事と感じたこと - [[ユビキタス言語]]の利用を徹底する - ドメインレイヤーのIFは==必ず==[[ユビキタス言語]]を使う - [[ドメインモデル]]を定期的に見直して変更を躊躇しない - ドメインレイヤーのロジックは==ドキュメントどおり==に書く <small>設計や実装テクニックの話はこれを実現するための一手法に過ぎない。</small> --- ### [[DDD]]で感じたメリット - 仕様検討が楽 - 実装が楽 - プルリク/レビューが楽 - バグが出ない <small>代わりに導入までの学習コストや設計コストは高い。</small> --- #### [[DDD]]のための[[TypeScript]]ライブラリ ##### [[🦉Owlelia]] ![](https://opengraph.githubassets.com/e447a63b95edf3b586f3c77401d8e445840b1992469a99f28360b1f472b65cb3/tadashi-aikawa/owlelia) --- ```mermaid flowchart LR DDD ----> PKM:::focus ----> ADR classDef focus fill:#dfd; class DDD,PKM,ADR internal-link ``` --- [[DDD]]を続けると誰しも考えること カギは.ユビキタス言語とドキュメントにあり ドキュメントをいかに快適に書けるかがカギ Cxxxxxxでは快適とはいえない.. --- #### [[Obsidian]] ![](https://obsidian.md/images/screenshot.png) ###### https://obsidian.md/ --- ### [[PKM]] [[PKM|Personal Knowledge Management]] 個人の知識を収集、分類、保存、検索、取得、共有するためのプロセス --- 詳しくは [[👩‍🏫できる!LYT]]をご覧ください --- ```mermaid flowchart LR DDD ----> PKM ----> ADR:::focus classDef focus fill:#dfd; class DDD,PKM,ADR internal-link ``` --- そしてファイルは1000, 2000と増えていった.. 欲しくなる秩序.. そんな折.. --- <div class="link-card"> <div class="link-card-header"> <img src="https://www.lifull.blog/icon/link" class="link-card-site-icon"/> <span class="link-card-site-name">LIFULL Creators Blog </span> </div> <div class="link-card-body"> <div class="link-card-content"> <div> <p class="link-card-title">継続的ドキュメンテーション: Github DiscussionsとADRのすすめ - LIFULL Creators Blog </p> </div> </div> <img src="https://cdn-ak.f.st-hatena.com/images/fotolife/L/LIFULL-202004020/20210906/20210906141402.png" class="link-card-image"/> </div> <a href="https://www.lifull.blog/entry/2021/09/08/100000"></a> </div> --- ### [[ADR]] Architectural Decision Records - [[ADR]]は[[AD]]の集合体 - [[AD]]は[[ASR]]に対応するため決めたアーキテクチャに関する決定 - [[ASR]]は測定可能なシステムアーキテクチャの重要な要件 <small>つまり、**要件を満たすため検討したアーキテクチャの採用/不採用を記録**したモノ</small> --- [[PKM]]の公開サイト[[Minerva]]で試してみた ![[Pasted image 20210920224132.png]] ###### [💿MIN \- Minerva](https://minerva.mamansoft.net/%F0%9F%92%BFADR/%F0%9F%92%BFMIN) --- ### [[ADR]]の感想 - 1人ではオーバーキル感あるが.. - フォーマットが決まっているので思考を整理しやすい - ルールページの参考リンクとして流用しやすい - なんとなくカッコイイ --- ### ルールリストの例 ![[Pasted image 20210920224428.png]] ###### [📒Obsidianルールリスト \- Minerva](https://minerva.mamansoft.net/Obsidian/%F0%9F%93%92Obsidian%E3%83%AB%E3%83%BC%E3%83%AB%E3%83%AA%E3%82%B9%E3%83%88) --- [[Change log]]に[[ADR]]のリンクを貼ればOK ![[Pasted image 20210920224703.png]] ###### [📓MinervaのPrefixアイコンルール \- Minerva](https://minerva.mamansoft.net/Obsidian/%F0%9F%93%93Minerva%E3%81%AEPrefix%E3%82%A2%E3%82%A4%E3%82%B3%E3%83%B3%E3%83%AB%E3%83%BC%E3%83%AB) --- ## まとめ - [[DDD]]・[[PKM]]・[[ADR]]を紹介 - [[Obsidian]]なら3つ全てに適応できる! --- **永年半額のチャンスはあと <b style="font-size: 150%">10日</b> だけ** (9月中) ![[Pasted image 20210920225818.png]] --- ![](https://generator.tubudeco.com/img_deco/d926.gif) [Pricing \- Obsidian](https://obsidian.md/pricing) --- # END --- ```mermaid gantt dateFormat YYYY-MM axisFormat %Y-%M section DDD 学習 :, 2019-02, 2019-04 実践 :, 2019-04, 2021-09 section PKM 学習 :, 2020-12, 2021-01 実践 :, 2021-01, 2021-09 section ADR 実践 :, 2021-09, 2021-09 ``` ^a51503