Apr. 12 15:31~16:35
Teddy在《單元測試與持續整合實作班課程實錄》這一篇貼了下面這張投影片,列出了Teddy認為幾項基礎的敏捷開發技能。最近有鄉民跟Teddy介紹在《The Clean Coder: A Code of Conduct for Professional Programmers》這本書第18~19頁作者列出了幾項「軟體專業人士應該熟悉的清單」,今天就來介紹一下這個清單。
***
- Design patterns:必須要有能力描述GoF這本書中的23個設計模式,這還不打緊,還要在工作上使用過許多POSA(pattern-oriented software architecture)書中的模式。等一下,POSA這系列的書已經出到第五冊了,這…作者的意思是只要有第一冊的經驗,還是全部五冊都要多少碰一下哩?對了,第六冊什麼時候要出,還是已經出了?!
- Design principles:要懂SOLID這五個設計原則(Single responsibility、Open-closed、Liskov substitution、Interface segregation、Dependency inversion,請參考《Agile Software Development: Principles, Patterns, and Practices》這本書)。另外還要了解元件原則(component principles)。作者沒有解釋component principles是什麼,Teddy猜測可能是指《Agile Software Development: Principles, Patterns, and Practices》這本書中提到的Principles of Package Design,或是更廣義的有關軟體元件設計的相關知識。
- Methods:要了解XP、Scrum、Lean、Kanban、Waterfall、結構化分析與設計 (迷之音:最後一項為什麼不是物件導向分析與設計哩?)光是這一項要了解的東西也太多了吧,全部搞熟都可以當顧問了。
- Disciplines:要懂TDD、物件導向設計、結構化編程(structured programming)、持續整合、pair programming。
- Artifacts:要懂如何使用UML、DFD(data flow diagram)、Structure Chart、Petri Net、State Transition Diagram、Flow Chart、Decision Table。
***
寫到這邊Teddy突然有個疑問:為什麼沒有refactoring哩?
***
友藏內心獨白:絕世武功…的目錄…好厚一疊啊。
作者已經移除這則留言。
回覆刪除大推POSA系列的書 :)
回覆刪除印象中Bob大叔在 Clean Coder 第一章就強調了隨時要做refactoring喔,至少原文第15頁中間就有提到了吧?Teddy可以先看一下我之前抄下的讀書心得筆記(http://apple2pig.blogspot.tw/2012/11/the-clean-coder-code-of-conduct-for.html)
回覆刪除另外,個人也推薦 Martin Fowler 大師的 Patterns of Enterprise Application Architecture(http://www.amazon.com/Patterns-Enterprise-Application-Architecture-Martin/dp/0321127420/ref=la_B000AQ6PGM_1_1?ie=UTF8&qid=1366245098&sr=1-1)
我的意思是書中18~19頁作者列出了的項目中,好像沒有包含 refactoring,不是說整本書都沒提到啦。
刪除謝謝你的補充。
refactoring? 早就跟testing湊在一起做成TDD牛丸了...
回覆刪除TDD牛丸....這個好笑 XD。
刪除