編碼規(guī)范

看了Java開(kāi)發(fā)手冊(cè)(嵩山版).pdf,摘錄一些......
【強(qiáng)制】抽象類命名使用Abstract或Base開(kāi)頭猴凹;異常類命名使用Exception結(jié)尾;測(cè)試類命名以它要測(cè)試的類的名稱開(kāi)始,以Test結(jié)尾衔瓮。
【強(qiáng)制】包名統(tǒng)一使用小寫,點(diǎn)分隔符之間有且僅有一個(gè)自然語(yǔ)義的英語(yǔ)單詞抖甘。包名統(tǒng)一使用單數(shù)形式热鞍,但是類名如果有復(fù)數(shù)含義,類名可以使用復(fù)數(shù)形式衔彻。
【推薦】在常量與變量的命名時(shí)薇宠,表示類型的名詞放在詞尾,以提升辨識(shí)度艰额。
正例:startTime/workQueue/nameList/TERMINATED_THREAD_COUNT
反例:startedAt/QueueOfWork/listName/COUNT_TERMINATED_THREAD
【強(qiáng)制】對(duì)應(yīng)Service和DAO類澄港,基于SOA的理念,暴露出來(lái)的服務(wù)一定是接口柄沮,內(nèi)部的實(shí)現(xiàn)類用Impl的后綴與接口區(qū)別回梧。
正例:CacheServiceImpl實(shí)現(xiàn)CacheService接口
【推薦】如果是形容能力的接口名稱,取對(duì)應(yīng)的形容詞為接口名(通常是-able的形容詞)
正例:AbstractTranslator實(shí)現(xiàn)Translatable接口祖搓。
【強(qiáng)制】不允許任何魔法值(即未經(jīng)預(yù)先定義的常量)直接出現(xiàn)在代碼中狱意。
反例:
//本例中,開(kāi)發(fā)者A定義了緩存的key拯欧,然后開(kāi)發(fā)者B使用緩存時(shí)少了下劃線详囤,即key是“Id#taobao”+tradeId,導(dǎo)致出現(xiàn)故障
String key = “Id#taobao_”+tradeId;
cache.put(key,value);
【強(qiáng)制】在long或者Long賦值時(shí)镐作,數(shù)值后使用大寫字母L藏姐,不能是小寫字母l,小寫容易跟數(shù)字混淆该贾,造成誤解包各。
【推薦】不要使用一個(gè)常量類維護(hù)所有常量,要按常量功能進(jìn)行歸類靶庙,分開(kāi)維護(hù)问畅。
說(shuō)明:大而全的常量類,雜亂無(wú)章六荒,使用查找功能才能定位到修改的常量护姆,不利于理解,也不利于維護(hù)掏击。
正例:緩存相關(guān)常量放在類CacheConsts下卵皂;系統(tǒng)配置相關(guān)常量放在類SystemConfigConsts下。
【推薦】如果變量值僅在一個(gè)固定范圍內(nèi)變化用enum類型來(lái)定義
【強(qiáng)制】注釋的雙斜線與注釋內(nèi)容之間有且僅有一個(gè)空格
【強(qiáng)制】避免通過(guò)一個(gè)類的對(duì)象引用訪問(wèn)此類的靜態(tài)變量或靜態(tài)方法砚亭,無(wú)謂增加編譯器解析成本灯变,直接用類名來(lái)訪問(wèn)即可殴玛。
【強(qiáng)制】外部正在調(diào)用或者二方庫(kù)依賴的接口,不允許修改方法簽名添祸,避免對(duì)接口調(diào)用方產(chǎn)生影響滚粟。接口過(guò)時(shí)必須加@Deprecated注解,并清晰地說(shuō)明采用的新接口或者新服務(wù)是什么刃泌。
【強(qiáng)制】不能使用過(guò)時(shí)的類或者方法凡壤。
說(shuō)明:java.net.URLDecoder中的方法decode(String encodeStr)這個(gè)方法已經(jīng)過(guò)時(shí),應(yīng)該使用雙參數(shù)decode(String source耙替,String encode)亚侠。接口提供方既然明確是過(guò)時(shí)接口,那么有義務(wù)同時(shí)提供新的接口俗扇;作為調(diào)用方來(lái)說(shuō)硝烂,有義務(wù)去考證過(guò)時(shí)方法的新實(shí)現(xiàn)是什么。
【推薦】循環(huán)體內(nèi)铜幽,字符串的連接方式滞谢,使用StringBuilder的append方法進(jìn)行擴(kuò)展。
【推薦】類成員與方法訪問(wèn)控制從嚴(yán):
1)如果不允許外部直接通過(guò)new來(lái)創(chuàng)建對(duì)象啥酱,那么構(gòu)造方法必須是private
2)工具類不允許有public或default構(gòu)造方法
3)類非static成員變量并且與子類共享爹凹,必須是protected
4)類非static成員變量并且僅在本來(lái)使用,必須是private镶殷。
5)類static成員變量如果僅在本類使用禾酱,必須是private
6)若是static成員變量,考慮是否為final
7)類成員方法只供類內(nèi)部調(diào)用绘趋,必須是private
8)類成員方法只對(duì)繼承類公開(kāi)颤陶,那么限制為protected
說(shuō)明:任何類、方法陷遮、參數(shù)滓走、變量,嚴(yán)控訪問(wèn)范圍帽馋。過(guò)于寬泛的訪問(wèn)范圍搅方,不利于模塊解耦。思考:如果是一個(gè)private的方法绽族,想刪除就刪除姨涡,可是一個(gè)public的service成員方法或成員變量,刪除一下吧慢,不得手心冒點(diǎn)汗嗎涛漂?變量像自己的小孩,盡量在自己的視線內(nèi),變量作用域太大匈仗,無(wú)限制的到處跑瓢剿,那么你會(huì)擔(dān)心的。
悠轩。间狂。。哗蜈。持續(xù)更新

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末前标,一起剝皮案震驚了整個(gè)濱河市坠韩,隨后出現(xiàn)的幾起案子距潘,更是在濱河造成了極大的恐慌,老刑警劉巖只搁,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件音比,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡氢惋,警方通過(guò)查閱死者的電腦和手機(jī)洞翩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)焰望,“玉大人骚亿,你說(shuō)我怎么就攤上這事⌒芾担” “怎么了来屠?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)震鹉。 經(jīng)常有香客問(wèn)我俱笛,道長(zhǎng),這世上最難降的妖魔是什么传趾? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任迎膜,我火速辦了婚禮,結(jié)果婚禮上浆兰,老公的妹妹穿的比我還像新娘磕仅。我一直安慰自己,他們只是感情好簸呈,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布榕订。 她就那樣靜靜地躺著,像睡著了一般蝶棋。 火紅的嫁衣襯著肌膚如雪卸亮。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,443評(píng)論 1 302
  • 那天玩裙,我揣著相機(jī)與錄音兼贸,去河邊找鬼段直。 笑死,一個(gè)胖子當(dāng)著我的面吹牛溶诞,可吹牛的內(nèi)容都是我干的鸯檬。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼螺垢,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼喧务!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起枉圃,我...
    開(kāi)封第一講書(shū)人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤功茴,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后孽亲,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體坎穿,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年返劲,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了玲昧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡篮绿,死狀恐怖孵延,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情亲配,我是刑警寧澤尘应,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站弃榨,受9級(jí)特大地震影響菩收,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鲸睛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一娜饵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧官辈,春花似錦箱舞、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至肺魁,卻和暖如春电湘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工寂呛, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留怎诫,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓贷痪,卻偏偏與公主長(zhǎng)得像幻妓,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子劫拢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354