1 提前return
在有些時(shí)候创肥,寫代碼我們經(jīng)常會(huì)寫成這樣的格式值朋,導(dǎo)致代碼層級(jí)過高昨登,代碼可讀性變差。
這時(shí)候我們需要使用提前return的方式來對(duì)代碼進(jìn)行規(guī)范咕幻,盡可能使用較低的代碼縮進(jìn)量來完成糯俗。
通過這種做法得湘,可以在很大程度上提升代碼可讀性,并且在更改某一層邏輯的時(shí)候淘正,不會(huì)影響到其他邏輯鸿吆。
2 從業(yè)務(wù)層規(guī)避冗余代碼
在多重邏輯判斷的時(shí)候,我們會(huì)用到“與”蕉毯、“或”思犁、“非”來進(jìn)行業(yè)務(wù)邏輯的編寫,如果判斷不得當(dāng)棉磨,很容易將代碼寫成下面這種格式:
這是一種極端情況学辱,按照a,b,c,d,e 這幾個(gè)變量可以得到32種不同的結(jié)果环形,非常難以被接受斟赚。這個(gè)時(shí)候就需要區(qū)分當(dāng)前邏輯中的必要和不必要的變量差油。例如,在第一次if判斷中发侵,如果其他幾個(gè)變量都不是主要的妆偏,就只需要對(duì)a變量進(jìn)行真假判斷,就可以得到最終的結(jié)果叔锐。
3 減少代碼循環(huán)的次數(shù)
例如在我們的工作中經(jīng)常會(huì)遇到這樣的場(chǎng)景见秽,學(xué)生表students和分?jǐn)?shù)表score分別以id為主鍵,存儲(chǔ)學(xué)生名稱和分?jǐn)?shù)步责。
在很多人去匹配的時(shí)候蔓肯,都會(huì)使用雙重foreach的方式來完成振乏,即下圖的結(jié)果:
上圖的結(jié)果中慧邮,如果有100名學(xué)生分別對(duì)應(yīng)一個(gè)分?jǐn)?shù)的話,需要循環(huán)10000次來進(jìn)行匹配赋咽,效率很低脓匿。所以宦赠,我們可以通過下圖中的方式來完成:
通過這種方式米母,如果有100名學(xué)生分別對(duì)應(yīng)一個(gè)分?jǐn)?shù)的話毡琉,只需要循環(huán)200次就可以解決了桅滋,大大提升了程序的效率。
所有循環(huán)取值的問題芍碧,都適用于此方法号俐。例如,循環(huán)查詢數(shù)據(jù)庫的時(shí)候踪危,先拼接所有ID猪落,查詢出數(shù)據(jù)庫中的所有值,再進(jìn)行賦值兴革,可以大幅度減輕數(shù)據(jù)庫的壓力蜜唾。