你所不知道的 DDD - ⽂件驅動開發
Leo 李歐
• LILEE Systems - Front-End Manager
• ⽔球軟體學院 ALPHA Leader
• Angular Taiwan 社群管理員
• 前端精神時光屋 3rd 前端評審
• ⼤神來六⾓ 2020/2021/2022
• 「Angular 深入淺出三⼗天」
• 「Angular Schematics 實戰三⼗天」
• 「Angular 深入淺出三⼗天:表單與測試」
(陳志龍)
Domain-Driven Design
Document-Driven Development
你所不知道的 DDD - 文件驅動開發
你所不知道的 DDD - 文件驅動開發
什麼是⽂件驅動開發?
先寫⽂件,再開發
⽂件的定義
• 包含但不限於任何⽂字、圖像的紀錄
• 形式不拘,但最好是數位的檔案
• 例如:規格需求書、API Spec、Test Plan、DoD (De
fi
nition of Done)、
Swagger UI...等等。
• 任何可以幫助溝通、後續開發與維護的記錄都算是我這邊所定義的「⽂件」
範圍內
為什麼要⽤⽂件驅動開發?
⼯程師的⽇常
A. 到職時發現公司沒有⽂件,難以融入
B. 嫌棄 Legacy Code 的同時,製造著 Legacy Code
C. 邊開發邊想怎麼開發,邊想怎麼開發邊開發
D. 開發完功能才寫⽂件,為了交卷⽽寫
困擾與痛苦的原因
1. 沒有⽂件
(曾經寫了但後續沒維護也⼀樣)
2. 沒有先想清楚就開發
3. 沒有先寫⽂件
⽤⽂件驅動開發有什麼好處?
⽤⽂件驅動開發的好處(公司)
• ⽩紙⿊字,有憑有據
• 知識與 Domain Know-How 的傳承
• 有助於團隊之間的溝通
⽤⽂件驅動開發的好處(個⼈)
• 提昇開發效率與後續維護性
• 提昇架構規劃能⼒與⼤局觀
• 不會覺得寫⽂件會浪費時間
怎麼開始⽂件驅動開發?
寫⽂件 Review
寫完
開發
主管/PM/資深同仁/TA
發現問題
沒問題
第⼀步
修改⽂件
改完
開發
開發時
發現問題
修改⽂件
發現問題
開發
開發完成
開發完成
Code Review &
⽂件 Review
⽂件驅動開發的⼼法
• 開始時的⽂件不需要寫到 100% 完美
• ⽂件跟程式碼⼀樣需要維護,維護時也別忘記先修改⽂件再修改程式碼
• ⽂件不是寫來給⾃⼰看就好,務必找⼈幫忙 Review
如何說服別⼈使⽤此⽅法
從⾃⼰開始 - DoD
• De
fi
nition of Done ,意即去定義你要做的事情要做到什麼程度才叫完成
• ⽂件內容
1. ticket/task/規格需求書內容(有連結可⽤連結)
2. break down 並寫下要做的確切事情(流程圖、API Spec/References)
3. 如何驗證你做的功能或事情有做對/做到位(Test Cases)
4. 請開ticket/task/規格需求書的那個⼈或是同事幫你 review
總結
• ⽂件驅動開發簡單⽤⼀句話來說就是:先寫⽂件再開發
• 先寫⽂件是為了強迫⾃⼰思考,以利後續開發與維護
• ⽂件有助於知識傳承與溝通,對所有⼈都是 Z > B
• ⽂件跟程式碼⼀樣需要維護,維護時也別忘記先修改⽂件再修改程式碼
• ⽂件不是寫來給⾃⼰看就好,務必找⼈幫忙 Review
你所不知道的 DDD - 文件驅動開發
Q & A
“寫作不只是思考之後的「結果」,它是你的思考真正發⽣的「地⽅」”
–Waki 瓦基(風靡歐美的卡片盒筆記法是什麼?12個法則和重點整理的作者)
Leo’s Coding Life 粉專 ⽔球軟體學院 Discord
Thank You!!

More Related Content

PDF
Domain Driven Design
PDF
Observability driven development
PDF
Google Firebase presentation - English
PDF
[WhaTap DevOps Day] 세션 6 : 와탭랩스 DevOps 이야기
PPTX
Designing APIs and Microservices Using Domain-Driven Design
PDF
Elastic Observability keynote
PPTX
Microservices Architecture & Testing Strategies
PPTX
Google Cloud GenAI Overview_071223.pptx
Domain Driven Design
Observability driven development
Google Firebase presentation - English
[WhaTap DevOps Day] 세션 6 : 와탭랩스 DevOps 이야기
Designing APIs and Microservices Using Domain-Driven Design
Elastic Observability keynote
Microservices Architecture & Testing Strategies
Google Cloud GenAI Overview_071223.pptx

What's hot (20)

