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

編程人員怎樣才能寫出美麗的代碼

開發(fā) 后端 開發(fā)工具
應(yīng)該說(shuō),我們中的許多人,編程的歷史并不短,但很多時(shí)候,我們對(duì)自己編寫出來(lái)的代碼卻毫無(wú)自信,有時(shí)候自己見了都怕,盡管這段代碼實(shí)現(xiàn)了要求的功能。歸其原因,往往是代碼風(fēng)格差導(dǎo)致的代碼凌亂沒有美感,本文的目的就是要講解一般的良好風(fēng)格,幫助讀者寫出“美麗”的代碼,事先要說(shuō)明的是文中所涉及到的語(yǔ)言有C、C++、JAVA及BASIC,我之所以用了三種語(yǔ)言而不是只用一種語(yǔ)言是為了向讀者表明風(fēng)格對(duì)語(yǔ)言的通用的。

  編程人員怎樣才能寫出美麗的代碼?本文將從以下10個(gè)方面講述:

  1. 標(biāo)識(shí)符(命名規(guī)則)

  標(biāo)識(shí)符應(yīng)當(dāng)直觀且可以拼讀,可望文知意,***采用英文單詞或其組合,便于記憶和閱讀,切忌使用漢語(yǔ)拼音來(lái)命名。長(zhǎng)名字能更好地表達(dá)含義,所以函數(shù)名、變量名、類名長(zhǎng)達(dá)十幾個(gè)字符不足為怪,例如:

  1. 好的命名 int student_age,teacher_age;  
  2. 壞的命名 int age1,age2; 

  但名字是否越長(zhǎng)越好呢?不是的,請(qǐng)看下面的例子:

  1. struct student  
  2.      {  
  3.           int student_age;    /* 壞的命名 */ 
  4.           char *student_name;  
  5.      }  
  6. struct student  
  7.      {  
  8.           int age;               /* 好的命名 */ 
  9.           char *name;  
  10.      } 

  為什么前者不好呢,因?yàn)楹芏嘤啵Y(jié)構(gòu)體的名student已經(jīng)表達(dá)了student_age前面的student的意思。再比如字符串拷貝函數(shù):void StringCopy(char *str1, char *str2);我們很難搞清楚究竟是把str1拷貝到str2中,還是剛好倒過(guò)來(lái)。可以把參數(shù)名字起得更有意義,如叫strSource和trDestination。這樣從名字上就可以看出應(yīng)該把strSource拷貝到strDestination。單字符的名字也是有用的,常見的如i,j,k,m,n,x,y,z等,它們通常可用作函數(shù)內(nèi)的局部變量。

  2. 運(yùn)算符的優(yōu)先級(jí)

  如果代碼行中的運(yùn)算符比較多,應(yīng)該用括號(hào)確定表達(dá)式的操作順序,避免使用默認(rèn)的優(yōu)先級(jí)。因?yàn)槭煊浉鬟\(yùn)算符的優(yōu)先級(jí)是比較困難的,就算你熟記并正確使用了,寫出來(lái)的代碼也容易產(chǎn)生歧義而使其可讀性較差。

  1. 好的風(fēng)格 if ((a | b) && (a & c))  
  2. 壞的風(fēng)格 if (a | b && a & c)   

  雖然后者和前者功能一樣,但后者是很恐怖的,難以閱讀。

  3. 不要編寫太復(fù)雜的復(fù)合表達(dá)式。

  復(fù)合表達(dá)式使用在適當(dāng)?shù)膱?chǎng)合可以使代碼更加簡(jiǎn)潔,但不能因?yàn)檫@個(gè)簡(jiǎn)潔而帶來(lái)理解的復(fù)雜。

  例如:

  1. max = a > b ?(a > c ? a : c) : (b > c ? b : c) // 復(fù)合表達(dá)式過(guò)于復(fù)雜 

  應(yīng)該修改為:

  1. max = a;  
  2. if(max < b)  
  3.   {  
  4.   max = b;  
  5.   }  
  6. if(max < c)  
  7.   {  
  8.   max = c;  
  9.   }  

  上面的if的執(zhí)行語(yǔ)句只有一行也加了{(lán)},是因?yàn)樽裱?ldquo;不論if、for、while的執(zhí)行語(yǔ)句有多少都要加{}”的規(guī)則,這樣可以防止書寫失誤,當(dāng)這樣的語(yǔ)句層層嵌套的時(shí)候你就會(huì)知道這樣做的好處。

  4. 各種數(shù)據(jù)類型與零值比較

  在JAVA中,對(duì)于布爾變量flag,與零值(注意:不是0)比較的方式自然是if (flag== TRUE)或者if (flag == FALSE),但是在C/C++中這卻不是正確的選擇。正確的選擇應(yīng)該是if (flag)或者if (!flag),這是因?yàn)門RUE的值究竟是什么并沒有統(tǒng)一的標(biāo)準(zhǔn),例如Visual C++ 將TRUE定義為1,而Visual Basic則將TRUE定義為-1。if (flag == TRUE)、if (flag == 1 )、if(flag == FALSE)、if (flag == 0)都屬于不良風(fēng)格。

  應(yīng)當(dāng)將整型變量用“==”或“!=”直接與0比較。

  1. if (value == 0)  
  2. if (value != 0) 

  不可以寫成

  1. if (value) // 會(huì)讓人誤解 value是布爾變量  
  2. if (!value)   

  指針變量的零值是NULL。盡管NULL的值與0相同,但是兩者意義不同。對(duì)于指針變量p ,它與零值比較的if語(yǔ)句如下:

  1. if (p == NULL)  
  2. if (p != NULL) 

  不要寫成

  1. if (p == 0) // 容易讓人誤解p是整型變量  
  2. if (p != 0)   

  5. 多層if語(yǔ)句

  不要出現(xiàn)這樣的結(jié)構(gòu):

  1. if (condition1)  
  2.  {  
  3.     …  
  4.      if (condition2)  
  5.      …  
  6.        if (condition3)  
  7.        …  
  8.          …  
  9.  }  

  而應(yīng)該代之以if-else-if結(jié)構(gòu):

  1. if (condition1)   
  2.   {   
  3.   …   
  4.   }   
  5.   else if (condition2)   
  6.   {   
  7.   …   
  8.   }   
  9.   else if (condition3)   
  10.   {   
  11.   …   
  12.   } …   

  這樣的結(jié)構(gòu)條理清楚,前者則容易導(dǎo)致寫到后來(lái)自己都不知道寫了些什么的事實(shí)。可以用switch語(yǔ)句替換嵌套的if語(yǔ)句來(lái)實(shí)現(xiàn)多分支選擇。

#p#

  6. 改善循環(huán)的效率

  對(duì)于字符串name,看下面的循環(huán):

  1. for (i = 0; i < strlen(name); i++)效率明顯差于下面的循環(huán):  
  2. n = strlen(name);  
  3. for (i = 0; i < n; i++) 

  后者只要計(jì)算name的長(zhǎng)度一次。

  7. 少用、慎用goto語(yǔ)句,并不禁用

  goto語(yǔ)句能從多重循環(huán)體或者代碼堆里一下子跳到外面, 例如:

  1. { …  
  2. { …  
  3. { …  
  4. on error goto errorhandler;  
  5. }  
  6. }  
  7. }  
  8. errorhandler:  
  9. …      

  在Visual Basic中這一招是常用的。

  8. 消除魔鬼數(shù)

  魔鬼數(shù)者,沒名字的常數(shù)也,你若看英文資料,它們的說(shuō)法是magic data,我們的一些作品將其翻譯為“魔術(shù)數(shù)”,我更愿意將其翻譯為“魔鬼數(shù)”,因?yàn)樗且粋€(gè)導(dǎo)致代碼的可讀性極差的“魔鬼”。

  假使你在程序里寫下下面的一段代碼:

  1. for (i=0; i < 100; i++);for (i=0; i < 99; i++); 

  誰(shuí)都不知道100、99是個(gè)什么玩意,你可能意味著100是范圍的邊界(***值),就應(yīng)該給出定義,代碼的讀者才能明白你的意思:

  1. #define MAX 100 /* C語(yǔ)言的宏常量 */  
  2. const int MAX = 100; // C++ 語(yǔ)言的const常量  
  3. for (i=0; i < MAX; i++);for (i=0; i < MAX-1; i++)的意思就很清楚了。 

  并且如果某一常量與其它常量密切相關(guān),應(yīng)在定義中包含這種關(guān)系,而不應(yīng)給出一些孤立的值。

  例如:

  1. const float RADIUS = 100;  
  2. const float DIAMETER = RADIUS * 2;  

  9. 函數(shù)返回值

  函數(shù)名字與返回值類型在語(yǔ)義上不可沖突,C標(biāo)準(zhǔn)庫(kù)函數(shù)getchar違反了這一規(guī)則。

  例如:

  1. char c;  
  2. c = getchar();  
  3. if (c == EOF)   

  按照getchar名字的意思,將變量c聲明為char類型是很自然的事情。但不幸的是getchar的確不是char類型,而是int類型,其原型如下:

  1. int getchar(void); 

  10. 亂指一氣的指針

  “野指針”者,亂指一氣的指針也,它不是NULL指針,是指向“垃圾”內(nèi)存的指針。野指針是很危險(xiǎn)的,是經(jīng)常導(dǎo)致bug的原因,它的成因主有兩種:

  一是指針變量沒有被初始化。在C/C++中任何指針變量剛被創(chuàng)建時(shí)不會(huì)自動(dòng)成為NULL指針,它的缺省值是隨機(jī)的。所以,指針變量在創(chuàng)建的同時(shí)應(yīng)當(dāng)被初始化,要么將指針設(shè)置為NULL,要么讓它指向合法的內(nèi)存。例如:

  1. char *p = NULL;  
  2. char *str = (char *) malloc(100);    

  二是指針p被free或者delete之后,沒有置為NULL,讓人誤以為p是個(gè)合法的指針。

  關(guān)于編碼的風(fēng)格,筆者還有許多需要講解的,本文筆者暫時(shí)講到這里,希望能對(duì)編程者有所幫助。

