實作註解(implementation comment)是出現在方法內部、幫助讀者理解實作如何運作的註解。

多數方法短到不需要實作註解:給程式碼與介面註解,讀者就能搞懂。

實作註解的主要目的#

目的:幫助讀者理解程式碼在做什麼(what),而不是它怎麼做(how)。

一旦讀者掌握「在做什麼」,「怎麼做」通常自然就懂。

  • 短方法只做一件事,這件事已寫在介面註解 → 不需要實作註解
  • 長方法則由幾段做不同事的程式碼組成 → 在每段前加一個高層次說明

範例:階段標題#

// Phase 1: Scan active RPCs to see if any have completed.

範例:迴圈說明#

// Each iteration of the following loop extracts one request from
// the request message, increments the corresponding object, and
// appends a response to the response message.

抽象、直覺,不寫如何抽取請求、如何遞增物件

迴圈註解只在較長 / 較複雜的迴圈才需要——很多迴圈短到行為已顯而易見。

寫「為什麼」的時機#

除了 what,實作註解也常用來解釋為什麼

  • 程式碼有微妙之處、單看不顯而易見 → 寫下來
  • 例如:bug 修正引入的程式碼,目的不明顯 → 加註解說明為何需要

連結到 bug 系統#

若 bug report 已寫得詳盡,註解可指向追蹤系統:

// Fixes RAM-436, related to device driver crashes in Linux 2.4.x.

不必把細節抄到註解裡——這是「避免重複」的範例(第 16 章)。

區域變數的註解#

長方法中,少數重要的區域變數值得加註解。

多數區域變數若命名得好就不需要註解。

判斷準則:

  • 用途與使用範圍都在幾行以內 → 讀者自己看就懂
  • 變數跨越大範圍程式碼 → 加註解描述其代表什麼

文件區域變數時,仍然遵守「寫名詞,不寫動詞」(13.3 節):聚焦變數代表什麼,而非如何被操作。