一、項(xiàng)目強(qiáng)制執(zhí)行
1、POM中所有jar包的引用必須是有效的,并且需要保證jar包的版本統(tǒng)一。
2、POM中如果是多模塊項(xiàng)目,必須注釋清楚每個(gè)模塊的具體功能。
3、數(shù)據(jù)庫表的命名不用統(tǒng)一前綴,要按照業(yè)務(wù)功能統(tǒng)一命名。
4、數(shù)據(jù)庫表必須有主鍵且使用ID命名,邏輯外鍵使用關(guān)聯(lián)表名加ID,例如:user_id。
5、數(shù)據(jù)庫表之間統(tǒng)一使用主鍵進(jìn)行關(guān)聯(lián)。
6、 數(shù)據(jù)庫表的編碼格式必須使用:utf8mb4。
7、 數(shù)據(jù)庫表名、字段名必須有注釋,表名和項(xiàng)目中實(shí)體必須一致。
8、數(shù)據(jù)庫中狀態(tài)、類型等都使用枚舉名存儲(chǔ),不允許使用數(shù)字存儲(chǔ)。
9、數(shù)據(jù)庫字段優(yōu)先使用非空約束,業(yè)務(wù)邏輯非空的字段必須設(shè)置非空約束。
10、數(shù)據(jù)庫需要建立唯一索引的字段必須建立。
11、 在項(xiàng)目中,開發(fā)包名必須明確按照業(yè)務(wù)區(qū)分好,禁止出現(xiàn)一個(gè)包下面有各種各樣大量文件,必須按功能進(jìn)行分包 。例如:定時(shí)任務(wù)需要按功能模塊分別放到不同的包下面,現(xiàn)在有項(xiàng)目幾十個(gè)定時(shí)任務(wù)放到一個(gè)包下面。
12、項(xiàng)目中狀態(tài)、類型等都使用枚舉,不允許使用數(shù)字。
13、 項(xiàng)目中必須要使用hibernate validation框架進(jìn)行入?yún)⑿r?yàn),不允許出現(xiàn)因輸入字符過長(zhǎng)導(dǎo)致的數(shù)據(jù)庫字段超長(zhǎng)異常。
14、項(xiàng)目必須通過阿里的規(guī)范掃描后才能提交git。
15、項(xiàng)目中的重復(fù)代碼統(tǒng)一封裝工具類,公共的代碼要提取出來作為統(tǒng)一公共類。
16、項(xiàng)目中已經(jīng)廢棄的業(yè)務(wù)邏輯代碼,要及時(shí)刪除,有效期為1個(gè)月,后期再使用的時(shí)候可以進(jìn)行重構(gòu)開發(fā)。
17、項(xiàng)目中每個(gè)類和方法要寫明代碼注釋,方便后期代碼閱讀和問題處理。
18、 項(xiàng)目中RedisKey的命名要按業(yè)務(wù)來區(qū)分管理,方便維護(hù)。
19、項(xiàng)目中Redis在使用時(shí)要設(shè)置過期時(shí)間,理論上建議不超過24小時(shí),具體的可按實(shí)際的業(yè)務(wù)場(chǎng)景進(jìn)行設(shè)置,如果因業(yè)務(wù)需求不能設(shè)置過期時(shí)間的要注明原因。
20、 項(xiàng)目中對(duì)外服務(wù)必須要有xss攻擊過濾、跨域處理。
21、 項(xiàng)目中代碼嵌套層不允許超過3層。
22、項(xiàng)目中要按照職責(zé)進(jìn)行類、包拆分,一個(gè)service類最多3個(gè)對(duì)外方法,禁止使用如user、common籠統(tǒng)詞匯進(jìn)行命名。
23、IDEA必須安裝阿里規(guī)范、findbugs軟件。
24、代碼審查出的問題要及時(shí)修改,并且要及時(shí)分享,其它的項(xiàng)目要同步進(jìn)行檢查并修復(fù)。
25、所有賬號(hào)信息必須在配置文件中配置,不允許寫在程序中,交易密鑰及密碼等敏感信息需要加密。
二、 項(xiàng)目推薦執(zhí)行
1、 每個(gè)類上面都有對(duì)勾。
2、 針對(duì)項(xiàng)目上線后可能變化較頻繁的信息,建議在數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)字典表,不要配置在配置文件中,避免修改時(shí)需要重啟服務(wù)。
3、 后臺(tái)進(jìn)行導(dǎo)出數(shù)據(jù)查詢的時(shí)候,由于pageHelper分頁查詢數(shù)據(jù)時(shí)會(huì)執(zhí)行count命令,建議不使用pageHelper進(jìn)行分頁查詢,在代碼中查詢一次總量,后續(xù)自行實(shí)現(xiàn)分頁查詢。