在程序員的招聘信息中,我們通??梢钥吹竭@樣一個要求,即具有良好的編碼規(guī)范。事實確實如此,在程序開發(fā)人員團體作戰(zhàn)的趨勢下,團隊內(nèi)的成員恪守代碼的編寫規(guī)范,對于共享代碼、排錯等作業(yè)都具有非?,F(xiàn)實的意義。這在Java語言中當然也不例外。筆者借這次機會,就跟大家分享一下Java源代碼的折行規(guī)則。這對提高代碼的閱讀性有著至關重要的作用。
一、代碼的最大長度。
雖然在Java的編譯器中對于代碼的最大長度沒有強制性的規(guī)定。但是如果代碼的長度太長,超過了編譯器的最當行寬,顯然閱讀起來比較麻煩。通常情況下Java源代碼的行長度不應該大于80個字符。如果超過這個長度的話,在一些開發(fā)工具和編輯器上就無法很好的顯示。如需要通過滾動條來顯示后面部分的代碼。當其他項目成員閱讀這超長的代碼時,就會看得眼花繚亂。所以程序開發(fā)人員在開發(fā)應用程序的時候,要盡量避免書寫長的代碼。這是影響到美觀的問題。如果代碼的每行長度確實需要超過80個字符的話(最好將每行代碼的長度控制在70個字符左右),那么就需要對代碼進行分行。
二、在恰當?shù)牡胤綄Υa進行分行。
筆者建議將Java源代碼每行的長度控制在70個字符、最大不超過80個字符。當超過這個字符長度的時候,開發(fā)人員就需要考慮在恰當?shù)牡胤綄λ麄冞M行分行處理。不過這個分行也不是說開發(fā)人員想在哪里進行分行就在哪里進行分行。這個分行是有一定技巧的。雖然這些技巧大部分并不是硬性的規(guī)定,但是都是一些專家們的經(jīng)驗總結(jié),可以提高代碼的閱讀性。
技巧一:高層折行優(yōu)于低層折行。
這個技巧是說,在考慮對代碼進行折行處理的時候,需要注意代碼的層次性。如某段代碼涉及到混合四則運算,而四則運算又有明顯的運算順序,此時對代碼進行折行時就最好能夠在四則運算的關鍵順序上進行折行處理。如現(xiàn)在有如下的一段代碼:
Mynum=mynum1*(mynum1+mynue2+mynum3-mynum4)+8*mynum5
如果要對這段代碼進行折行的話,該在哪個地方加入一個折行符號呢?如果是筆者處理的話,筆者會按如下的格式對代碼進行折行處理。
Mynum=mynum1*(mynum1+mynue2+mynum3-mynum4)
+8*mynum5
這主要是根據(jù)四則運算的運算層次來進行折行的。顯然,*符號的優(yōu)先級要比+符號要高。所以在+號前面對其進行折行處理,那么就可以一目了然的反應出代碼的運算層次??梢源蠓鹊奶岣叽a的閱讀性。所以代碼折行的第一個技巧就是高層折行優(yōu)于低層折行。如此的話,可以使得應用程序的結(jié)構(gòu)代碼更加的清晰,更容易被團隊成員所理解。
技巧二:為變量尋找一個合適的位置。
在編寫應用程序時,盡量將變量聲明放置在一個代碼塊的開始處,也就是說{}花括號的開始位置。雖然說可以在需要使用變量的時候再對其進行聲明。但是筆者不同義如此操作。因為如果在的呢感到使用變量的時候再來聲明變量時,會降低代碼的可讀性。同理,也需要避免低層聲明與高層聲明重復,這樣會引起代碼混亂并可能引發(fā)程序功能性錯誤。而且這種錯誤在后續(xù)的排錯中很難被發(fā)現(xiàn)。為此要在應用程序開發(fā)的時候就要盡量避免這種錯誤。
在聲明變量的時候,有時候可能代碼很簡單,生命變量的行總共加起來也不會超過十個字符。此時能否把多個變量的聲明寫在同一行呢?從就技術(shù)上來說,這是可行的。也就是說,Java編譯器允許將多個變量定義在同一行上。但是從閱讀性上來說,這并不是很好的做法。筆者的建議是,即使變量定義再簡單,或者變量比較多,也最好分行進行變量的聲明。也就是說,一行聲明一個變量。這可以提高代碼的可閱讀性。而且有時候往往需要對變量加一個注釋說明變量的用途,如果以行定義一個變量,添加行注釋也相對簡單許多。
技巧三:在運算符前面進行折行處理。
其實在如上的折行技巧中,還隱藏著一個規(guī)則,即在運算符之前進行折行。如上例所示,筆者就是在+號前面進行折行,而不是在+號后面進行折行處理。這主要也是考慮到代碼的可讀性。如上面這個例子中,如果在+號后面進行折行處理的話,則下一行就會給人一種憑空多出來的感覺,顯得代碼很不連貫。跟這個規(guī)則類似,如果在折行處理的時候遇到逗號時,那么最好能夠在逗號后面進行折行。如在一個方法中,需要傳入5個參數(shù)。此時如果代碼行比較長,那么就需要在幾個參數(shù)之間進行折行處理。此時最理想的折行位置,就是在某個參數(shù)的逗號后面。注意,使在逗號后面進行折行,而不是在逗號前面。因為一個參數(shù)一個逗號是匹對的。而如果一個逗號加一個參數(shù),則讓人看起來很不舒服。
技巧四:折行代碼的對齊方式
當不得已對代碼進行折行處理時,下一行的代碼應該與其同等級的代碼行左對齊。如上例所示,在+號前面將某一段四則運算公式進行折行處理的時候,其+號符號已經(jīng)采取縮進處理。其縮進后的效果就是要與其同等級的代碼行左對齊。如此的話,明眼人一看就知道這段代碼采取過折行處理;而且跟上一行代碼的層次關系。當一段代碼被分割成三行甚至跟更多行數(shù)的時候,這個規(guī)則會非常的有用。如果能夠嚴格遵守這個規(guī)則,即使將代碼分割成多行,看起來也不會覺得那么混亂。反而給人一種比較有層次的感覺。
另外在采取縮進處理的時