1.是否須要代碼規範:
(1)這些規範都是官僚制度下產生的浪費你們的編程時間、影響人們開發效率, 浪費時間的東西。
首先來講,從短時間上和個體上來看,一個團隊的代碼風格必然會在必定程度上與我的的代碼習慣有所衝突,因此在這個層面上來講,他對個體的開發效率在短時間上會有必定影響。
然而,在宏觀上,從長遠角度出發,開發一個項目,是一個團隊的事,制定一套代碼規範會讓團隊的合做更加高效,更加緊密,由於代碼規範的制定會讓團隊成員更易理解他人的代碼,而且能讓迭代更加輕鬆,而且一個好的編碼風格也會讓個體有所提升。
(2)我是個藝術家,手藝人,我有本身的規範和原則。
我認爲這句話是正確的,如果真把程序員比做藝術家手藝人,那每一個coder必然有本身的規範和原則,在咱們進行單獨開發時,秉持這些原則無可厚非,然而程序員並不能像藝術家同樣始終以一個個體存在着,當他加入團隊開發時,就必然不能總憑着本身的性子來我行我素,因此在團隊開發時,仍是要堅持團隊的開發規範和方向原則。
(3)規範不能強求一概,應該容許不少例外。
這句話我保持中立態度,由於瞭解很少。其實我以爲,一個代碼規範也是有好壞之分的,這個好壞的評判是在與項目需求的覆蓋程度相關的,若是真的是須要大量例外才能支持這個項目實現功能的話,能夠說這個代碼規範是不合格的。因此,在沒必要要的時候,即代碼規範和功能實現不發生衝突的時候,仍是要遵照規範的。
(4)我擅長制定編碼規範,大家聽個人就行了。
代碼規範是一個團隊所共用,因此應該由一個團隊有經驗的人員一塊兒制定,這樣在你們的代碼習慣和需求實現的邏輯上找一個折中的結果。
2.代碼複審:
(1)Does the code work? Does it perform its intended function, the logic is correct etc.
代碼能夠正常運行,通過測試沒有發現明顯的邏輯錯誤。
(2)Is all the code easily understood?
代碼仍是比較容易讀懂的,變量和函數名有實際意義,因此比較容易理解。
使用了大量庫函數,因此功能邏輯也比較清晰。
中文處理的一些部分寫的着實有點複雜,不太容易理解。。。。
(3)Does it conform to your agreed coding conventions? These will usually cover location of braces, variable and function names, line length, indentations, formatting, and comments.
代碼風格我比較認同,變量名,函數名,常量名有實際意義,又有不一樣格式,表達式符號之間有空白符,清晰明瞭。使用駝峯法命名。
(4)Is there any redundant or duplicate code?
代碼重用率很高,把功能封裝成函數,進行調用,減小冗餘。
(5)Is the code as modular as possible?
作了必定程度上的模塊化,然而在面向對象方面作的並非特別徹底,仍是能夠看出明顯的面向過程的編碼思想。
(6)Can any global variables be replaced?
沒有全局變量
(7)Is there any commented out code?
有註釋掉的代碼,是被否認掉的代碼,還有一些功能上的說明。。。。還有一些表達情緒的話。。。
(8)Do loops have a set length and correct termination conditions?
有,通過測試沒有死循環出現。
(9)Can any of the code be replaced with library functions?
額。。。對cpp的庫不是太熟悉,並無發現明顯的能夠用庫函數替換的地方。
(10)Can any logging or debugging code be removed?
被註釋掉了。
(11)Are all data inputs checked (for the correct type, length, format, and range) and encoded?
若是-r後的參數要求大於1,-n後的參數要求大於0,不然會報錯。
若是-e -a後的文件名對應的文件不存在,則會報錯。
(12)Where third-party utilities are used, are returning errors being caught?
沒有用到第三方開發庫。
(13)Are output values checked and encoded?
進行了檢驗,並按照規定的格式對數據進行了編碼。
(14)Are invalid parameter values handled?
對參數值和參數名都進行了檢測,不會處理沒有規定的參數名,對於錯誤的參數值會進行報錯。
(15)Are all functions commented?
沒有對全部函數進行之註釋。
(16)test
沒有提供單元測試,可是進行了性能測試。
程序員