精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

90%的程序員都犯過(guò)的代碼錯(cuò)誤

新聞 前端
最近參加了多次的代碼review會(huì),在review的過(guò)程中,發(fā)現(xiàn)有些問(wèn)題幾乎每次都出現(xiàn)。挑了幾個(gè)比較典型的問(wèn)題講解下。

 

最近參加了多次的代碼review會(huì),在review的過(guò)程中,發(fā)現(xiàn)有些問(wèn)題幾乎每次都出現(xiàn)。挑了幾個(gè)比較典型的問(wèn)題講解下。這幾個(gè)問(wèn)題都是初級(jí)問(wèn)題,解決方法都很容易。只要掌握了方法,有意識(shí)避免,能讓短時(shí)間內(nèi)迅速提高代碼質(zhì)量。真所謂投入小,見(jiàn)效快。

變量命名不清晰,一詞多義

為變量命名時(shí)最重要的考慮事項(xiàng)是,該名字要 完全、準(zhǔn)確地描述出該變量所代表的事務(wù) 。容易閱讀,不會(huì)與其他事務(wù)混淆。

例如:

  1. if(staff_id == 0) 
  2.     printf("系統(tǒng)歸檔,不是員工歸檔"); 

上面這段代碼,staff_id是員工號(hào)的意思,用staff_id為0表示是系統(tǒng)歸檔。一詞多義,本來(lái)應(yīng)該把系統(tǒng)和人分開(kāi),但是混用到了一個(gè)變量。如果調(diào)用方出現(xiàn)個(gè)bug忘記把初始化的變量賦值,還會(huì)走到意外的邏輯。

解決方法是變量名稱(chēng)首先要符合變量的實(shí)際意義,沒(méi)有歧義;對(duì)于一個(gè)變量名,不用特定值表示特殊邏輯。

有些代碼會(huì)把變量取不到的值賦予其他的意義,感覺(jué)是省事了,實(shí)際后患無(wú)窮。例如用戶(hù)名不可能為空,就用空值表示這個(gè)用戶(hù)數(shù)據(jù)已經(jīng)被刪除了。而且判定數(shù)據(jù)是否刪除的代碼看著也讓人莫名其妙。

總之,變量命名要保證沒(méi)有「潛規(guī)則」,防止給自己挖坑。

使用魔數(shù)

命名不清晰更嚴(yán)重的是,沒(méi)有命名,直接用魔數(shù)。如果連注釋都沒(méi)有,就只能靠猜。

使用魔數(shù)有兩個(gè)不好的地方:

1、不方便修改。

使用常量替換魔數(shù)是一種將程序「參數(shù)化」的方法,需要修改改動(dòng)一處就可以了,而不必代碼中到處修改。

例如在代碼中默認(rèn)綁定的端口是80,如果不用一個(gè)常量代替,哪天軟件升級(jí)默認(rèn)端口變成443了。要整個(gè)代碼搜索80這個(gè)數(shù)字,既耗時(shí),又容易改錯(cuò)。

2、代碼不方便閱讀。

只有一個(gè)數(shù)字,很難了解到具體的意思。

  1. for(int i = 0; i < 13; ++i) 
  2.     ... 

上面這段代碼,只看13,誰(shuí)能猜出來(lái)是什么意思呢,為什么用13這個(gè)數(shù)值?可能只有寫(xiě)代碼的人和上帝知道,如果天長(zhǎng)日久,寫(xiě)代碼的人忘記了,就只有上帝知道了。

也有同學(xué)會(huì)問(wèn),有的數(shù)字只用到一個(gè)地方,也起個(gè)常量的名字會(huì)不會(huì)太麻煩了?

答案是:不麻煩。給魔數(shù)起個(gè)好名字是應(yīng)該的,這是對(duì)的事,不要因?yàn)槁闊┚筒蛔觥S袝r(shí)為了起個(gè)準(zhǔn)確的名字,甚至要查下詞典。

有一個(gè)常用的判定方式:

一、如果引用魔數(shù)的地方不超過(guò)3個(gè),直接用數(shù)字影響也不大。如果超過(guò)了3個(gè),都是表示同一個(gè)數(shù)值意義,還是乖乖地用有意義的變量名代替。

