我不是指縮進或目錄結構,而是實際的文件本身。你如何組織你的代碼?
你是否按字母順序排列你的成員和方法?也許是按照其使用順序或複雜邏輯順序(升序還是降序)?你瘋了嗎?
我在想使切換到字母,但某些情況下也只是我發瘋:
var _height
var _properties
var _width
寬度和高度絕對應該組合在一起......但有時發現在一個較大的文件正確的方法可以非常令人沮喪。
你是做什麼的?
我不是指縮進或目錄結構,而是實際的文件本身。你如何組織你的代碼?
你是否按字母順序排列你的成員和方法?也許是按照其使用順序或複雜邏輯順序(升序還是降序)?你瘋了嗎?
我在想使切換到字母,但某些情況下也只是我發瘋:
var _height
var _properties
var _width
寬度和高度絕對應該組合在一起......但有時發現在一個較大的文件正確的方法可以非常令人沮喪。
你是做什麼的?
我傾向於混亂。我當然不會按字母順序排列我的變量。而使用C#,我更少組織,因爲我使用stuff_like_this的一些變量,並與屬性我可能DoItLikeThis。這有時讓我生氣,但最終我喜歡讓IDE功能爲我做的工作。 Visual Studio非常好,只需右鍵單擊一個變量即可定義它,或者在代碼中隨處可見它正在使用的內容非常棒。我不知道你用什麼IDE,但希望它有相似的功能。最後,我不太關心組織,並且真的需要擔心,如果我的設計基本上是合理的(這部分通常需要我幾次嘗試才能正確)。
我會建議不要試圖將任何通用規則應用於您的代碼。相反,在個案的基礎上,以一種合理的方式來組織它。在你給的例子中,純粹按字母順序是沒有意義的。在其他情況下,它會。
方法:先公開,然後私人。相關的方法(例如,getHeight()
,getWidth()
,getArea()
)彼此靠近放置。如果方法之間存在層次關係,則高層次在低層次之前(例如,getArea()
使用getWidth()
,因此放置在它之前)
變量:類似於函數,公共優先,然後是私有。根據上下文分組。
按字母順序?我不喜歡它。閱讀/修改代碼可能是一場噩夢。我不知道一個函數的名字是sqrt()
還是calculateSqrt()
,所以我不喜歡找它。如果功能是根據上下文組織的,那麼找到它們會更容易。
通常根據其性質(常量,字段,構造函數,方法),然後通過它們的可見性(私有,受保護,公共)排序成員。
爲了找到正確的事情我依靠現代IDE的功能,很多(如Visual Studio中+ ReSharper的)
功能邏輯上是有「根」在該文件的底部整理。變量幾乎不重要 - 如果單個「單元」(函數,類等)具有足夠的變量來表示它們的安排意味着什麼,那可能是需要修復的東西。
我組織我的代碼是通過元素的類型,這意味着所有的方法在一個地方(在文件的末尾,即),所有的構造函數在一個(在方法之前)等等。適用於變量,常量,枚舉等。通常我會先放置私有變量,然後放置其他變量,但這不是一個嚴格的規則。另外,通過本質相關的代碼通常會在同一個地方結束,但這只是因爲它是最簡單的。
我不打擾我的代碼按字母順序排列,因爲我在Eclipse大綱視圖中很容易做到這一點。但是,如果編輯不支持這一點,那麼我可能會使用字母順序。那麼,至少對於更大的文件。
這個問題對於Stack Overflow來說太主觀了,但是就在[Programmers.SE](http://programmers.stackexchange.com)的衚衕裏。事實上,一個類似的問題已經被問到:[你的編碼標準的哪些部分對質量代碼有貢獻?](http://programmers.stackexchange.com/questions/2654/what-parts-of-your-coding-standard - 對質量代碼的貢獻) – 2010-09-11 23:04:42
我唯一的字母是我使用的語句。 – Ste 2012-04-27 15:28:46