標籤:
一、有關代碼規範的討論
對於是否需要有代碼規範,請考慮下列論點並反駁/支援:
- 這些規範都是官僚制度下產生的浪費大家的編程時間、影響人們開發效率, 浪費時間的東西。
- 我是個藝術家,手藝人,我有自己的規範和原則。
- 規範不能強求一律,應該允許很多例外。
- 我擅長制定編碼規範,你們聽我的就好了
關於代碼規範的一些看法:
1.代碼規範是良好的編程習慣之一,有利於代碼的維護,也能提高開發效率。雖然可能在代碼規範上會花費一些時間,但這樣的習慣能夠有效減少以後調試、閱讀代碼的時間。比如:用正常化的變數名雖然比隨便起的名字要多打幾個字,但是對正常化的變數名對程式開發的益處是不言而喻的;在團隊開發中,每個成員只能開發相應的模組,很用可能會用到隊友的代碼,介面規範在團隊合作中就顯得尤為重要。所以,代碼規範是極必要極有益的。
2.在團隊中,寫代碼不只是一個人的事情, 自己寫的代碼能被別人維護、使用,所以為了團隊能夠順暢得工作,自己也要遵循團隊的代碼規範。
3.我覺得代碼規範應該是越統一越好,但是也應該允許有例外。準確而又有彈性的規範能夠獲得程式猿的接受而且也更合理。
4.代碼規範應該由團隊統一制定,可以由一個人主導,但是應該徵求大家的意見。
二、代碼複審
由於結對夥伴是外國友人,代碼能力比較差,提交的作業只有不到40行,我就對自己的代碼進行複審吧。
1.缺乏良好的代碼規範
我重新閱讀了自己一個星期前寫的工程,發現對很多函數的功能還是不能迅速瞭解,需要仔細閱讀函數內部的代碼才能明白程式功能。這種問題就是由於沒有良好的代碼規範導致的。我自己寫的代碼沒有前置和後置條件,也沒有注釋來描述函數的行為和功能,僅僅是函數名稱能夠提示我這個函數的具體功能,而由於命名不準確有時候多個類似的函數名會引起歧義。
2.程式沒有對異常輸入進行處理
這個問題應該是在設計的時候沒有考慮異常情況而且在測試的時候對異常輸入也沒有測試完全而導致的。
例如:1++2 會導致程式崩潰
1 2 + 1 - 的結果是2
3.代碼結構有問題,計算應該獨立出來形成一個計算類。而我封裝到了Expression類中,資料和邏輯處理沒有分開。
4.寫了3個全域變數,其中有兩個可以轉換成局部變數。
5.對於異常情況返回-1,但是當將這個程式擴充成支援負數的程式的時候就有問題了。程式對異常處理還是有問題的,可擴充性差。
6.缺少文檔、缺少單元測試。
個人部落格作業Week2