續上一章程序員修煉之道 (The Pragmatic Programmer From Journeyman to Master) 第一章讀書心得.
此為讀後重點筆記,好書值得大家購買閱讀.
持續第一章,本章點出一些開發人員必要的心法,謹記在心可以避免很多低級錯誤!
重覆之罪這我幹醮很多次了! 不管再怎麼憤怒都不應該 CP 來 CP 去,好好靜下心來思考是否可重新利用(重構)可運行的程式碼,這才是王道. 另外減少重覆同時也是在縮小出包的範圍. XD
正交就是指每個元件的交集程度,交集越小也代表重覆的概念or責任越少. 但正交性這章看完,我不知道為什麼我總是會想到”上班好同事,下班不認識.”這句話. XD
可逆性白點就是話不要說太死,說太滿結果最後說錯可是很丟臉低. 寫扣前要好好想想是否未來此處有變動的機率,留點後路以後也不會太痛也可以少加一點班.
我個人開發還常用 Tracer Bullets 這個技巧,不浪費每一個我摸索所寫下的程式碼,我果然有客家人的血統.
相對於 Tracer Bullets ,我覺得寫程式用 Prototype 真的很腦殘,刻一個看起來正確卻無用的東西,真的是白癡!
領域語言我覺得跟第一章所說的溝通有關. 如何用對方了解的事物解釋對方所不了解的東西,就某方面來說,我覺得這是一個好 RD 跟 普通好 RD 的差別之一.
最後一章節就真的屌了! 估時程,坦白說,我真的覺得有些東西根本沒辦法估時程,有時候你很認真估了一個時程,到實際上也不一定照這個時程跑. 我覺得與其自己學好這些技巧,不如讓整個團隊也重視這個觀念來得有用!
第二章 A Pragmatic Approach
The Evils of Duplication
- DRY.
- 不要用低階的思唯層次寫註解,這樣子的註解可視為程式碼另一種型式的重覆. 另外,不符合程式碼的註解 不如 沒有註解.
Orthogonality
- 系統中,每個程式元件都專心做好自己的事. 關於正交性最簡單的說法 : 大家都就做好自己該做的事.
Reversibility
- 沒有替代方案是最危險的事.
- 需求總是一直在變的.
- 一次寫一點點,回饋快,砍掉重練也不那麼痛.
Tracer Bullets
- 不是在紙上討論出所有未知問題的正確規格,而是用一種實驗性程式碼來找出問題的答案,每一次都是在寫一個從頭到尾的使用者案例.
Prototypes and Post-it Notes
- 相對於 Tracer Bullets , Prototype 是隨時可以丟棄的程式碼,最終不會成為產品上的一部份.
Domain Languages
- 領域語言幫助你補捉客戶的需求,隨著轉換成實作碼,最終它會變成可執行的程式碼.
- 領域語言讓你先在高階層次思考問題,之後再來考慮低階的實作細節.
Estimating
- 估時程前先問問自己: 對方是想要多精確的時程?
- 單位要使用正確. 14天跟兩個星期都代表一樣的時間長度,但人們會覺得14天很快就到了(然後每天來問你好了沒)!
- 估時程前,可以問問之前有做過一樣事情的人.
- 估時程前,先了解問題.
- 別人叫你估時程時,你最好回他”我估好再跟你說”.
0 則回應: