天天看點

軟工個人作業-部落格作業-WEEK2

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

        沒有提供單元測試,但是進行了性能測試。