團(tuán)隊(duì)合作和個(gè)人開發(fā)完全不一樣挺尿,要想問題少,必須強(qiáng)行規(guī)定一些東西炊邦,成為一種習(xí)慣编矾,起初會(huì)很痛苦,但是這樣磨合一段時(shí)間后會(huì)發(fā)現(xiàn)效果非常的棒馁害,下面的一些規(guī)范是老大經(jīng)常和我們說的洽沟,我總結(jié)一下分享給大家!之后會(huì)不定時(shí)更新N舷浮裆操!
方法命名
1怒详、get set開頭的方法只能出現(xiàn)在dto 、do踪区、po等對(duì)象實(shí)體中昆烁,用于屬性值的設(shè)置和獲取,其他類中禁止使用缎岗,主要是為了避免讀代碼的人混淆
2静尼、從數(shù)據(jù)庫(kù)或者遠(yuǎn)程獲取數(shù)據(jù)時(shí),方法名稱應(yīng)該使用query传泊、fetch開頭
3鼠渺、創(chuàng)建數(shù)據(jù)對(duì)象或者對(duì)象轉(zhuǎn)換賦值操作,封裝到一個(gè)方法里面眷细,名字以build拦盹、generate開頭,填充數(shù)據(jù)以fill開頭,轉(zhuǎn)換數(shù)據(jù)使用convert開頭
4溪椎、方法名稱必須動(dòng)詞在前普舆,名詞在后
5、入?yún)⒉荒苁莔ap校读,因?yàn)閯e人不知道傳什么沼侣,出參不能是map,因?yàn)閯e人不知道返回的是啥歉秫。
日志處理
1蛾洛、日志打印統(tǒng)一使用slf4j,禁止使用log4j的方法雁芙,這樣主要是更換日志框架的時(shí)候更為方便
異常處理
1雅潭、所有異常不能吃掉,一直向上拋出却特,在最頂層捕獲并打印
2、如果返回值是BaseResult或者BasicResult類型筛圆,方法則不用拋出異常裂明,但異常信息一定要包含在返回對(duì)象之內(nèi),不能丟掉太援;否則必須拋出
3闽晦、為方法進(jìn)行aop攔截,使用log打印入?yún)⒑统鰠⑻岵恚梢詾榻鉀Q和定位問題節(jié)省大部分時(shí)間
參數(shù)列表
1仙蛉、參數(shù)如果是必傳參數(shù),使用基本類型替代碱蒙,不使用引用類型荠瘪,類中的變量也是如此夯巷,數(shù)據(jù)庫(kù)對(duì)象DO、POJO除外
注釋
1哀墓、如果是調(diào)用其他系統(tǒng)接口趁餐,接口的完整返回值樣例需要寫在調(diào)用方法的地方。能達(dá)到的目標(biāo)是讓讀代碼的人在不用看文檔的情況就能非常清晰的了解接口的返回值狀態(tài)
2篮绰、普通接口后雷、屬性注釋要全面,讓調(diào)用者可以不去問你就知道該怎么使用該接口吠各,而不是每個(gè)人都要問一遍臀突,無(wú)形之中增加溝通成本
代碼編寫
1、dao層只負(fù)責(zé)單純的CRUD贾漏,不摻雜處理任何業(yè)務(wù)候学,sql語(yǔ)句盡量設(shè)計(jì)成通用查詢形式,非特殊情況盡量不針對(duì)某一個(gè)業(yè)務(wù)功能寫針對(duì)性的sql磕瓷。
2盒齿、在dap層的上面封裝一層manager層,負(fù)責(zé)封裝一個(gè)或一組業(yè)務(wù)而存在困食,讓調(diào)用者不用關(guān)心具體實(shí)現(xiàn)就可以放心使用边翁,所以這一層的接口要精心設(shè)計(jì)哈
3、盡量讓主流程代碼清晰硕盹,像參數(shù)校驗(yàn)符匾、大段的數(shù)據(jù)填充、轉(zhuǎn)換瘩例,這些都應(yīng)該放到獨(dú)立的方法和類中
4啊胶、如果一個(gè)相同意義的接口在項(xiàng)目中出現(xiàn)了兩次,但是是不同的人寫的垛贤,那么這兩個(gè)人就要坐下來焰坪,決定干掉其中一個(gè)接口!
5聘惦、對(duì)于廢棄或修改接口某饰,將使用@Deprecated 關(guān)鍵字, 并通知上游修改替換善绎, 待全部替換完畢后黔漂,后續(xù)此接口將不再維護(hù),或是進(jìn)行刪除禀酱。
6炬守、能夠窮舉出來的字段盡量設(shè)計(jì)成枚舉,且枚舉的key不能為“”
日常開發(fā)分支管理
1剂跟、每次開發(fā)新功能或者修復(fù)bug都要新拉分支進(jìn)行開發(fā)减途,格式為開發(fā)新功能使用dev_date_xxxx,修復(fù)bug使用bugfix_date_xxxx
2酣藻、每次開發(fā)完畢,測(cè)試通過后提交合并請(qǐng)求,由專人負(fù)責(zé)合并到主干观蜗,必須由專人負(fù)責(zé)合并臊恋,這個(gè)很重要。
3墓捻、每次提交的日志抖仅,前綴必須是你當(dāng)前在干的這件事的簡(jiǎn)稱,比如(性能優(yōu)化:xxxxxx)砖第,過程中所有的日志提交都要使用這個(gè)前綴
4撤卢、每天早晨都需要把release的代碼向下合并到自己的分支,每天至少一次梧兼,上線合并release前再次向下合并一次放吩,確保沖突率降到最低