你們覺得一份代碼,注釋和代碼的比例應該是怎麼樣的一個範圍空間比較合適,可以是位元組角度,也可以是行數角度?

來源:互聯網
上載者:User

回複內容:

國標規定,VC工程注釋率為25%~50%,關鍵代碼注釋率為50%;

不滿足要求就無法通過軟體三方測評;

在滿足這個要求的前提下再談哪些需要注釋。

為了增加代碼注釋率,減少三方測評前“腦補”注釋的痛苦,
我們一般要求把《軟體設計文檔》中的"關鍵演算法”、“介面資料定義”等內容直接拷貝到代碼前面;

修改代碼時也順便把”關鍵演算法“、“介面資料定義”等的注釋也修改了;

修編《軟體設計文檔》時再用注釋中的”關鍵演算法“、“介面資料定義”等內容替換文檔中的相關內容;

通過這種辦法來保證文檔和代碼的一致性,減少軟體維護與人員更換時痛苦……我的觀點, 唯寫說明性注釋,不寫功能性注釋。也就是說,注釋Why,而不是 How和What

類和函數多寫 文檔注釋,多少行無所謂,寫在最前面,只要你是注釋的Why。

函數內部,盡量少寫注釋。如果你的代碼需要寫注釋來說明他的功能,那麼這段代碼就需要 重構,最簡單的方法,最簡單的方法: 提取函數。這樣的好處是,函數名就是注釋。一個錯誤的觀點就是 注釋是給人看的,程式是給電腦看的。其實,程式是給人的,湊巧的是,它居然可以在電腦裡運行。

《重構:改善既有代碼的設計 》一書寫道:
每當感覺需要以注釋來說明點什麼的時候,我們就把需要說明的東西寫進一個獨立函數中,並以其用途(而非實現手法)命名
每次我給別人講解「選擇排序」、「插入排序時」,他們都覺得太難了,而且幾乎每本資料結構教科書都是寫了一堆代碼和注釋,這絲毫沒有降低這個演算法的難度。

如果不寫注釋,而寫成函數呢?

虛擬碼:
array_ordered = []
loop_all_element(array, function(i){
el = select(array[i+1, array.length])
push(array_ordered, el)
......
})
  1. 構建一個有序數組,初始為空白
  2. 迴圈整個數組,進行如下操作:
  3. 從數組剩下的元素裡面選擇最小的(或最大的)
  4. 將最小元素放在有序數組的最後面(或者最前面)
不用我多解釋,你一眼就知道,這是 選擇排序

插入排序呢?大同小異,我就不詳細寫了。

所以, 文檔注釋,多少無所謂。函數內、類內注釋,能不寫,就不寫。我是這樣看的,要看你寫的代碼的作用是什麼。
1.簡單代碼或指令碼,遵循命名規範,可以不寫注釋,檔案開始寫明作用即可。關鍵區段寫簡單注釋。
2.由多個檔案組成的複雜項目結構,檔案開始的說明最好由工具產生,類方法的輸入輸出要標明。
3.如果是開源項目,那情況又完全不一樣了,注釋簡直是越多越好,“為什麼這麼做”也越多越好。

以上是我的理解,還請各位指正PHP本身,並不需要什麼注釋
變數命名規範一點就行。
最多給每個方法給一段說明。
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.