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.「複雜的程式碼」和「不好的程式碼」意思是一樣的。(哈~和一剛始說的一樣,讓你的程式碼簡潔明瞭到連一個阿嬤都看得懂,既不會虐待自己,也不會虐待另一個程式設計師,畢竟大家都是寫程式的,不要相害啊~~~)
大家可以多參考這篇文章.很受用喔.
回覆刪除