今天突發(fā)奇想浸策,對編碼習(xí)慣和編程風(fēng)格很感興趣冯键,于是乎,找了一下關(guān)于編程風(fēng)格(Java篇)的資料庸汗,希望對愛好編碼或者開始學(xué)習(xí)編碼的同學(xué)有幫助惫确!
好處不多說了,但是有幾個原則如下:
1.保持原有風(fēng)格
2.堅持最小驚奇原則
3.第一次就做對
4.記錄所有非規(guī)范行為
格式規(guī)范:
1.縮進(jìn)嵌套的代碼:在每個代碼塊和嵌套中加入縮進(jìn)蚯舱,縮進(jìn)代碼改化,加強(qiáng)可讀性。這些地方包括【類定義枉昏,內(nèi)部類定義陈肛,方法定義,靜態(tài)塊兄裂,for循環(huán)語句燥爷,if-else語句,try懦窘、catch和finally塊,匿名內(nèi)部類稚配,while語句畅涂,do-while語句】
2.斷開很長的句子:第一,如果包含了逗號道川,那么在每一個逗號后面都另起一行午衰,把逗號后面的每一個表達(dá)式都和逗號前面的表達(dá)式的第一個字母對齊。第二冒萄,應(yīng)該在優(yōu)先級最低的運算符之前斷行臊岸。
3.使用空白:關(guān)鍵字和左括號之間,右括號和緊隨其后的關(guān)鍵字尊流,除了”.”之外的運算符與其前后的表達(dá)式之間用空格隔開帅戒。每個邏輯上獨立的方法和代碼段之間,定義類或者接口的成員之間崖技,每個類和接口之間應(yīng)該加入空白行逻住。
4.不要直接使用Tab控制符:不同環(huán)境對Tab控制符的解釋也是不同的钟哥。
命名約定:
1.名稱應(yīng)該具有實際意義
2.使用人們熟悉的名稱
3.謹(jǐn)慎使用過長的名字,可以使用簡明通用的縮寫
4.盡量保留元音字母
5.縮寫詞的第一個字母大寫
6.不要使用大小寫來區(qū)分的名字
包命名:
1.用你所在組織的域名的倒序小寫形式作為包的根限定詞
2.使用單獨的小寫詞作為每個包的根名
3.僅當(dāng)新舊版本二進(jìn)制兼容的時候瞎访,其包可以使用相同的名字腻贰,否則,請使用新名字
類型命名:
1.類和接口名中的每個單詞的第一個字母大寫
類命名:
1.用名詞命名類
2.具有成組相關(guān)屬性扒秸,靜態(tài)服務(wù)或者常量的類名字使用復(fù)數(shù)形式
接口命名:
1.用名詞或者形容詞命名接口
方法命名:
1.方法名中的第一個單詞小寫播演,其后每個單詞的第一個字母大寫
2.用動詞命名方法
3.遵循JavaBean中命名屬性訪問函數(shù)方法:set,get伴奥,is
變量命名:
1.變量命中的第一個單詞小寫写烤,其后的每個單詞的第一個字母大寫
2.用名詞命名變量
3.集合引用名要用復(fù)數(shù)形式
4.為不重要的臨時變量簡歷并使用一套標(biāo)準(zhǔn)名字
字段命名:
1.使用this字段變量可以區(qū)分開局部變量
參數(shù)命名:
1.構(gòu)造函數(shù)或者”set”方法給字段分配參數(shù)賦值,參數(shù)名應(yīng)該和字段名相同
常量命名:
1.常量的每個單詞均大寫渔伯,單詞之間使用下劃線連接
文檔約定:
1.為使用和維護(hù)你的代碼的人編寫文檔
2.注釋和代碼要同步
3.使用積極的語氣顶霞,省略無用的詞語
注釋類型:
1.用文檔注釋來描述編程接口
2.用標(biāo)準(zhǔn)注釋格式隱藏代碼而不必刪除它們
3.用單行注釋解釋實現(xiàn)細(xì)節(jié)
文檔注釋:
1.在編寫代碼前描述編程接口
2.為公用,受保護(hù)锣吼,包选浑,私有成員建立文檔
3.為每個包編寫總結(jié)和概述
4.為包的每個應(yīng)用程序或組編寫概述
注釋風(fēng)格:
1.對所有文檔注釋使用統(tǒng)一的格式和組織結(jié)構(gòu)
2.關(guān)鍵字,標(biāo)識符和常量應(yīng)放到…標(biāo)簽中
3.將代碼放入
…標(biāo)簽中
4.在標(biāo)識符第一次出現(xiàn)的時候用{@link}標(biāo)簽
5.為Javadoc標(biāo)簽簡歷并使用一套固定的順序
6.使用第三人稱敘述的形式
7.編寫?yīng)毩⒌母攀?/p>
8.省略概述中動作和服務(wù)的主語
9.省略事物概述中的對象和動詞
10.使用this而不是the來指代當(dāng)前類中的實例
11.方法名或者構(gòu)造函數(shù)名不需圓括號玄叠,除非你想突出一個特殊的簽名
注釋內(nèi)容:
1.每個類古徒、接口、字段和方法都編寫概述
2.完整描述每個方法的簽名
3.包含示例
4.為前置读恃、后置隧膘、不變條件編寫文檔
5.為已知的缺陷和不足編寫文檔
6.為同步語法編寫文檔
內(nèi)部注釋:
1.僅添加有助于理解你的代碼的內(nèi)部注釋
2.描寫代碼為什么這樣做,而不是在做什么
3.避免使用行尾注釋
4.用行尾注釋解釋局部變量聲明
5.建立并使用一套關(guān)鍵詞來標(biāo)識尚未解決的問題
6.在嵌套程度高的控制結(jié)構(gòu)中標(biāo)記出嵌套結(jié)束位置
7.如果兩個case標(biāo)記之間沒有break語句寺惫,就在中間加入“fall-through”注釋
8.標(biāo)記空語句
編程約定:
1.將表示基礎(chǔ)數(shù)據(jù)類型的類聲明為final類型
2.通過本地類型和其他具體類型建立具體類型
3.定義小的類和小的方法
4.定義子類疹吃,以便任何使用超類的地方都可以使用子類
5.使所有字段私有
6.使用多態(tài)來替代instanceof
類型安全:
1.以java.lang.Object包裝通用類,提供靜態(tài)類型檢查
2.以類的形式封裝枚舉類型
3.盡量使用泛型
語句和表達(dá)式:
1.用等價的方法替換重復(fù)的西雀、復(fù)雜的表達(dá)式
2.使用塊語句代替控制流結(jié)構(gòu)的表達(dá)式
3.使用括號明確操作順序
4.在switch語句中的最后一個case體使用break語句
5.使用equals萨驶,而不是==來檢測對象的對等關(guān)系
構(gòu)造:
1.構(gòu)造狀態(tài)有效的對象
2.不要從構(gòu)造函數(shù)中調(diào)用非final方法
3.用嵌套的構(gòu)造函數(shù)消除冗余代碼
異常處理:
1.使用不受檢查、運行時的異常來報告可能在程序邏輯中出錯的嚴(yán)重未查明錯誤
2.使用檢查異常來報告可能發(fā)生艇肴,而在正常的程序運行時極少發(fā)生的錯誤
3.用返回代碼報告可預(yù)知的狀態(tài)改變
4.僅轉(zhuǎn)化異常來添加信息
5.不要私自處置運行時或者錯誤異常
6.用finally語句塊釋放資源
斷言:
1.按照約定編程
2.用無用代碼消除機(jī)制實現(xiàn)斷言
3.用斷言捕捉代碼中的邏輯錯誤
4.用斷言檢測方法的前置條件和后置條件
并發(fā):
1.僅在適當(dāng)?shù)牡胤绞褂镁€程
同步:
1.避免同步
2.用同步的包裝器腔呜,提供同步接口
3.如果方法包含幾個不需要同步的重要操作,那么不要同步整個方法
4.讀寫實例變量的時候避免不必要的同步
5.使用notify而不是notifyAll
6.為同步初始化使用雙重檢查模式
效率:
1.使用懶惰初始化
2.避免創(chuàng)建不必要的對象
3.重新初始化并重新使用對象再悼,盡量不要新建對象
4.把優(yōu)化工作留在日后
打包約定:
1.將經(jīng)常使用核畴、更改、同時發(fā)布或者互相依存的類型冲九,放在同一個包里
2.共同封閉原則
3.重用/發(fā)布等價原則
4.無環(huán)依賴原則
5.將不穩(wěn)定的類和接口隔離在單獨的包中
6.易于修改的包不要依賴于難以修改的包
7.最大化抽象最大化穩(wěn)定性
8.將高層設(shè)計和架構(gòu)作為穩(wěn)定的抽象谤草,組織為穩(wěn)定的包
好了同學(xué)們,我能介紹的也都全部介紹完給你們了,以上的部分就是我想說的內(nèi)容咖刃,如果你也想在IT行業(yè)拿高薪泳炉,可以參加我們的JAVA全棧晉階訓(xùn)練營課程,選擇最適合自己的課程學(xué)習(xí)嚎杨,技術(shù)大牛親授花鹅,7個月后,進(jìn)入名企拿高薪枫浙。我們的課程內(nèi)容有:反射原理刨肃、枚舉原理與應(yīng)用、注解原理箩帚、常用設(shè)計模式真友、正規(guī)表達(dá)式高級應(yīng)用、JAVA操作Office原理詳解紧帕、JAVA圖像處理技術(shù)盔然,等多個知識點的詳解和實戰(zhàn)。如果你想拿高薪的是嗜,想學(xué)習(xí)的愈案,想就業(yè)前景好的,想跟別人競爭能取得優(yōu)勢的鹅搪,想進(jìn)阿里面試但擔(dān)心面試不過的站绪,你都可以來,群:240448376注:加群要求
1丽柿、具有1-3工作經(jīng)驗的恢准,面對目前流行的技術(shù)不知從何下手,需要突破技術(shù)瓶頸的可以加甫题。
2馁筐、在公司待久了,過得很安逸坠非,但跳槽時面試碰壁敏沉。需要在短時間內(nèi)進(jìn)修、跳槽拿高薪的可以加麻顶。
3、如果沒有工作經(jīng)驗舱卡,但基礎(chǔ)非常扎實辅肾,對java工作機(jī)制,常用設(shè)計思想轮锥,常用java開發(fā)框架掌握熟練的矫钓,可以加。
4、覺得自己很牛B新娜,一般需求都能搞定赵辕。但是所學(xué)的知識點沒有系統(tǒng)化,很難在技術(shù)領(lǐng)域繼續(xù)突破的可以加概龄。
5.阿里Java高級大牛直播講解知識點还惠,分享知識,多年工作經(jīng)驗的梳理和總結(jié)私杜,帶著大家全面蚕键、科學(xué)地建立自己的技術(shù)體系和技術(shù)認(rèn)知!
6.小號或者小白之類加群一律不給過衰粹,謝謝锣光。
最后,每一位讀到這里的網(wǎng)友铝耻,感謝你們能耐心地看完誊爹。覺得對你有幫助可以給個喜歡!希望在成為一名更優(yōu)秀的Java程序員的道路上瓢捉,我們可以一起學(xué)習(xí)频丘、一起進(jìn)步
?????Q????