二、如果魔數(shù)本身就是表示一個(gè)純粹的數(shù)字定義,例如是幾米、幾千克這種,作為參數(shù)傳遞。在函數(shù)的定義明確表示了形參數(shù)所代表的意義。大家看用到的地方和函數(shù)定義,就知道數(shù)字是表示多少個(gè)單位的意思,可以用魔數(shù)。但是如果用數(shù)字表示種類(lèi),例如

  1. const int ieBrowser=1; 
  2. const int chromeBrowser=2; 

表示瀏覽器的種類(lèi),如果直接只是看到1或2,是不明白什么意思的。即使在函數(shù)聲明的地方已經(jīng)說(shuō)過(guò)是瀏覽器種類(lèi)了,也不要用魔數(shù)。

魔數(shù)解決的辦法很簡(jiǎn)單: 用枚舉、常量等方式,代替魔數(shù) 。

if else 或switch等邏輯判斷語(yǔ)句太長(zhǎng)

例如下面的偽代碼代碼,條件分支很多,用很長(zhǎng)的if else語(yǔ)句或者switch語(yǔ)句才能表達(dá)完整的邏輯,要思考下是否能用「表驅(qū)動(dòng)」方式來(lái)優(yōu)化。

  1. const int CN=1; 
  2. const int US=2; 
  3. const int UK=3; 
  4.  
  5. string language; 
  6. if(country==CN) 
  7.     language="中文"
  8. else if(country==US) 
  9.     language="english"
  10. else if(country==UK) 
  11.     language="english"
  12. else 
  13.     language=""

條件分支太多太長(zhǎng)有幾點(diǎn)不好:

1、代碼太長(zhǎng),不易閱讀。

如果超過(guò)了一個(gè)屏幕能表示的長(zhǎng)度,要翻頁(yè)才能看完代碼,會(huì)大大降低看代碼的效率。因?yàn)榇a的信息密度太低了。

2、不易擴(kuò)展,修改代碼。

就像上面的例子,如果又增加了新的條件判斷,那么要增加新的if else語(yǔ)句,由于修改了邏輯,要重新測(cè)試,也要防止改錯(cuò)。

可以用「表驅(qū)動(dòng)」的方式替代太長(zhǎng)的邏輯分支。

把每個(gè)條件要用到的數(shù)據(jù)放到一個(gè)「表」里。用條件分支的判斷條件來(lái)索引到表中的數(shù)據(jù)。

上面的代碼可以修改為

  1. const int CN=1; 
  2. const int US=2; 
  3. const int UK=3; 
  4.  
  5. string languageTable[]={"","中文","English","English"}; 
  6. //先判斷country變量是否在定義的CN、US、UK范圍內(nèi),如果在繼續(xù) 
  7. language = languageTable[country]; 

經(jīng)過(guò)修改,代碼變得很短,一眼就能看出代碼所表示的邏輯。而且以后更新的只有數(shù)據(jù),邏輯部分不用修改。

使用「表驅(qū)動(dòng)」后,邏輯和數(shù)據(jù)分離。使得新增數(shù)據(jù)修改簡(jiǎn)單,而且一目了然。

總結(jié)

上面只是簡(jiǎn)單的說(shuō)明了幾種常見(jiàn)的代碼書(shū)寫(xiě)錯(cuò)誤。稍加注意,就能夠在短時(shí)間內(nèi)迅速提升代碼質(zhì)量。具體的方法可以參考一些代碼規(guī)范,或者重構(gòu)的書(shū)籍,例如「表驅(qū)動(dòng)」會(huì)有更詳盡的介紹。

最本質(zhì)的還是要從意識(shí)上有足夠的認(rèn)識(shí)。 代碼是寫(xiě)給人看的 ,寫(xiě)代碼時(shí)要有同理心,想到以后讓閱讀代碼的人盡量能夠不費(fèi)力讀懂。換位思考,如果你就是review人,或后面接手這個(gè)代碼的人,你會(huì)喜歡這段代碼嗎?

畢竟代碼閱讀的次數(shù)遠(yuǎn)遠(yuǎn)超過(guò)編寫(xiě)的次數(shù)。確保代碼閱讀方便,而不僅是編寫(xiě)方便。

 

責(zé)任編輯:張燕妮 來(lái)源: 架構(gòu)學(xué)而思
相關(guān)推薦

2015-04-17 09:47:57

2015-03-02 15:30:11

2011-06-29 09:27:10

2019-08-22 10:07:33

程序員開(kāi)發(fā)危機(jī)

2018-10-15 09:50:07

程序員高薪淘汰

2021-11-02 09:54:51

