# free-ddd-learning-resources **Repository Path**: vitaware/free-ddd-learning-resources ## Basic Information - **Project Name**: free-ddd-learning-resources - **Description**: DDD 领域驱动设计 学习资料 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-05-24 - **Last Updated**: 2022-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Free Domain-Driven Design Learning Resources This repository contains a collection of blog posts, videos and other resources for learning Domain-Driven Design. All resources are free to access. > Please raise an issue if there is a resource you think should be added to this collection. *Table of Contents* 1. [DDD Introductions & Fundamentals](#ddd-introductions-and-fundamentals) 2. [Collaborative Modelling](#collaborative-modelling) 3. [Strategic Design](#strategic-design) 4. [Tactical DDD / Domain-as-code](#tactical-ddd--domain-as-code) 5. [Case Studies](#case-studies) 6. [DDD Blogs](#ddd-blogs) ## DDD Introductions and Fundamentals These resources are typically aimed at beginners providing an overview of DDD as a whole and how the individual concepts fit together. ### EBooks - [Domain-Driven Design Reference](https://domainlanguage.com/wp-content/uploads/2016/05/DDD_Reference_2015-03.pdf), Eric Evans - [The Anatomy of Domain-Driven Design](https://leanpub.com/theanatomyofdomain-drivendesign), Scott Millett and Samuel Knight - [DDD: The First 15 Years](https://leanpub.com/ddd_first_15_years), Various Authors - [Domain-Driven Design Quickly](https://www.infoq.com/minibooks/domain-driven-design-quickly/), Abel Avram and Floyd Marinescu - [Domain Modeling Made Functional Scott Wlaschin (电子版可下载)](http://www.doc88.com/p-7982596077817.html) ### Written Articles - [Domain-Driven Design](https://martinfowler.com/bliki/DomainDrivenDesign.html), Martin Fowler - [Domain-driven design needn't be hard. Here's how to start](https://www.thoughtworks.com/insights/blog/domain-driven-design-neednt-be-hard-heres-how-start), Andrew Hamel-law  ** 主要列出使用领域驱动设计的一些核心技巧()** - 关注商业问题 - 代码也是建模的一部分 - 与领域专家一起搞 - 保持问题简单易读 - 如果领域专家认为模型有问题,“那就一定有问题” (可能是理解问题,或者粒度问题,无论如何都是问题) - 模型拆分 - 一个模型解决一个问题 - [DDD Starter Modelling Process](https://gitee.com/ddd-crew/ddd-starter-modelling-process) ### Videos - [What is DDD?](https://www.youtube.com/watch?v=pMuiVlnGqjk), Eric Evans - [Tackling Complexity in the Heart of Software](https://www.youtube.com/watch?v=dnUFEg68ESM), Eric Evans - [Getting to DDD: Pragmatic or Principled?](https://www.youtube.com/watch?v=3AAzySH3A88), Julie Lerman ### Other Resources - [DDD from Product people's perspective](https://drive.google.com/file/d/1cIMdatvI2o3OjGnqnjQX6p6VQWfQAL5Z/view), Zsofia Herendi - [Virtual DDD Meetup Group](https://virtualddd.com/) - [DDD-CQRS-ES Slack channel](https://ddd-cqrs-es.slack.com) is a very active community to ask questions about anything relating to DDD, and get answers from practitioners in different contexts - Link to join: https://j.mp/ddd-es-cqrs ## Collaborative Modelling These resources teach and show how software development practitioners and domain experts can work together to model business domains. ### Written Articles - [Event Storming](https://openpracticelibrary.com/practice/event-storming/), Open Practice Library - [Domain Storytelling](https://openpracticelibrary.com/practice/domain-storytelling/), Open Practice Library ### Videos - [100,000 Orange Stickies Later](https://www.youtube.com/watch?v=fGm62ra_mQ8&feature=youtu.be), Alberto Brandolini ### Other Resources - [Visual Collaboration Tools](https://leanpub.com/visualcollaborationtools), Kenny Baas-Schwegler & João Roasa - [Awesome EventStorming](https://github.com/mariuszgil/awesome-eventstorming), Mariusz Gil ## Strategic Design These resources teach how to decompose a large domain into sub-domains and represent them as high-level architectural components called Bounded Contexts. ### Written Articles - [Bounded Context](https://martinfowler.com/bliki/BoundedContext.html), Martin Fowler - [Tackling business complexity with strategic domain-driven design](https://inside.getyourguide.com/blog/2019/11/18/tackling-business-complexity-with-strategic-domain-driven-design), Leandro Lages **结合context map, 将实际设计中如何设计bounded context以及 context relationship解释的很清楚** ### Videos - [Bounded Contexts](https://www.youtube.com/watch?v=ZEJ2Vyk1HA0), Cyrille Martraire - [Practical DDD: Bounded Contexts + Events](https://www.youtube.com/watch?v=Nr6jAwOunGM), Indu Alagarsamy - [Emergent Boundaries](https://verraes.net/2017/04/emergent-boundaries/), Matthias Verraes - [Socio-technical architecture](https://www.youtube.com/watch?v=9Ft39wz6fHM), Ora Egozi Barzilai and Evelyn van Kelle - [All Our Aggregates Are Wrong](https://www.youtube.com/watch?v=KkzvQSuYd5I), Mauro Servienti ### Other Resources - [Aligning organization and architecture with strategic DDD](https://speakerdeck.com/mploed/aligning-organization-and-architecture-with-strategic-ddd), Michael Plöd ## Tactical DDD / Domain-as-code These resources show how to design software which is closely aligned to the business domain so that it is easier to understand and change. ### Ebooks - [Architecture Patterns with Python](http://www.cosmicpython.com), Harry Percival & Bob Gregory ### Written Articles - [Aggregates & Entities in Domain-Driven Design](http://thepaulrayner.com/blog/aggregates-and-entities-in-domain-driven-design/), Paul Rayner - 把Aggregates & Entities一些关键疑惑点解释的比较清晰 - 以PO为例,解释了Aggregates, Entitys, Root Entity , Value Object - 以PO为例,解释了PO, Order Line的关系 - [Strengthening your domain: a primer](https://lostechies.com/jimmybogard/2010/02/04/strengthening-your-domain-a-primer/), Jimmy Bogard ### Videos - [Domain Modeling Made Functional](https://www.youtube.com/watch?v=1pSH8kElmM4), Scott Wlaschin - [Design in the small](https://www.youtube.com/watch?v=3iLW4puXHvc), Yves Reynhout - [Refactoring for DDD Without Microservicing Your Monolith](https://www.youtube.com/watch?v=y2mL-6CcYBw), Harry Brumleve ### Other Resources - [DDD By Examples](https://github.com/ddd-by-examples/library), Jakub Pilimon and Bartłomiej Słota - 以图书馆为例,使用DDD方法,介绍了整个设计过程与输出,清晰解释了设计工具如何具体使用 - JAVA版本的代码 - php版本代码(未完善) ## Case Studies - [OOps I DDD it again and again](https://www.slideshare.net/OraEgoziBarzilai/mucon-2019-oops-i-ddd-it-again-and-again), Ora Egozi-Barzilai - [10 Lessons from a Long Running DDD Project](https://lostechies.com/jimmybogard/2016/06/13/10-lessons-from-a-long-running-ddd-project-part-1/), Jimmy Bogard ## DDD Blogs - [Alberto Brandolini](https://ziobrando.blogspot.it/) - [DDD Weekly](http://dddweekly.com/) - [Kenny Baas-Schwegler](https://baasie.com/) - [Paul Rayner](http://thepaulrayner.com/) - [Udi Dahan](http://udidahan.com/category/ddd/) - [Vladik Khononov](https://vladikk.com/) - [Zsofia Herendi](https://www.zherendi.com/blog) ## Contributions and Inspiration In addition to the content creators of each of the resources, thanks also goes to the following people: - [Krzysztof Góralski](https://twitter.com/k_goralski) - [Nick Chamberlain](https://twitter.com/heynickc) We also thank to all [existing and future contributors](https://github.com/ddd-crew/free-ddd-learning-resources/graphs/contributors)