亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

作為一個(gè)程序員,大部分時(shí)候,如果不是一個(gè)人承包整個(gè)項(xiàng)目,那么有1/3的時(shí)間在寫代碼,1/3的時(shí)間在看別人寫的代碼,剩下的1/3的時(shí)間在摸魚。

那么如何提高摸魚的時(shí)間?看別人寫代碼十分頭疼,分分鐘想罵人,自己卻又寫得龍飛鳳舞,接下來,來看看如何進(jìn)行代碼重構(gòu),來提升一下自己的大神氣質(zhì)。

  • 提煉函數(shù)

程序猿大部分時(shí)間都在與函數(shù)打交道,我們都希望看到前前前同事寫的函數(shù)代碼具有這樣特點(diǎn):

  1. 良好的命名:比如用戶登錄,寫成ada(){}如果不寫注釋,還需要去看代碼到底封裝了神馬東西,是不是想罵gou?寫成userLogin(){}是不是一目了然?連注釋都不用寫了,還可以練習(xí)英語。
  2. 函數(shù)長度適中,功能獨(dú)立:如果一個(gè)函數(shù)過長,不得不加上若干的注釋說明,才能夠讓這個(gè)函數(shù)顯得易讀一些,都這樣了還想邏輯清晰明了嗎?我們應(yīng)該避免出現(xiàn)超大函數(shù),如果代碼中有一段代碼可以獨(dú)立出來,那么最好把這個(gè)代碼放進(jìn)另外一個(gè)獨(dú)立的函數(shù)中,這樣做的優(yōu)點(diǎn):

1)有助于代碼復(fù)用

2)獨(dú)立出來的函數(shù)更容易被覆寫,一個(gè)項(xiàng)目開發(fā)完了,可能會重復(fù)迭代,次數(shù)多了,自己都看不懂自己寫的代碼。

 

  • 合并重復(fù)的條件片段

如果處理鏈接上的頁數(shù)跳轉(zhuǎn),當(dāng)頁數(shù)大于或者小于總頁數(shù)的時(shí)候去首頁,其他正常跳轉(zhuǎn):

if(currPage <=0 || currPage >totalPages){
			currPage = 0;
   		 jump(currPage);// 跳轉(zhuǎn)
		}else {
			  jump(currPage);// 跳轉(zhuǎn)
}

可以把公共的部分獨(dú)立出來:

if(currPage <=0 || currPage >totalPages){
			currPage = 0;
		}
 jump(currPage);// 跳轉(zhuǎn)

  • 把條件分支語句提煉成函數(shù)

  • 合理使用循環(huán)

  • 提前讓函數(shù)退出代替嵌套條件分支

如果代碼不滿足當(dāng)前設(shè)定的條件,那么對下面的代碼不再感興趣,那應(yīng)該在不感興趣的時(shí)候就提供出口,而不需要再繼續(xù)執(zhí)行下面大量的、對預(yù)期結(jié)果無用的代碼。


  • 傳遞對象參數(shù)代替過長的參數(shù)列表

有時(shí)候一個(gè)函數(shù)可以接收多個(gè)參數(shù),而參數(shù)的數(shù)量越多,函數(shù)越難理解和使用,這時(shí)候可以把參數(shù)放入一個(gè)對象內(nèi),然后把參數(shù)傳入對象中使用。這樣就不必關(guān)心參數(shù)的數(shù)量和順序了,只要保證key不變就可以了。


  • 盡量減少參數(shù)數(shù)量

我們需要搞清楚設(shè)置為參數(shù)的變量的具體意義,當(dāng)一個(gè)函數(shù)不需要參數(shù)就能夠使用的時(shí)候,是深受開發(fā)者喜愛的。


  • 少用三目運(yùn)算符

如果條件太多,目運(yùn)算符就會變得沉重,這樣修改起來也是很吃力的。


  • 合理使用鏈?zhǔn)秸{(diào)用

  • 適當(dāng)?shù)貙懽⑨?/li>

要寫有什么用,而不是復(fù)述代碼

如下,這樣的注釋是不是還不如不寫:

/*
* 定義了一個(gè)變量,當(dāng)show等于1的時(shí)候,fresultData等于show的時(shí)候,值為pagesList_1,否則為:pagesList_2
*/
let resultData = show==1?:pagesList_1:pagesList_2 ;

對比:

let resultData = show==1?:pagesList_1:pagesList_2 ;// 1: A類訂單結(jié)果,其他值:B類訂單結(jié)果

  • 用return退出多重循環(huán)

比如使用雙重循環(huán),內(nèi)部循環(huán)達(dá)到某個(gè)臨界值的時(shí)候跳出循環(huán),這時(shí)候使用return比使用break可讀性更高。

分享到:
標(biāo)簽:重構(gòu) 代碼
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定