【編輯推薦】

  1. 編寫超級(jí)可讀代碼的15個(gè)***實(shí)踐
  2. 編程必讀 15個(gè)編程好習(xí)慣
  3. c++編程常用工具
  4. Java程序員必讀 編程中的一些共同問題
  5. 程序員:永遠(yuǎn)不要去請(qǐng)示是否應(yīng)該整理你的代碼

 

責(zé)任編輯:韓亞珊 來(lái)源: 中國(guó)IT實(shí)驗(yàn)室
相關(guān)推薦

2012-12-27 14:11:21

簡(jiǎn)歷應(yīng)屆畢業(yè)生

2019-05-06 11:06:30

PyTorch深度學(xué)習(xí)框架

2022-02-21 08:00:23

開發(fā)代碼程序員

2018-07-16 12:36:48

編程語(yǔ)言PythonJava

2010-09-02 09:44:16

室外WLAN

2021-05-18 17:55:29

SaaS軟件

2015-11-16 10:48:35

2009-07-06 18:24:51

IT資產(chǎn)運(yùn)維管理廣通信達(dá)科技

2022-04-27 10:07:02

Linux文檔命令

2012-09-25 13:32:31

大數(shù)據(jù)Hadoop

2011-07-15 16:57:43

AJAX

2022-03-25 08:34:57

物聯(lián)網(wǎng)安全物聯(lián)網(wǎng)IOT

2015-07-01 16:11:30

數(shù)據(jù)人才數(shù)據(jù)

2015-12-03 10:14:04

2022-04-11 15:05:32

元宇宙虛擬工作空間虛假身份注冊(cè)

2020-02-28 15:37:58

架構(gòu)運(yùn)維技術(shù)

2020-04-10 09:07:09

BEC商業(yè)郵件欺詐網(wǎng)絡(luò)釣魚

2011-12-15 21:16:08

蘋果

2010-03-15 11:47:11

網(wǎng)絡(luò)安全

2017-04-05 06:40:32

科技新聞早報(bào)
點(diǎn)贊
收藏

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

