Tips to Comment Your Code

來源:互聯網
上載者:User
 

Tips to Comment Your Code
(原文地址:http://www.devtopics.com/13-tips-to-comment-your-code/)

    這篇文章是西班牙的jose M.Aguilar在他優秀的blog variable not found裡發表的,得到他的允許後,Timm martin翻譯修改後重新在這裡發布。

下面13條技巧是關於如何如何注釋你的代碼,使得它即使隨著時間的流逝仍易於理解和維護。

1.注釋每一級
注釋每一個代碼塊,對於每一層級的代碼使用統一的注釋方法.比如:
*針對每個類,注釋包含一個簡單的描述,作者和最近修改日期。

*針對每個方法,包括一個它目的的描述,功能,參數和結果.
當在一個團隊裡採用一個注釋標準是重要的。當然,為了有利於注釋任務使用注釋約定和工具(例如在C#裡用XML,JAVA裡使用JAVADOC)是可接受的。

2.使用段落注釋。
     將代碼塊多個程式碼片段,每個程式碼片段完成一個簡單的任務,然後在每個代碼塊開始處添加備忘告知讀者它將要做什麼。
// Check that all data records
// are correct
foreach (Record record in records)
{
    if (rec.checkStatus()==Status.OK)
    {
        . . .
    }
}
// Now we begin to perform
// transactions
Context ctx = new ApplicationContext();
ctx.BeginTransaction();
. . .

 

3.將注釋擺列成連續的一行
   對於多行的代碼使用跟在行後的注釋,將會更容易閱讀。
   const MAX_ITEMS = 10; // maximum number of packets

   const MASK = 0x1F;    // mask bit TCP
 一些開發人員使用tab鍵來排列注釋,但是其他人使用空格。tab會有不方便的地方,在編輯器和IED的切換中tab的效果可能會改變,最好的方式還是使用Space.(這點我不贊成,還是用TAB好,有IDE的情況下,沒人會用編輯器吧^_^ 不過如果有耐心使用SPACE使得效果像TAB一樣那最好)

4.不要侮辱讀者的智商
   避免顯而易見的注釋,像下面這樣:

   if (a == 5)      // if a equals 5
    counter = 0; // set the counter to zero

 這浪費你的時間寫不需要的注釋,並且使用可以輕易從代碼推斷出來的細節來使讀者困惑。

 

5.文雅的注釋

   避免粗魯的注釋,像這樣,“注意愚蠢的使用者已經輸入一個負數” 或者 “這裡修補了最初可憐不稱職的開發人員實現的產品的側面效果”。對他們的作者這樣的注釋不會好的反應,並且你也不會知道將來誰可能讀到這些注釋,也許是你的老闆,客戶,或者剛剛被你侮辱的那位可憐的不稱職的開發人員。(誰會這麼無聊^_^)

6.在注釋列寫多餘你需要傳達的意思文字。避免ASCII字元,玩笑,詩和太緊湊(hyperverbosity) .簡短,保持注釋的簡單和直接。

7. 使用一致的風格

  一些人相信注釋應該寫到可以讓非程式員明白的程度。另外一些人認為注釋僅僅指導開發人員。在任何事件中,如文章Successful Strategies for Commenting Code裡說明的,問題的實質是注釋的組成和面對的是不是總是同樣的讀者。就我而言,我不懷疑會有很多非開發人員會讀到代碼,因為注釋還應該面向另外的開發人員。

8. 針對內部使用者使用專門的標記

 當作為一個團隊進行編碼工作時,應該採用一套標記在程式員中間交流。例如,許多團隊使用一個”TODO:”標記來指出需要附加工作的代碼部分:

int Estimate(int x, int y)
{
    // TODO: implement the calculations
    return 0;
}
標記注釋不是解釋代碼,而是提出需要注意或者表達一個資訊。但是如果你使用這個方法,記住要弄清楚實際做的時候需要什麼資訊。

 

9.當你寫代碼的時候同時注釋它。

   當你寫代碼的時候同時注釋它,這樣它在你的記憶力是新的。如果你直到最後才全部去注釋,你將花費兩倍長的時間。“我沒有時間去注釋”,“我很忙”或者“項目被延時了”這些都只不過是避免給你代碼寫文檔的借口。有些開發人員認為在寫代碼之前,應該先寫注釋,作為計劃你最終的解決方案的一個方法。比如:

public void ProcessOrder() 
{
    // Make sure the products are available
    // Check that the customer is valid
    // Send the order to the store
    // Generate bill
}

 

10.如同他們是本該做的一樣的寫注釋(事實上,他們的確是)
當注釋代碼時,不僅要考慮將來那些需要維護你的代碼的開發人員,還需要為你自己考慮。在
Phil Haack裡有一段很棒的詞語:
 ("As soon as a line of code is laid on the screen, you’re in   maintenance mode on that piece of code.")
   一行代碼一被放置到螢幕上你就應該進入到這片代碼的維護模式中。

   結果就是,我們自己會成為好的(或者壞的)注釋的第一個受益者。

11. 當你更新代碼時更新注釋。
 如果注釋沒有跟隨代碼改變,There is no point in commenting correctly on code(慚愧,不明白它的意思……)。代碼和注釋必須同步改變,否則對於將要維護的代碼的開發人員注釋將變成更加困難。特別注意重構工具,它們會更新你的代碼但是注釋卻沒有改變!

12.注釋的黃金準則:可讀性的代碼
     對於大多數開發人員的基本準則之一:讓你的代碼能說明自己。儘管有些人猜想這個準則是由那些不願意寫注釋的開發人員造成的,但是自解釋的代碼對編寫更容易理解代碼的確大有協助。比如,在我的文章Fluid Interfaces裡清楚的顯示了自解釋的代碼:

Calculator calc = new Calculator();
calc.Set(0);
calc.Add(10);
calc.Multiply(2);
calc.Subtract(4);
Console.WriteLine( "Result: {0}", calc.Get() );

在這個例子裡,並不需要注釋,那可能會違反了第4條。為了讓代碼更有可讀性,你可以考慮使用特定的名字(比如經典的文章Ottinger's Rules裡的描述),保證正確的縮排,並且要有代碼風格。對於糟糕的代碼,失敗的遵守這個規則可能導致在apologize看到的注釋。

13.跟你的同事分享這些技巧。
第10條技巧說明我們怎樣從好的注釋裡得到好處,這些技巧對於所有開發人員都是有益的,特別在團隊裡一起工作的。因此,為了能編寫容易明白和維護代碼跟你的同事分享這些注釋技巧吧。

14. The code should explain how.
The comments should explain why. (回複在看到的,我覺得還不錯。)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.