Java開(kāi)發(fā)工具

2020-04-20 18:15:46

開(kāi)發(fā)自信技術(shù)

2021-09-28 09:57:50

程序員技能開(kāi)發(fā)

2020-05-17 16:10:36

開(kāi)發(fā)人員軟件開(kāi)發(fā)開(kāi)發(fā)

2016-12-06 10:12:07

程序員開(kāi)會(huì)

2022-10-17 07:40:21

AI項(xiàng)目數(shù)據(jù)

2017-03-13 09:07:05

測(cè)定代碼基因

2017-11-14 11:28:49

程序員索引數(shù)據(jù)

2019-07-03 14:47:43

程序員祼辭就業(yè)

2022-07-20 16:57:18

程序員高薪職業(yè)

2013-08-20 09:33:59

程序員

2019-07-05 11:05:10

Java程序員中間件

2015-06-17 14:24:48

優(yōu)秀程序員整潔代碼

2018-07-20 11:22:03

程序員基礎(chǔ)知識(shí)

2016-12-21 11:35:55

Python程序員庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

香蕉视频在线播放| 久久国产视频一区| 成人爽a毛片| 亚洲第一在线综合网站| 久久久久久国产精品一区| 免费看毛片网站| 久久人人99| 精品久久久久香蕉网| 男人天堂网视频| 中文字幕在线播放| 国产+成+人+亚洲欧洲自线| 国产91精品黑色丝袜高跟鞋| 国产黄色录像视频| 97超碰成人| 欧美在线短视频| 四虎4hu永久免费入口| 三级毛片在线免费看| 久久电影国产免费久久电影| 欧美激情亚洲精品| 2019男人天堂| 国产图片一区| 欧美精品日韩综合在线| 久色视频在线播放| 成人福利网站| 久久男人中文字幕资源站| 国产精品久久国产精品99gif| 三级影片在线看| 国产精品亚洲片在线播放| 欧美成人性福生活免费看| 日日碰狠狠丁香久燥| 怡红院在线播放| 欧美国产精品一区二区| 韩日午夜在线资源一区二区 | 97精品久久久| 久久精品一区二区三区四区五区| 天堂网av成人| 日韩精品资源二区在线| 色一情一区二区三区| 国产在线88av| 亚洲一区二区欧美| 天天干天天操天天干天天操| 国产精品麻豆一区二区三区| 97久久久精品综合88久久| 亚洲一区二区自拍| 最近中文字幕在线观看| 久久大逼视频| 2019中文字幕在线| 国产无遮挡免费视频| 欧美aⅴ99久久黑人专区| 日韩在线观看视频免费| 少妇无套高潮一二三区| 国产日产精品_国产精品毛片| 日韩av一区在线| 超碰男人的天堂| 激情av综合| 精品国产髙清在线看国产毛片| 加勒比av中文字幕| 伊人久久综合网另类网站| 欧美三级电影一区| gogogo高清免费观看在线视频| 欧美片第一页| 欧美在线free| 久久撸在线视频| 国产精品美女午夜爽爽| 欧美日韩夫妻久久| 亚洲激情在线看| 亚洲色图图片| 欧美久久一二区| 最新免费av网址| 在线免费成人| 欧美大片在线观看| 亚洲一区二区三区四区av| 综合中文字幕| 亚洲精品久久久久久久久久久| av网页在线观看| 一区二区小说| 中文字幕在线观看日韩| 男人av资源站| 激情欧美国产欧美| 欧美一级高清免费播放| 亚洲精品久久久久久久蜜桃| 视频精品一区二区| 成人午夜两性视频| 国精产品乱码一区一区三区四区| 91亚洲精品久久久蜜桃网站| 日本欧美色综合网站免费| 在线a免费看| 亚洲精品国产精品乱码不99| 成 年 人 黄 色 大 片大 全| 中文一区一区三区高中清不卡免费| 欧美日韩在线视频一区二区| 日韩不卡一二三| 中文字幕一区二区三区日韩精品| 亚洲精品理论电影| 国产馆在线观看| 一区视频在线| 国产精品久久久久久久美男| 国产黄色一区二区| av一二三不卡影片| 亚洲激情啪啪| 91破解版在线观看| 欧洲一区在线观看| 绯色av蜜臀vs少妇| 精品国产精品| 欧美日韩爱爱视频| 久久久国产免费| 国产成人免费xxxxxxxx| 日本视频一区在线观看| 污视频网站在线免费| 色天天综合久久久久综合片| 日韩欧美中文视频| 国内精品久久久久久99蜜桃| 欧美成人免费网| 国产日韩久久久| 丁香一区二区三区| 在线国产精品网| 久久sese| 精品国产成人系列| 日本黄色免费片| 蜜桃视频一区| 国产精品一区二区你懂得| 日韩精品成人av| 欧美午夜精品久久久久久久| 任你躁av一区二区三区| 97精品在线| 欧美亚洲第一区| 亚洲第一大网站| 中文字幕欧美一| 国产一二三四在线视频| 日韩精品免费一区二区夜夜嗨| 久久人人爽人人爽爽久久 | 欧美色偷偷大香| 精品中文字幕在线播放| 亚洲欧美伊人| 亚洲sss综合天堂久久| av男人的天堂在线| 色综合中文字幕| 久久久久亚洲AV成人无码国产| 亚洲成人三区| 国产中文字幕日韩| 91亚洲欧美| 在线视频欧美精品| 性欧美精品男男| 久久字幕精品一区| 久久手机视频| 涩涩涩在线视频| 日韩高清中文字幕| 日韩黄色在线视频| 成人免费福利片| 免费高清一区二区三区| 99久久香蕉| 欧美激情网友自拍| 深爱五月激情五月| 午夜国产精品一区| 久久久国产精品无码| 国产精品一国产精品k频道56| 国产精品一区二区免费| 国产乱码午夜在线视频| 日韩成人在线网站| 日韩手机在线观看| 91在线视频播放地址| 久久精品99国产| 精品国产一区二区三区| 国产拍精品一二三| 国产鲁鲁视频在线观看特色| 欧美一区二区三区免费在线看| 91人妻一区二区三区蜜臀| 国产精品一区二区视频| 欧洲精品在线播放| 少妇精品导航| 国产精品免费小视频| 男人在线资源站| 欧美一区二区三区在线观看视频| 懂色av懂色av粉嫩av| 国产成都精品91一区二区三| 黄色大片中文字幕| 国产精品一在线观看| 国产精品美女免费看| 国产乱色在线观看| 亚洲国产又黄又爽女人高潮的| 91精品国产高清一区二区三密臀| 国产午夜精品一区二区三区四区| 免费看污污网站| 欧美女激情福利| 另类欧美小说| 成人动漫视频在线观看| 97免费中文视频在线观看| 国产小视频免费在线网址| 欧美精品精品一区| 久久久午夜影院| 中文在线一区二区| 丰满少妇xbxb毛片日本| 天堂精品中文字幕在线| 欧美日韩亚洲国产成人| 日韩理论电影中文字幕| 国产专区精品视频| 91白丝在线| 日韩在线中文字| 天堂av手机版| 欧美日韩午夜在线| 国产一区二区三区影院| 亚洲欧美在线高清| 中文精品在线观看| 国产一区二区久久| 日本三区在线观看| 国产在线日韩| 亚洲成人网上| 91精品视频在线| 国产精品伦理| 欧美极品第一页| 午夜毛片在线| 亚洲免费人成在线视频观看| 99国产在线播放| 在线观看不卡一区| 国产三级av片| 亚洲影视资源网| 黄色录像免费观看| 中文字幕免费在线观看视频一区| 国产吃瓜黑料一区二区| 久久66热偷产精品| 亚洲五月天综合| 亚洲毛片av| 国产内射老熟女aaaa| 奇米影视亚洲| 麻豆av一区| 国产精品网址| 91福利视频导航| 一级欧美视频| 国产美女久久精品| 欧美日一区二区三区| 欧美性视频网站| 成年男女免费视频网站不卡| 美女少妇精品视频| 免费在线你懂的| 色吧影院999| 福利视频在线播放| 亚洲色图国产精品| 青青青草原在线| 日韩av资源在线播放| 神马久久久久久久久久| 精品国产一区二区亚洲人成毛片| 一本色道久久综合精品婷婷| 欧美色综合久久| 五月婷婷六月婷婷| 在线一区二区视频| 日本视频免费观看| 色噜噜狠狠成人中文综合| 久久久精品免费看| 黑人与娇小精品av专区| 美日韩一二三区| 狠狠爱在线视频一区| 午夜毛片在线观看| 欧美视频中文在线看| 日本中文字幕第一页| 色综合天天综合给合国产| 中文字幕亚洲精品在线| 大荫蒂欧美视频另类xxxx| 特一级黄色大片| 色一情一伦一子一伦一区| 国产一级片毛片| 日韩欧美999| 国产一级片免费在线观看| 欧洲精品中文字幕| 一区二区国产欧美| 日韩亚洲欧美在线观看| 国产 日韩 欧美 精品| 亚洲第一中文字幕| 噜噜噜在线观看播放视频| 亚洲人午夜精品| 99精品老司机免费视频| 久久视频免费观看| 久久一卡二卡| 日韩免费不卡av| 狂野欧美性猛交xxxx| 91精品黄色| 欧美五码在线| 午夜精品短视频| 欧美一区国产在线| 成人免费毛片网| 精品一区中文字幕| 久久久无码人妻精品无码| 91小视频在线观看| 后入内射无码人妻一区| 一区二区三区精密机械公司| 久久久久久久久影院| 欧美少妇bbb| 成人免费公开视频| 亚洲一级黄色av| 青草青在线视频| 国产97在线播放| 国产精品视频一区二区三区| 国产一区二区三区四区五区在线| 欧美中文字幕一区二区| 国产a级黄色大片| 首页综合国产亚洲丝袜| 人妻少妇偷人精品久久久任期| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 在线观看三级视频| 国产a∨精品一区二区三区不卡| 自拍偷拍亚洲| 狼狼综合久久久久综合网| 欧美永久精品| 久草在在线视频| 成人av在线一区二区| 日本成人免费在线观看| 欧美日韩国产中文字幕| 国产婷婷在线视频| 亚洲色无码播放| 678在线观看视频| 成人福利视频网| 欧美美女在线观看| 岛国大片在线播放| 精品在线播放午夜| 少妇精品无码一区二区免费视频| 亚洲国产成人精品视频| 91久久精品无码一区二区| 亚洲欧美在线x视频| 久久99亚洲网美利坚合众国| 成人国产精品av| 国产免费播放一区二区| 日韩中字在线观看| 国产精品一区二区在线观看网站| 国产视频123区| 色婷婷亚洲一区二区三区| 天堂中文在线官网| 欧美激情18p| 日韩三级不卡| 中文字幕日韩精品久久| 日韩激情av在线| av在线网站观看| 欧美日韩国产精品一区| 丰满人妻一区二区三区免费视频| 俺也去精品视频在线观看| h1515四虎成人| 色噜噜狠狠一区二区三区| 丝袜美腿亚洲色图| 成人精品999| 色婷婷综合五月| 青青草免费在线| 欧美一区二区三区四区在线| 老牛影视av一区二区在线观看| 国产视频在线观看网站| 国产一区二区不卡| 欧美黑人性猛交xxx| 在线不卡a资源高清| 日本免费中文字幕在线| 国产欧美精品久久久| 波多野结衣一区| 美女在线视频一区二区| 国产精品国模大尺度视频| 在线观看免费高清视频| 最新中文字幕亚洲| 91视频亚洲| 神马午夜伦理影院| 国产大陆精品国产| 精品少妇一二三区| 亚洲高清一二三区| 中文字幕在线视频久| 日韩免费av电影| 蜜臀av一区二区三区| 五月天激情丁香| 日韩欧美国产三级| av影院在线| 欧美成人在线免费观看| 手机精品视频在线观看| 色噜噜噜噜噜噜| 欧美一区在线视频| 51精品视频| 欧美一级片免费观看| 青青草97国产精品免费观看 | 国产91绿帽单男绿奴| 97精品视频在线观看| 精品一区免费| 成人日韩在线视频| 亚洲成av人影院| 九色在线观看| 成人免费看片视频| 亚洲精品韩国| 国产亚洲精品熟女国产成人| 777欧美精品| aa级大片免费在线观看| 丝袜足脚交91精品| 国产精品一区二区久激情瑜伽| 日韩人妻无码一区二区三区99 | 欧美日韩国产精品一区二区亚洲| 伊人久久一区二区三区| 欧美午夜激情小视频| 黄色av电影在线播放| 久久久精彩视频| 精品一区二区三区视频在线观看| 中文字幕第28页| 国产一区二区三区在线免费观看| 国产精品一级在线观看| 国产精品50p| 亚洲精品高清在线| 欧美日韩国产综合视频 | 啪啪国产精品| 久久久久久综合网| 欧美日韩中文字幕在线视频| 国产福利视频在线观看|