午夜天堂在线视频| 九色91在线视频| 成人一级黄色大片| 91精品国产自产精品男人的天堂| 亚洲精品欧美二区三区中文字幕| 成人免费视频a| 国产乡下妇女做爰| 超碰成人久久| 精品久久久久久无| 少妇性l交大片| 啪啪免费视频一区| 久久午夜老司机| 91久久久久久久久久久久久| 国产精品suv一区二区| 精品国产一区二区三区| 日韩免费视频一区| 牛夜精品久久久久久久| 亚洲精品白浆| 国产精品丝袜在线| 久久久国产精品一区二区三区| 亚洲最大成人在线视频| 国产午夜久久| 久久国产精品网站| 人妻视频一区二区| 精品深夜福利视频| 91精品国产91久久久久久一区二区| 国产乱子伦农村叉叉叉| 99视频免费在线观看| 国产日产欧美精品一区二区三区| 97在线电影| 最新中文字幕免费| 另类亚洲自拍| 国内精品小视频| 亚洲色婷婷一区二区三区| 精品盗摄女厕tp美女嘘嘘| 亚洲国产精品电影在线观看| 天天干天天av| 六九午夜精品视频| 一本色道综合亚洲| 1024av视频| 9lporm自拍视频区在线| 亚洲精品成人a在线观看| 亚洲日本精品| 国产女人在线观看| 久久中文娱乐网| 精品国产免费一区二区三区 | 欧美视频日韩视频| 日批视频在线免费看| 2021中文字幕在线| 亚洲国产wwwccc36天堂| avav在线播放| a毛片不卡免费看片| 亚洲国产综合色| 精品无码国产一区二区三区av| av免费在线免费观看| 亚洲日本在线观看| 久久天天东北熟女毛茸茸| 高h视频在线观看| 伊人一区二区三区| 欧美亚洲色图视频| f2c人成在线观看免费视频| 亚洲国产日产av| 1024av视频| 日本精品裸体写真集在线观看| 在线影院国内精品| jizzzz日本| 国产精品日韩精品在线播放| 91精品久久久久久久久99蜜臂| 91精品视频国产| 一本一道久久a久久| 亚洲国产精品人人爽夜夜爽| 污污免费在线观看| 一区二区三区韩国免费中文网站| 亚洲丝袜av一区| www.4hu95.com四虎| 91精品一区二区三区综合在线爱| 久久视频在线看| 国产 日韩 欧美 成人| 亚洲在线黄色| 国产日韩av高清| 成 人 黄 色 片 在线播放| 成熟亚洲日本毛茸茸凸凹| 精品毛片久久久久久| 国产大片在线免费观看| 亚洲男人的天堂在线观看| 久久国产精品视频在线观看| 欧美日韩五码| 欧美一区二区福利在线| 久久无码人妻精品一区二区三区| 九色精品91| 日韩在线不卡视频| 日韩av一区二区在线播放| 性一交一乱一区二区洋洋av| 国产在线高清精品| 亚洲三区在线观看无套内射| 国产精品欧美一级免费| 久艹在线免费观看| 2019年精品视频自拍| 日韩女同互慰一区二区| 少妇av片在线观看| 亚洲激情婷婷| 成人美女免费网站视频| 亚洲人妻一区二区三区| 亚洲欧美怡红院| 欧美国产亚洲一区| 久久久精品区| 中文字幕欧美精品日韩中文字幕| 久久网一区二区| 久久国产尿小便嘘嘘| 国产一级特黄a大片99| 午夜小视频在线| 欧美午夜片在线免费观看| 久久精品一卡二卡| av影片在线一区| 97视频在线观看成人| 国产一区二区三区视频免费观看| 99re热这里只有精品视频| 国产日产欧美一区二区| 成人福利片在线| 精品女同一区二区| 北条麻妃在线观看视频| 日韩国产欧美一区二区三区| 91色视频在线导航| 婷婷成人激情| 欧美伊人久久大香线蕉综合69| 亚洲av成人精品一区二区三区| 91精品国产乱码久久久久久久| 国产成人精品在线视频| 午夜在线视频观看| 亚洲自拍与偷拍| 中文字幕第66页| 天天综合国产| 国产精品三级久久久久久电影| 神马午夜一区二区| 亚洲香蕉伊在人在线观| 日本中文字幕在线不卡| 亚洲美女视频| 91亚洲精品一区| 国产黄色小视频在线| 欧美日本一区二区三区四区| 精品一区二区6| 日本亚洲视频在线| 婷婷四房综合激情五月| 精品免费av一区二区三区| 亚洲视频国产视频| 不卡av电影在线| 久久久久久麻豆| 国产又黄又猛视频| 国产欧美日韩影院| 国产精品免费在线免费| www亚洲人| 欧美日本在线播放| 日韩影院一区二区| 国产成人av电影在线播放| 久久久99精品视频| 99re8这里有精品热视频8在线| 久久999免费视频| 国产 日韩 欧美 精品| 亚洲777理论| 粉嫩av蜜桃av蜜臀av| 爽好多水快深点欧美视频| 日韩中文字幕一区二区| 伊人久久大香伊蕉在人线观看热v 伊人久久大香线蕉综合影院首页 伊人久久大香 | 亚洲视频专区在线| 成人黄色片在线观看| 国产精品久久久久久户外露出| 日韩av片专区| 欧美女人交a| 精品一区二区视频| 全亚洲第一av番号网站| 色偷偷亚洲男人天堂| 国产高潮在线观看| 欧美日韩一二三四五区| 中文字幕伦理片| 国产综合一区二区| 香港三级日本三级a视频| 日本韩国欧美超级黄在线观看| 国产成人精品av| 九七久久人人| 亚洲电影免费观看| 国产精华7777777| 综合在线观看色| 800av在线播放| 日本网站在线观看一区二区三区| 懂色av粉嫩av蜜臀av| 精品综合久久88少妇激情| 国产成人精品亚洲精品| а√天堂资源地址在线下载| 亚洲精品久久久久久久久| 99re热视频| 一区二区三区中文免费| 草草影院第一页| 国产麻豆视频精品| 欧美牲交a欧美牲交aⅴ免费下载| 天天射天天综合网| 欧美日韩一区在线播放| 国产亚洲字幕| 国产成人免费av| 青草av在线| 日韩视频精品在线| 你懂的在线观看视频网站| 欧美一区二区在线看| 日日骚av一区二区| 亚洲精品成人精品456| 亚洲欧美va天堂人熟伦| 国产jizzjizz一区二区| 中文字幕第36页| 亚洲久久一区二区| 91九色国产ts另类人妖| 精品国产乱码久久久久久蜜坠欲下| 国产厕所精品在线观看| 小说区图片区亚洲| 国产成人精品免高潮在线观看| 欧美草逼视频| 久久久999精品视频| 国产女主播在线写真| 国产丝袜一区二区三区| 国模人体一区二区| 日韩一区二区在线观看视频播放| jizz国产在线| 色哟哟一区二区| 日韩 欧美 综合| 亚洲一区二区三区中文字幕| 天天做夜夜爱爱爱| 中文字幕不卡在线| 久久亚洲无码视频| 久久久精品tv| 男生裸体视频网站| av不卡在线观看| 亚洲一区和二区| 国产精品一区免费视频| 999久久久精品视频| 免费高清不卡av| 日韩av片网站| 日韩精品视频网| 日韩亚洲在线视频| 久久精品综合| 日韩精品一区二区三区不卡| 国产精品亚洲综合久久| 欧美在线观看www| 国产视频一区欧美| 久久久久久久久久久视频| 99国产精品久久久久久久| 国产 日韩 亚洲 欧美| 亚洲精品乱码| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 野花国产精品入口| 国产欧美在线一区| 日韩主播视频在线| 欧美精品性生活| 蜜臀av性久久久久蜜臀av麻豆| 亚洲综合色在线观看| 麻豆精品一区二区三区| 制服丝袜中文字幕第一页| 国产一区美女在线| 精产国品一区二区三区| 懂色av一区二区在线播放| 亚洲av综合色区无码另类小说| 国产福利一区二区三区视频 | 欧美精品久久久久久久| 成人影音在线| 国产成人精品一区二区在线| 欧美美女福利视频| 99热国产免费| 天堂成人娱乐在线视频免费播放网站| 欧美人xxxxx| 久久神马影院| 欧美久久久久久久久久久久久久| 亚洲久久在线| 在线免费观看av的网站| 国产精品一区二区你懂的| 亚洲日本久久久| 久久九九99视频| 999精品在线视频| 亚洲成在人线在线播放| 国产suv精品一区二区33| 欧美男男青年gay1069videost| 性色av蜜臀av| 亚洲人成电影网站色| 香蕉视频在线免费看| 久久久久久久久久国产| 成人日韩在线| 岛国一区二区三区高清视频| 嫩草国产精品入口| 伊人天天久久大香线蕉av色| 亚洲高清成人| 国产免费又粗又猛又爽| 东方欧美亚洲色图在线| 六月婷婷七月丁香| 亚洲精选视频免费看| 国产91精品一区| 欧美一级艳片视频免费观看| 色猫av在线| 欧美成人精品一区二区三区| 中文在线免费二区三区| 91沈先生作品| 女厕嘘嘘一区二区在线播放| 免费的av在线| 秋霞午夜鲁丝一区二区老狼| 中文字幕人妻熟女在线| 国产精品久久久久国产精品日日| 精品在线视频免费| 欧美一区在线视频| 成人精品一区二区| 欧美亚洲国产另类| 久久的色偷偷| 正义之心1992免费观看全集完整版| 在线亚洲免费| 精品国产aⅴ一区二区三区东京热| 国产欧美日韩另类一区| 男女啊啊啊视频| 欧美mv日韩mv亚洲| 欧美性天天影视| 国产成+人+综合+亚洲欧洲| 国内精品免费| 91.com在线| 国产美女在线观看一区| 免费看日本黄色片| 欧美日韩中文字幕| 欧美自拍偷拍第一页| 美日韩丰满少妇在线观看| 成人影院在线免费观看| 久久精品国产一区二区三区日韩| 欧美三级网页| 国产黄色一区二区三区| 中文字幕字幕中文在线中不卡视频| 免费视频网站在线观看入口| 亚洲经典中文字幕| 任你弄在线视频免费观看| 3d动漫啪啪精品一区二区免费 | 国产免费黄色一级片| 国产精品自在欧美一区| 韩国一级黄色录像| 欧美日韩一区三区| a视频网址在线观看| 国产精品444| 久草精品在线| 国产日产欧美视频| 91丨porny丨国产入口| 国产情侣在线视频| 日韩经典第一页| 日韩脚交footjobhd| 欧美黑人xxxxx| 久久综合九色综合欧美狠狠| 自拍偷拍中文字幕| 91福利视频网站| 97在线观看免费观看高清| 国产精品久久久久久网站 | 日本精品久久久久久久久久| 国产激情一区二区三区| 免费麻豆国产一区二区三区四区| 日韩欧美你懂的| 24小时免费看片在线观看| 九色91视频| 日本欧美久久久久免费播放网| 亚洲色图第四色| 91精品国产91久久综合桃花| 尤物yw193can在线观看| 国产精品初高中精品久久| 99精品久久| 超碰人人干人人| 3d成人动漫网站| а_天堂中文在线| 久久久久久九九| 麻豆精品新av中文字幕| 精品国产欧美日韩不卡在线观看| 欧美成人在线直播| 五月天av在线| 亚洲最大免费| 岛国精品在线播放| 日韩在线 中文字幕| 色青青草原桃花久久综合| 精品国产亚洲日本| www国产精品内射老熟女| 国产精品乱码久久久久久| www.国产精品视频| 欧美亚洲日本黄色| 欧美大人香蕉在线| 国产在线不卡av| 欧美午夜一区二区三区| av网站大全在线| 久久亚洲午夜电影| 韩国v欧美v日本v亚洲v| 人人干人人干人人干| 色哟哟入口国产精品| 东京久久高清| 91国产精品视频在线观看| 一区二区三区av电影| 每日更新av在线播放| 91福利入口| 日韩经典一区二区| 精品视频久久久久| 色阁综合伊人av| 免费成人三级| 污视频在线观看免费网站| 色偷偷久久人人79超碰人人澡| 国产精品久久麻豆| 欧美日韩亚洲免费| 成人午夜激情在线| 国产精品一区二区av白丝下载|