2009-05-06 16 views
11

我們有一個開發人員習慣於在我們資源庫的src/java文件夾下的java包中提交非java文件(xsd,dtd等)。無可否認,這些都是該軟件包的相關文件,但我討厭在src文件夾中看到非java文件。程序包結構中的非java文件

這是一種常見的做法,我應該習慣或者我們是否在做這種保持這些文件的奇怪事情?

回答

11

與非把Java(或其他語言)是密切聯繫在一起的代碼在不同的地方比代碼文件的問題是要知道在哪裏可以找到他們。理論上每個人都會知道去哪裏以及要做什麼,從而實現地點標準化。但我在實踐中發現,這並沒有發生。

想象一下,您的應用程序仍然由一個初級中級開發人員組成的團隊維持5年或10年的時間,現在不會與任何現在在您項目中工作的人交談。將源文件緊密鏈接到源代碼包結構中可以使他們的生活更輕鬆。

我是一個很大的支持者,在理性的範圍內消除儘可能多的歧義。

+0

+1:非常好的一點。我喜歡信息在需要的地方:) – 2009-05-06 18:13:03

+0

那就是現場! – MahdeTo 2009-05-06 18:24:33

0

它很常見,你可以在真正流行的框架中找到它。春天各種模式的xsd文件。而且人們通常將hibernate映射文件放置在與模型類相同的包中。

2

有很多jar庫使用相同的做法。 我認爲這是可以接受和舒適的。

0

我認爲這是很常見的,只要文件是必要的。當人們開始提交源代碼不需要的文件(例如設計規範或隨機文本文件)時,會出現問題。

+0

不要忘記Javadoc工具明確支持每個包中的「doc-files」目錄。 – erickson 2009-05-06 18:08:50

+0

是的,我知道那些。這些是我認爲必要的文件。 – 2009-05-06 19:29:52

6

這是非常普遍的,甚至建議,只要它是合理的。一般來說它是合理的,當它是一個靜態資源(DTD + XSLT的專有格式,預製腳本等),但它不是文件的時候東西是有可能通過第三方,如IP /地理位置數據庫轉儲進行更新。

+2

良好的觀察。關鍵詞確實是「靜態的」。 – 2009-05-06 18:00:16

-1

這當然很普遍,但令人難以置信的懶惰和草率。當我看到它時,我的皮膚就會爬行。

使用諸如Maven之類的工具來構建您的產品,可以使您輕鬆並清晰地分開code from resources

Eclipse捆綁包可以類似地分開。

+0

不愚蠢,它有其用途 – 2009-05-07 14:31:45

5

我認爲如果您將'src'視爲不具體指「源代碼」,它會變得更容易。可以把它看成是在編譯時和/或運行您的程序所需的實現資源的

事情是一個產品的編譯或構建活動不應該在這裏。

誠然,最喜歡的事情,異常可申請:)

更新: 就個人而言,我喜歡和子目錄它下面的每個資源類型劃分SRC進一步。其他人可能更喜歡這個部門。

2

在Eclipse中,它對於我們來說擁有一個包含java類的src文件夾和一個包含屬性文件的配置文件夾(它是一個源文件夾),然後它們都會一起進入輸出文件夾,在類路徑中找到,但仍然位於Eclipse內部的獨立文件夾中

+0

我想這也是一個很好的解決方案。我通常最終在特定的視圖中使用過濾器,而不是在那個時候查看我不關心的資源。 – Kapsh 2009-05-06 18:28:41

1

將所有輔助文件保留在源代碼旁邊的優點之一是在這些第三方庫和源代碼之間保持版本一致性。如果您需要返回並調試特定版本,則可以將整套source + config設置爲相同的版本。

這就是說我會把它們放在一個$project/config/目錄,或者其他的,而不是在$project/src/java本身。它們不是真正的源代碼,也不是真正的Java,因此誤導他們在那個目錄中。

然而,當你真正瞭解它時,這是個人風格的問題。沒有「正確」的答案,你應該與這些團隊成員交談,並理解他們爲什麼做出這個決定。使用這個線索作爲支持單方面決定的證據可能不會很好。 ;)