1.聲明變量保證就近原則并簡(jiǎn)單明了
2.代碼中要避免出現(xiàn)(==數(shù)字)這種用數(shù)字代替含義的代碼坚洽,如果出現(xiàn)>2次就要考慮寫(xiě)個(gè)枚舉辑舷,如果非要==數(shù)字宇智,請(qǐng)備注好
3.不要多層嵌套判斷,不斷向上層返回boolean 想不想吐H鹂稹F啾恰!
eg:
boolean isNullMaskInfo(MaskInfo maskInfo) {
if (maskInfo.getMaskId == null) {return true;}
}
boolean isRightParam(PunishRequest request) {
if (request.getPunishMethod >0) {return true;}
}
boolean isValidPunish(MaskInfo maskInfo, PunishRequest request) {
if (isNullMaskInfo(maskInfo) && isRightParam(request)) {return true;}
else return false;
}
public static void main(String[] args) {
if (isValidPunish(maskInfo, request)) {
XXX
} else {
XXX
}
4.當(dāng)方法參數(shù)個(gè)數(shù)>4的時(shí)候聚假,如果不能封裝參數(shù)块蚌,那就換思路吧
5.一個(gè)方法爭(zhēng)取只做一件事,這樣方法一定不會(huì)很長(zhǎng)膘格。
6.方法嵌套方法峭范,如果有對(duì)數(shù)據(jù)庫(kù)的操作,爭(zhēng)取美中類(lèi)型只做一次瘪贱。(eg:可以在最外層select纱控,將結(jié)果封裝做變量辆毡,經(jīng)過(guò)一系列操作在最外層update)
7.try{}catch(){} 太丑了,目前必用的有:
解析JSONObject:防止獲取的key不存在
獲取數(shù)組長(zhǎng)度時(shí):防止數(shù)組==null甜害,當(dāng)然if判斷也可以
8.方法返回值避免null,""等
9.重復(fù)代碼不要寫(xiě)>2遍舶掖。
eg:當(dāng)初的申訴,發(fā)Push完全可以復(fù)用代碼
10.日志級(jí)別尔店,debug眨攘,info,warn嚣州,error
11.代碼整體要看著清晰期犬,一個(gè)方法內(nèi),不同邏輯用空行斷開(kāi)
12.!("").equals(str) !"".equals(str) !str.equals("")雖然Java底層都有優(yōu)化避诽,但第一種寫(xiě)法更漂亮些
13.命名:總之多想想,自己讀起來(lái)都不確定/感覺(jué)土的不要不要的/單詞第二天看就忘記什么意思的/非一針見(jiàn)血的名字 那就在考慮一下吧
14.方法名和返回值要相對(duì)應(yīng)啊
eg: 方法名:isValidPunish()
正確的返回形式:可以處罰返回true 而我恰恰相反璃谨。沙庐。。佳吞。拱雏。
15整個(gè)項(xiàng)目中,保持每個(gè)概念用一個(gè)名字
eg:查詢(xún)相關(guān)的用fetch 就不要用get/search了
16.對(duì)于經(jīng)常給賦值的對(duì)象底扳,考慮通過(guò)構(gòu)造方法賦值
17.bean最起碼要有toString(), 空構(gòu)造函數(shù)(賦初始值)
1.Python中解決不知?jiǎng)e中文問(wèn)題:
import sys
reload(sys)
sys.setdefaultencoding('utf-8')