2008-11-25 18 views
6

當創建一個新的C++頭文件/源文件時,您將什麼信息添加到頂端?例如,你是否添加日期,你的名字,文件的描述等?您是否使用結構化格式來獲取這些信息?您是否將信息添加到每個.hpp/.cpp文件的頂部?

例如

// Foo.cpp - Implementation of the Foo class 
// Date: 2008-25-11 
// Created by: John Smith 

一隊,我知道嵌入CVS提交信息來決定每個文件的腳下,但我不知道我要這樣走多遠......

回答

10

有關誰創建了文件以及何時和誰編輯了以及何時全部處於源代碼管理的信息。如果您的團隊在辦理登機手續時有很好的做法,那麼您也會知道每次更改的原因。沒有必要爲那些東西發表評論。

我認爲它是100%合法的 - 明智的,甚至 - 只要有必要,就放置註釋塊,以解釋類/模塊的用途。當下一個人去改變它時,他們會更好地瞭解整體願景以及這個文件是否適合他們的改變。

一些商店在源文件註釋中放置了版權聲明和其他合法的文件。這讓我覺得很傻 - 如果您的(非OSS)源代碼在未經您的知識或許可的情況下將其轉移到別人的服務器上,那麼版權聲明可能不會阻止他們對此做任何事情。 IANAL,YMMV。

1

我不嵌入的日期,因爲它是多餘的。如果有人想知道文件的創建日期,請不要信任作者,請相信您的源代碼管理系統。它應該是創作日期的確定答案。

我絕對不反對嵌入檢查消息。這些非常有用。

+1

在他們看到10年以上CVS消息的文件後,他們可能會有點難以瀏覽。 :) – Rob 2008-11-25 21:03:52

+0

@Rob我全心全意同意。 – 2008-11-25 21:05:06

+0

@JaredPar:對於日期,如果源是分佈式的而不是VCS文件,那麼就沒有VCS可信 - 並且在文件中嵌入日期是有益的。 – 2008-11-26 04:49:50

2

不要。大部分內容可以在需要時從版本控制系統中檢索出來,因此不需要添加。這會給你提供文件內容的描述,但這是大部分時間內類文檔的一部分(或者至少是特定類型的文檔)。

我不會做任何這些,但是再一次,我不喜歡那個殘酷。

+0

並非所有的程序都是用類編寫的。還有一些仍然有實用程序代碼,聚集在一起的未分類功能等等。至少有一個簡短的文件描述總是很好的。 – 2008-11-25 21:06:05

+0

並非每個人都有可用的版本系統 - 尤其是如果代碼是作爲源代碼分發的,而不是版本文件。 – 2008-11-26 04:50:31

2

我包含文件名,文件目的的簡要說明以及用於CVS或Subversion目的的$ Id $標籤。文件創建者和創建日期可以通過檢查存儲庫找到,因此不需要。

包含文件名是因爲取決於您用來編輯文件的內容,在編輯文件時可能並不完全明顯。該描述可以用來確定一段代碼是否屬於該文件,或者是否應該移動到另一個。當然,$ Id $會爲您提供上次更改時間,以及最後一位編輯。

嵌入簽入消息僅在消息有用時纔有用,並且僅在文件更新一次後纔有用。包含每條消息都會使文件膨脹,直到描述更改的評論比實際代碼更多。最好還是將其留給存儲庫;通常它只是一個簡短的命令行來獲取文件的簽入日誌。

如果您遇到無法保存移動和複製歷史記錄的修訂控制系統,那麼只需引用原始文件及其版本號即可。當然,如果您使用的是本世紀某個時候創建​​的系統,而不是最後一個,那應該不是問題。

2

我們被要求將版權信息放在每個文件的頂部。我認爲日期,作者和文件的名稱是浪費時間。

我們也有我們的源代碼控制系統追加入住時間爲每個文件的底部意見。我最初討厭變更日誌,但隨着時間的推移,我學會了喜歡它。合併更改時確實有幫助。

1