PDF
JHipster
PPTX
Distributed tracing 101
PDF
Exploring the power of OpenTelemetry on Kubernetes
PPTX
Fleet and elastic agent
PDF
React for Beginners
PPSX
Agile, User Stories, Domain Driven Design
PDF
Adopting Domain-Driven Design in your organization
PDF
Refactoring for Domain Driven Design
PDF
The Many Ways to Test Your React App
PPTX
Future Of DevOps Trends 2023
PDF
AWS CodeCommit, CodeDeploy & CodePipeline
PPTX
How native is React Native? | React Native vs Native App Development
PPTX
Spring data jpa
PDF
More Than Monitoring: How Observability Takes You From Firefighting to Fire P...
PDF
Devoxx : being productive with JHipster
PPTX
React js - The Core Concepts
PPTX
DevOps culture
PDF
The aggregate is dead! Long live the aggregate! - SpringIO.pdf
PPTX
React-JS.pptx
PDF
Service mesh(istio) monitoring
JHipster
Distributed tracing 101
Exploring the power of OpenTelemetry on Kubernetes
Fleet and elastic agent
React for Beginners
Agile, User Stories, Domain Driven Design
Adopting Domain-Driven Design in your organization
Refactoring for Domain Driven Design
The Many Ways to Test Your React App
Future Of DevOps Trends 2023
AWS CodeCommit, CodeDeploy & CodePipeline
How native is React Native? | React Native vs Native App Development
Spring data jpa
More Than Monitoring: How Observability Takes You From Firefighting to Fire P...
Devoxx : being productive with JHipster
React js - The Core Concepts
DevOps culture
The aggregate is dead! Long live the aggregate! - SpringIO.pdf
React-JS.pptx
Service mesh(istio) monitoring
Ad

Similar to 你所不知道的 DDD - 文件驅動開發 (20)

PDF
Angular從入門到實戰(二)
PDF
實踐 Clean Architecture(實作高可用性的軟件架構)
PPTX
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
PPT
[DDD] 快快樂樂學DDD
PDF
History of share
PDF
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
PDF
Agile tour 2014 - Coding Dojo with C# and TDD
PDF
Agile tour Taipei 2014 - coding dojo with CSharp and TDD
PDF
Angular Conf 2018 - 原來 Angular 可以這樣玩設定
PDF
From Coders to Builders of the Intelligent World
PPTX
极速 Angular 开发:效能调校技巧 (ngChina 2019)
PPTX
web-frontend-overview
PDF
Djt22 justinliu djt.qq.com
PDF
Djt22 justinliu djt.qq.com
PDF
雲端產品的用戶體驗檢測重要性與作法
PPTX
评审材料2010年10月刘瀚予
PPT
The way to continuous delivery
PDF
在生命轉彎的地方 - 從軟體開發職涯,探索人生
PPTX
2021 ee大会-旷视ai产品背后的研发效能工具建设
PDF
Top100summit前端的云时代支付宝前端平台架构 王保平
Angular從入門到實戰(二)
實踐 Clean Architecture(實作高可用性的軟件架構)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
[DDD] 快快樂樂學DDD
History of share
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
Agile tour 2014 - Coding Dojo with C# and TDD
Agile tour Taipei 2014 - coding dojo with CSharp and TDD
Angular Conf 2018 - 原來 Angular 可以這樣玩設定
From Coders to Builders of the Intelligent World
极速 Angular 开发:效能调校技巧 (ngChina 2019)
web-frontend-overview
Djt22 justinliu djt.qq.com
Djt22 justinliu djt.qq.com
雲端產品的用戶體驗檢測重要性與作法
评审材料2010年10月刘瀚予
The way to continuous delivery
在生命轉彎的地方 - 從軟體開發職涯,探索人生
2021 ee大会-旷视ai产品背后的研发效能工具建设
Top100summit前端的云时代支付宝前端平台架构 王保平
Ad

More from 志龍 陳 (20)

