精品欧美一区二区三区在线观看 _久久久久国色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)

青青草国产精品亚洲专区无| 狼人天天伊人久久| 亚洲三级理论片| 国产精品二区在线观看| 91午夜视频在线观看| 亚洲免费福利一区| 欧美精品精品一区| 成人在线观看你懂的| 国产最新视频在线| 国产精品影音先锋| 日本不卡免费高清视频| 疯狂撞击丝袜人妻| 日韩福利视频一区| 91麻豆精品国产91久久久使用方法| 日韩欧美猛交xxxxx无码| 人成在线免费视频| 国产一区二区三区黄视频 | 国产日韩欧美另类| 国产午夜精品无码| 婷婷综合五月| 亚洲美女免费精品视频在线观看| 天天操天天干天天做| 中文在线资源| 一区二区三区免费在线观看| 日本高清一区| 天堂在线视频观看| 国产一区二区三区黄视频| 日本欧美在线视频| 日本a在线观看| 一区二区三区网站| 亚洲午夜未删减在线观看| 性xxxxxxxxx| 在线高清欧美| 欧美性生活大片视频| 欧美极品欧美精品欧美| 视频在线这里都是精品| 欧美国产在线观看| 欧美激情第六页| 超碰人人人人人人| 国产一区二区三区在线观看免费 | 亚洲人精选亚洲人成在线| 国产精品一级无码| 色妞ww精品视频7777| 欧美日韩国产高清一区二区三区 | 日韩三区免费| 黑人巨大精品欧美一区二区一视频| 国产日韩第一页| 在线a免费看| 国产欧美一区二区三区鸳鸯浴| 国产视频一区二区三区四区| 亚洲精品911| 国产一区二区电影| 亚洲qvod图片区电影| 一区二区 亚洲| 奇米色777欧美一区二区| 欧亚精品在线观看| 精品视频一二三区| 日韩国产欧美视频| 国产精品黄视频| 波多野结衣电车痴汉| 久久男女视频| 国产精品大陆在线观看| 国产成人a v| 美女精品一区二区| 国产日韩精品电影| 国产日韩欧美视频在线观看| 国产精品一区专区| 国产 高清 精品 在线 a| 成人h动漫精品一区二区无码| 国产精品影音先锋| 国产精品午夜av在线| 天天干天天干天天干| 久久综合给合久久狠狠狠97色69| 麻豆av一区二区三区| 男女污视频在线观看| 欧美高清在线一区| 国产a级片免费看| 日本在线视频中文有码| 天天综合色天天| 欧美激情成人网| 欧美综合影院| 精品捆绑美女sm三区| aa片在线观看视频在线播放| 国产精品手机在线播放| 久久精品久久久久久| 久久无码精品丰满人妻| 国产精品美女久久久浪潮软件| 国产xxx69麻豆国语对白| 中文字幕网址在线| 国产91丝袜在线18| 欧美1o一11sex性hdhd| 在线观看av的网站| 天天综合天天做天天综合| 国产v亚洲v天堂无码久久久| 精品国产麻豆| 日韩精品亚洲视频| 国产亚洲精品久久久久久豆腐| 国产精品观看| 国产精品久久久久久久av大片| 99热在线只有精品| 久久综合九色综合97_久久久| 在线播放 亚洲| 蜜桃视频动漫在线播放| 欧美福利电影网| 精品黑人一区二区三区观看时间| 日韩美女一区二区三区在线观看| 欧美日韩国产二区| 国产精品传媒在线观看| 国产99久久久国产精品潘金网站| 欧美重口乱码一区二区| 午夜激情在线| 欧美丝袜丝交足nylons| 国产精品成人99一区无码| 成人激情视频| 欧美亚洲国产精品| wwwxxxx国产| 国产精品看片你懂得| 国产美女无遮挡网站| 日韩一级淫片| 日韩中文字幕免费视频| 麻豆精品久久久久久久99蜜桃| 国产激情视频一区二区在线观看 | 国产精品成人无码专区| 99久久亚洲精品蜜臀| 国产一区二区免费电影| 青青草在线播放| 亚洲最大色网站| 亚洲xxx在线观看| 蜜桃精品wwwmitaows| 久久69精品久久久久久久电影好 | 欧美猛男gaygay网站| 91精品国产自产| 欧美三级网页| 91在线免费网站| 8888四色奇米在线观看| 欧美午夜精品在线| 岛国精品一区二区三区| 亚洲天堂免费| 国产色视频一区| 成年人视频在线看| 色婷婷久久99综合精品jk白丝| 美女露出粉嫩尿囗让男人桶| 综合视频在线| 91九色蝌蚪嫩草| dy888亚洲精品一区二区三区| 欧美日韩国产123区| 国产成人一区二区在线观看| 老司机精品导航| 日本高清不卡三区| 91精品国产66| 中文字幕欧美日韩精品| 正在播放木下凛凛xv99| 欧美激情在线观看视频免费| 日韩精品一区中文字幕| 亚洲日本三级| 国产精品精品视频| 1024视频在线| 欧美精品久久一区二区三区| 日本美女黄色一级片| 国产一区二区三区观看| 免费看日本黄色| 伊人久久亚洲| 97国产一区二区精品久久呦| 色综合久久久久久| 精品福利在线看| 性高潮久久久久久久| 日本不卡中文字幕| 在线国产精品网| va天堂va亚洲va影视| 美日韩丰满少妇在线观看| 精品国产999久久久免费| 亚洲一区二区三区国产| 2一3sex性hd| 美女精品网站| 一区精品在线| 91久久精品无嫩草影院| 91精品国产91久久久久| 日本国产在线| 欧美日韩一区视频| 久草视频在线资源站| av午夜一区麻豆| 国产免费999| 一区二区电影| 久久国产日韩欧美| 韩日精品一区| 精品中文字幕乱| 五月婷婷在线观看视频| 欧美视频三区在线播放| 黄色一级视频免费| 久久影院午夜片一区| av亚洲天堂网| 亚洲人成毛片在线播放女女| 五月婷婷综合色| 午夜日韩影院| 国产精品第三页| 永久免费网站在线| 亚洲人成网站999久久久综合| 国产又粗又长视频| 精品久久久久久久大神国产| 国产成人免费观看网站| 成人性生交大片免费看中文| 国产免费人做人爱午夜视频| 国产国产精品| 麻豆视频成人| 欧美日韩国产一区二区在线观看| 国产97人人超碰caoprom| 亚洲丝袜精品| 在线观看精品国产视频| 日韩在线观看视频网站| 欧美日韩国产美女| 日韩人妻精品中文字幕| 亚洲一区二区三区精品在线| 亚洲欧洲综合网| 91蝌蚪porny成人天涯| 国产成人在线综合| 日韩在线a电影| 成人在线观看你懂的| 亚洲乱码精品| 亚洲精品一区国产精品| 日韩精品亚洲aⅴ在线影院| 2014国产精品| 久久免费资源| 日本免费一区二区三区视频观看| 日本在线视频中文有码| 久久久国产精彩视频美女艺术照福利| 免费在线黄色影片| 亚洲第一精品自拍| www.五月婷| 555夜色666亚洲国产免| 亚洲中文无码av在线| 欧美日韩国产页| 久久精品视频国产| 亚洲狠狠丁香婷婷综合久久久| 又色又爽的视频| 国产情人综合久久777777| 极品粉嫩小仙女高潮喷水久久| 国产高清在线观看免费不卡| 激情在线观看视频| 久久99国产精品免费网站| 天天操天天爽天天射| 日韩高清不卡一区二区三区| 免费在线观看的毛片| 另类av一区二区| 北条麻妃69av| 亚洲一区二区三区四区五区午夜| 免费视频爱爱太爽了| 黄色成人在线网址| 天堂а√在线中文在线| 女同性一区二区三区人了人一 | 91久久久国产精品| 亚洲青青久久| 亚洲精品免费一区二区三区| 国产精品一区三区在线观看| 91在线看www| 一区二区三区视频播放| 成人av资源| 一区二区三区亚洲变态调教大结局 | 久久综合网络一区二区| 能在线观看的av网站| 青草av.久久免费一区| 五月婷婷之婷婷| 国产一区二区在线影院| 国内自拍偷拍视频| av一本久道久久综合久久鬼色| 女同毛片一区二区三区| 国产亚洲欧美一区在线观看| 美国美女黄色片| 亚洲视频一二三| 精品无码久久久久久久久| 欧美日韩国产在线| 凹凸精品一区二区三区| 欧美日韩免费一区二区三区视频| 国产伦精品一区二区三区四区| 欧美疯狂性受xxxxx喷水图片| 99精品国产99久久久久久97| 精品美女被调教视频大全网站| 欧美欧美欧美| 精品国内亚洲在观看18黄| 蜜桃成人365av| 欧美亚州一区二区三区| 男人亚洲天堂| 国产精品麻豆免费版| 精品国产一区二区三区久久久樱花| 亚洲bbw性色大片| 午夜天堂精品久久久久| 久久综合色视频| 久久国产夜色精品鲁鲁99| 国产精品偷伦视频免费观看了| 91美女精品福利| 美国黄色片视频| 精品国产成人在线| 亚洲最大成人在线视频| 亚洲成人av在线| 色网站在线看| 91高清视频免费观看| 在线免费成人| 久久婷婷开心| 欧美1区2区| 少妇高清精品毛片在线视频 | 国产a级黄色片| 国产欧美日韩中文久久| 在线免费日韩av| 色综合久久久网| 亚洲国产成人精品一区二区三区| 亚洲女人天堂成人av在线| 亚洲小说区图片区都市| 国产精品美乳在线观看| 国产美女撒尿一区二区| 中文字幕一区二区三区乱码| 国产麻豆综合| 国产女主播在线播放| 亚洲欧洲日韩av| wwwwww国产| 日韩一区二区中文字幕| 黄色片视频在线观看| 久久久精品免费| 欧洲一级精品| 久久riav| 亚洲激情网站| 无码人妻丰满熟妇区毛片蜜桃精品| 国产欧美一区二区在线| 精品欧美一区二区三区免费观看| 日韩欧美资源站| 麻豆视频网站在线观看| 国产精品99久久久久久久久久久久 | 精品人妻一区二区三区日产乱码卜| 有码一区二区三区| 91女人18毛片水多国产| 国产亚洲aⅴaaaaaa毛片| 中文在线资源| 久久99精品国产一区二区三区| 韩日精品在线| 日本一二三四区视频| 国产精品美女久久久久久久| 销魂美女一区二区| 亚洲免费影视第一页| 性欧美又大又长又硬| 久久99精品久久久久久秒播放器| 亚洲国产高清一区| 久久久久99人妻一区二区三区| 亚洲视频在线观看一区| 国产深喉视频一区二区| 久久精品国产一区二区电影| 综合久草视频| 黄色网络在线观看| 国产一区美女在线| 欧美日韩在线观看成人| 日韩欧美一级二级三级久久久| av大全在线| av蓝导航精品导航| 在线观看不卡| 中文字幕在线永久| 欧美日韩国产一区二区| 久蕉在线视频| 国产精品入口日韩视频大尺度| 欧美综合一区| 极品粉嫩美女露脸啪啪| 亚洲欧美电影一区二区| 精品人妻伦一区二区三区久久| 欧美另类在线播放| 超碰精品在线观看| 97成人在线免费视频| 91视频免费观看| 无码人妻aⅴ一区二区三区有奶水| 亚洲人成电影网站色| 成人在线高清| 国产精品一二三在线观看| 粉嫩av亚洲一区二区图片| 日韩经典在线观看| 亚洲欧洲日韩国产| 九九九精品视频| 乱子伦一区二区| 成人永久aaa| 人人爽人人爽人人片av| 在线观看久久久久久| 欧美a级大片在线| 国产精品网站免费| 国产女人aaa级久久久级| 国产视频手机在线观看| 午夜精品蜜臀一区二区三区免费 | 亚洲免费视频在线观看| 成人免费黄色| 日韩一级特黄毛片| 2021中文字幕一区亚洲| 一级二级三级视频| 久久久综合av| 波多野结衣在线观看一区二区| 黄色a级三级三级三级| 精品国产成人av| 黄网站免费在线播放| 精品伊人久久大线蕉色首页| 麻豆免费看一区二区三区| 国产精品6666| 日韩视频免费在线观看| 久久夜色电影| 国产三级国产精品国产专区50| 亚洲va欧美va天堂v国产综合| 成年人在线免费观看| 成人午夜电影免费在线观看| 日韩**一区毛片|