如果您使用的是CVS,請查看它的keyword substitutions。他們將幫助自動嵌入該信息。

個人而言,我堅持這在我所有的源文件的頂部:

// $Id$ 

其他信息註釋我嵌入與Doxygen進行解析,如果他們涉及到一些具體的事情(文件,類,一類型等)。

0

我們用我們的RCS自動郵票上的文件如下:

版權所有,

RCS文件名,

修改日期,最後更改

作者,

RCS修訂號

I認爲這很方便。我真的很喜歡將文件名自動填充到每個文件中,因爲它可以快速搜索文件的解決方案。

0

我一般只添加任何「註釋信息」的時候... 我不認爲我會永遠記得或其不明顯是什麼東西做的 或 當我發佈源代碼,其實我是想別人能夠使用/從中學習。

0

我通常會在該文件中包含代碼的目的說明。一切似乎在其他地方處理:日期,並利用源代碼控制的意見等

2

本來回答在這裏,但由於刪除:134249

我只會把兩件事情:

  • 許可/版權信息
  • 文檔生成工具需要的註釋(即註釋必須在標題中才能正常工作 - 否則應該放入定義文件中)

其他任何東西都是不必要的絨毛,不會被保留下來,最終會變得比什麼都沒有。

當時我曾在一家大型國防公司工作過,而且我們有嚴格的編碼標準。如果你跟着他們去了這封信(而大多數人不這樣做),那麼你的大部分標題將主要由那些毫無意義的絨毛組成。更糟糕的是,同樣的絨毛也需要放在源文件中,這意味着絨毛的兩個副本會過時並且會變得具有誤導性。

0

大家都在說你的源代碼管理將有日期和程序員信息,但這並非總是如此。我曾在一家使用Source Safe的商店工作,直到有人決定將文件移至其他位置爲止。在那個時候,根據SS,它基本上成爲一個新文件,並且沒有以前的歷史記錄存在。

也許正因爲如此,程序員的名字和日期被自動添加到文件頂部的註釋部分。當需要超過10個條目時,我們會刪除所有中間條目,只留下原始日期和作者以及當前信息。

0

爲我的客戶;-)版權聲明

1

這是我normaly把在文件的頂部:

///////////// Copyright © 2008 DesuraNET. All rights reserved. ///////////// 
// 
// Project  : [project name] 
// File  : [file name] 
// Description : 
//  [TODO: Write the purpose of ... ] 
// 
// Created On: 11/12/2008 2:24:07 PM 
// Created By: [name] <mailto:[email]> 
//////////////////////////////////////////////////////////////////////////// 

,我成立了一個可見宏來完成它添加和當我創建一個新文件時填入默認信息

0

我們使用MSVC & VSS,並有一個插件,它將您在簽入時指定的任何註釋添加到正在作爲註釋簽入的文件中。查看CPP文件的頂部非常方便,可以找出進行更改的錯誤跟蹤故障單號碼。

1

我曾經喜歡把版本控制關鍵字放在文件的頭部。但是從那個苦難中恢復過來。 :)由於兩個原因:

  1. 沒有人把任何用途的評論。你總是看着版本控制系統報告的差異。
  2. 它試圖區分大型文件集會產生惡夢,因爲關鍵字會創建文件中唯一區別的差異。
0

我使用Subversion。 這是我喜歡放在靠近頂部的地方。

$Id$ 
$HeadURL$ 

這將替換修訂版,最後一個編輯器,然後替換存儲庫中文件的位置。雖然我總是從工作副本開始工作,但是這可以讓我打印/發送一個文件並稍後查看,以確切知道它來自哪裏。 $HeadURL$特別好,因爲它告訴項目和分支文件在哪裏以及如何到達它(用較大的嵌套子包等)。

就大手動註釋塊的無用性達成一致—儘管建議使用docstrings/Javadocs —並自動附加提交日誌。

這聽起來像你們中的一些人使用可怕的VCS,如果你得到由關鍵字本身產生的差異或合併衝突。 Subversion handles it well.

相關問題