PDF
[Angular][WenConf 2024] 那些年,你所不知道的 Angular
PDF
Angular 原始碼探索之Signal 篇
PDF
這些年,我寫 Angular 時所使用的小技巧
PDF
工程師必須具備的軟實力-產品思維
PDF
工程師必須具備的軟實力-不管理時間的下場是被時間追殺
PDF
工程師必須具備的軟實力-其實溝通很簡單
PDF
工程師必備的軟實力之溝通其實很簡單
PDF
Angular 深入淺出測試篇:E2E測試入門
PDF
Angular 深入淺出測試篇:整合測試入門
PDF
Angular 深入淺出測試篇:單元測試入門
PDF
Angular 深入淺出測試篇:新手入門
PDF
Angular 深入淺出表單篇:新手入門(三)
PDF
Angular 深入淺出表單篇:新手入門(二)
PDF
Angular 深入淺出表單篇:新手入門(一)
PDF
Angular 靜態網站產生器不求人:Scully 新手入門
PDF
Angular 從入門到實戰(四)
PDF
Angular 從入門到實戰(三)
PDF
Angular從入門到實戰(一)
PDF
Angular Testing for Book Club Online of Angular Taiwan
PDF
Schematics 實戰
[Angular][WenConf 2024] 那些年,你所不知道的 Angular
Angular 原始碼探索之Signal 篇
這些年,我寫 Angular 時所使用的小技巧
工程師必須具備的軟實力-產品思維
工程師必須具備的軟實力-不管理時間的下場是被時間追殺
工程師必須具備的軟實力-其實溝通很簡單
工程師必備的軟實力之溝通其實很簡單
Angular 深入淺出測試篇:E2E測試入門
Angular 深入淺出測試篇:整合測試入門
Angular 深入淺出測試篇:單元測試入門
Angular 深入淺出測試篇:新手入門
Angular 深入淺出表單篇:新手入門(三)
Angular 深入淺出表單篇:新手入門(二)
Angular 深入淺出表單篇:新手入門(一)
Angular 靜態網站產生器不求人:Scully 新手入門
Angular 從入門到實戰(四)
Angular 從入門到實戰(三)
Angular從入門到實戰(一)
Angular Testing for Book Club Online of Angular Taiwan
Schematics 實戰

Recently uploaded (20)

PPTX
学校原版韩国延世大学毕业证Yonsei毕业证原版一比一
PPTX
学校原版哥伦比亚理工学院毕业证BCIT毕业证原版一比一
PPTX
学校原版纽布伦斯威克大学毕业证UNB毕业证原版一比一
PPTX
学校原版不列颠哥伦比亚大学毕业证UBC毕业证原版一比一
PPTX
学校原版堪萨斯大学毕业证UKansas毕业证原版一比一
PPTX
学校原版加州大学戴维斯分校毕业证UC Davis毕业证原版一比一
PPTX
学校原版布鲁内尔大学毕业证Brunel毕业证原版一比一
PPTX
2024四年级科学常识比赛2024四年级科学常识比赛2024四年级科学常识比赛2024四年级科学常识比赛
PPTX
学校原版明尼苏达大学毕业证UMN毕业证原版一比一
PPTX
学校原版克莱姆森大学毕业证Clemson毕业证原版一比一
DOCX
孕經濟:月子中心產業發展現狀及未來策略探討 唯有與時俱進,不斷創新,才能在孕經濟浪潮中立於不敗之地。詹翔霖老師.docx
PPTX
学校原版阿卡迪亚大学毕业证Acadia毕业证原版一比一
PPTX
学校原版爱丁堡龙比亚大学毕业证Dundee毕业证原版一比一
PPTX
学校原版迈阿密大学毕业证UMiami毕业证原版一比一
PPTX
学校原版阿什里奇商学院毕业证Ashridge毕业证原版一比一
PPTX
学校原版弗吉尼亚大学毕业证UVA毕业证原版一比一
PPTX
学校原版伦敦城市大学毕业证London Met毕业证原版一比一
PPTX
学校原版班戈大学毕业证Bangor毕业证原版一比一
PPTX
学校原版格里菲斯大学毕业证GU毕业证原版一比一
PPTX
学校原版佐治亚大学毕业证UGA毕业证原版一比一
学校原版韩国延世大学毕业证Yonsei毕业证原版一比一
学校原版哥伦比亚理工学院毕业证BCIT毕业证原版一比一
学校原版纽布伦斯威克大学毕业证UNB毕业证原版一比一
学校原版不列颠哥伦比亚大学毕业证UBC毕业证原版一比一
学校原版堪萨斯大学毕业证UKansas毕业证原版一比一
学校原版加州大学戴维斯分校毕业证UC Davis毕业证原版一比一
学校原版布鲁内尔大学毕业证Brunel毕业证原版一比一
2024四年级科学常识比赛2024四年级科学常识比赛2024四年级科学常识比赛2024四年级科学常识比赛
学校原版明尼苏达大学毕业证UMN毕业证原版一比一
学校原版克莱姆森大学毕业证Clemson毕业证原版一比一
孕經濟:月子中心產業發展現狀及未來策略探討 唯有與時俱進,不斷創新,才能在孕經濟浪潮中立於不敗之地。詹翔霖老師.docx
学校原版阿卡迪亚大学毕业证Acadia毕业证原版一比一
学校原版爱丁堡龙比亚大学毕业证Dundee毕业证原版一比一
学校原版迈阿密大学毕业证UMiami毕业证原版一比一
学校原版阿什里奇商学院毕业证Ashridge毕业证原版一比一
学校原版弗吉尼亚大学毕业证UVA毕业证原版一比一
学校原版伦敦城市大学毕业证London Met毕业证原版一比一
学校原版班戈大学毕业证Bangor毕业证原版一比一
学校原版格里菲斯大学毕业证GU毕业证原版一比一
学校原版佐治亚大学毕业证UGA毕业证原版一比一

你所不知道的 DDD - 文件驅動開發