除夕夜,讓 TPP 陪我過年...... QQ
Chapter 6 - While You Are Coding
Coding 不是機械性的工作;在這過程中必須對決策進行仔細的思考和判斷。
Section 31: Programming by Coincidence
深思熟慮地寫 code,別依賴巧合。瞭解自己在做什麼,照計劃行事,並只依靠可靠的事物。
Section 32: Algorithm Speed
Big-Oh notation: worst-case time.
O(n2): on the order of n2.
Estimate the order of your algorithms. Test your estimates.
特別注意當輸入集很小的時候,某些演算法的開銷可能會比其它簡單演算法的還大。
Section 33: Refactoring
Change and decay in all around I see...
--H. F. Lyte, "Abide With Me"
以園藝來比擬軟體開發。重寫 + 重做 + 重新架構 = 重構。重構就是重新設計。
何時重構?違反 DRY / 非正交設計 / 過時知識 / 性能低落。
它得花費額外的時間來完成,不過早期切除腫瘤總是比較好的。Refactor early, refactor often.
Section 34: Code That's Easy to Test
Design to test. 讓 testability 成為軟體的一環。
Unit testing: testing against contract. 保留單元測試並時常跑它。有些現成的框架可以協助完成。
Test your software, or your users will.
Section 35: Evil Wizards
Don't use wizard code you don't understand. 否則就是在靠巧合編程。確保自己完全瞭解了才用。
沒有留言:
張貼留言