軟體建構之道 (Code Complete)2 閱讀筆記

Code Complete

Code Complete 閱讀筆記。
此書著重在程式碼的撰寫及除錯。我覺得很棒的一本書,目的是要讓你寫出高品質的程式碼,很多人不是很重視,總覺得只要寫完的程式能跑就好了,誰管他寫得怎樣。記得我初學程式設計時,看過一篇文章,裡面有個重點,就是讓你撰寫的程式碼,簡潔明瞭到連一個阿嬤都看得懂。當然這是誇張的說法,不過我卻把它拿來當做準則,希望我寫得程式在給別人看時,能夠看得很輕鬆,那自己再回頭看時就不會太累了。

不過我的筆記沒有記撰寫程式碼的準則,而是一些寫程式時的態度

1.軟體工程師:人類的智力就是基本的建築材料,而您本身就是主要工具。

2.若您決心要成為大師級的人物,只有自己努力鞭策自己,而此則與每個人的個性有關。

3.個性在養成優秀的程式設計師上,有著更具決定性的因素。

4.除了需要具有吸收所有細節知識的能力,還必須同時具備超強的理解力--使用才智的方式,遠比有多少才智還要重要

5.越懂得學習如何彌補大腦的不足,也就越有機會成為更優秀的程式設計師;越是懂得謙遜,進步的腳步也越快。

6.技術環境每五到十年就會改變一次,若您的好奇心不足,將無法趕上這些變化潮流而成為古董。

7.實驗!有效學習程式設計的做法即是實驗程式設計與開發流程。

8.有效程式設計的關鍵在於:快速學習犯錯,每次從中獲取教訓。犯錯不是一項罪惡,但無法從錯誤中學習卻是一項罪惡。(套句online game的概念,殺bug數破千,Level Up!您從初級程式設計師升級成中級程式設計師~~)

9.針對人們(使用的人)的需求而寫,而非機器。

10.求知的熱誠:
  • 拒絕在未達到專家境界前,佯裝自己已是大師級的人物。
  • 快速承認自己的錯誤。
  • 嘗試瞭解編譯器發出的警告,而不是不管這些訊息。
  • 清楚瞭解自己的程式,而不是將它編譯,看它是否能夠運作。
  • 提供符合實際情況的狀態報表。
  • 提供時程預估,並堅持立場。

11.程式設計是先與另一位程式設計師溝通,然後再與電腦溝通。(合作)

12.在程式設計的工作中,請試著養成有效的新習慣。(不良的習慣會造成工作效率低落及低品質的程式碼)

13.克服「複雜度」的方法:
  • 分解。
  • 謹慎地定義類別介面。
  • 避免使用全域資料。
  • 避免使用深度繼承。(作者說,超過3層就太多了)
  • 避免使用深層迴圈和條件陳述式。(if裡面的if裡面的if裡面的if裡面的if...隔2個小時回來看都不一定看懂,所以避免囉~)
  • 單一類別不要過於龐大。(有可能你給這個類別太多任務了,請試著把它分解,不要讓這個類別"能者多勞")
  • 保持函式簡短。
  • 運用慣例,節省腦力。(前人走過留下的好東西要收下,不要再自創,把腦袋拿來做別的事)

14.不要讓程式設計的想法侷限在你所用的語言。以想要做的事為出發點去思考,再想如何使用可用的程式設計工具去完成目標。

15.在語言內寫程式(programming in a language)而不是加入語言的程式設計(programming into a language)。

16.將程式分隔為抽象概念的層次。(你必須要學會抽象,才能學好物件導向程式設計)

17.「複雜的程式碼」和「不好的程式碼」意思是一樣的。(哈~和一剛始說的一樣,讓你的程式碼簡潔明瞭到連一個阿嬤都看得懂,既不會虐待自己,也不會虐待另一個程式設計師,畢竟大家都是寫程式的,不要相害啊~~~)
本文網址:http://blog.tonycube.com/2009/11/code-complete2.html
Tony Blog 撰寫,請勿全文複製,轉載時請註明出處及連結,謝謝 😀

1 則留言

留言小提醒:
1.回覆時間通常在晚上,如果太忙可能要等幾天。
2.請先瀏覽一下其他人的留言,也許有人問過同樣的問題。
3.程式碼請先將它編碼後再貼上。(線上編碼:http://bit.ly/1DL6yog)
4.文字請加上標點符號及斷行,難以閱讀者恕難回覆。
5.感謝您的留言,您的問題也可能幫助到其他有相同問題的人。