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

亚洲第一免费视频| 国产精彩视频在线观看| www.成人在线.com| 亚洲激情综合网| 国产精品制服诱惑| 伊人中文字幕在线观看| 水蜜桃久久夜色精品一区| 欧美一区二区精品| 国内自拍在线观看| 蜜桃视频在线观看www社区| 高清在线成人网| 国产成人久久精品| 免费一级黄色大片| 欧洲杯足球赛直播| 亚洲第一视频网| 一级黄色特级片| 爱啪视频在线观看视频免费| 国产精品一区二区三区精品| 国产一区二区三区无遮挡 | 国产精品久久福利| 电影午夜精品一区二区三区| 国产九色91回来了| 1024成人| 欧美大胆a视频| 黄色三级生活片| 欧美激情影院| 日韩精品中文字幕一区二区三区| 日本激情视频在线| 国产免费拔擦拔擦8x高清在线人| 中文字幕一区在线观看| 蜜桃麻豆91| 欧美一区二区黄片| 国产精品一区二区果冻传媒| 国产精品欧美一区二区三区奶水| 可以免费看的av毛片| 欧美一区二区三区久久精品| 在线性视频日韩欧美| 中文精品在线观看| 国产女人高潮的av毛片| 免费在线欧美黄色| 欧美激情一二三| 午夜精品久久久久99蜜桃最新版| 国产成人高清| 日韩av综合中文字幕| 少妇搡bbbb搡bbb搡打电话| 电影中文字幕一区二区| 欧美伊人久久久久久午夜久久久久| 浮妇高潮喷白浆视频| 精品日韩av| 夜夜爽夜夜爽精品视频| 日韩一级特黄毛片| 主播国产精品| 一区二区三区欧美激情| 97精品国产97久久久久久粉红| avav免费在线观看| 国产精品视频第一区| 午夜精品一区二区三区在线观看| 色视频在线观看| 2欧美一区二区三区在线观看视频| 精品国产综合| 天堂在线一二区| 日韩在线卡一卡二| 国产精品91久久久| 五月天中文字幕| 青娱乐精品视频在线| 国产精品a久久久久久| 五月婷婷六月婷婷| 美腿丝袜在线亚洲一区| 国产欧美韩国高清| aaa国产视频| 高清不卡一区二区在线| 国产在线一区二区三区播放| 天堂91在线| 欧美激情一二三区| 日日噜噜噜夜夜爽爽| 2024最新电影免费在线观看| 亚洲成在线观看| 日本黄网站免费| 日本亚洲欧洲无免费码在线| 欧美一区二区视频网站| 精品久久久久久无码人妻| 欧美在线关看| 中文字幕一区电影| 九九热视频精品| 国产日韩高清一区二区三区在线| 国产不卡精品视男人的天堂| 国产精品一级视频| 成人午夜精品一区二区三区| 久久亚洲一区二区| 米奇777四色精品人人爽| 一区二区欧美视频| 亚洲人成色77777| 亚洲伦理网站| 日韩精品在线免费观看| 色偷偷男人天堂| 精品91在线| 国产精品成人国产乱一区 | 激情小说中文字幕| 久久aⅴ国产紧身牛仔裤| 成人做爰www免费看视频网站| 蜜桃91麻豆精品一二三区| 久久久激情视频| 老司机午夜网站| 女生影院久久| 欧美r级在线观看| 久久久精品成人| 精品999网站| 成人精品久久av网站| 天堂av电影在线观看| 亚洲免费av高清| 久久精品视频91| 电影一区二区在线观看| 亚洲色图25p| 国产乡下妇女做爰视频| 久久国产精品色婷婷| 久久av一区二区三区漫画| 色视频在线免费观看| 精品久久久久久久久久国产| 天天干天天色天天干| 国产一区不卡| 午夜精品福利在线观看| 精品国产乱码一区二区三| 中文字幕av资源一区| 日批视频在线免费看| 91午夜精品| 中文日韩在线视频| 国产一级免费视频| 菠萝蜜视频在线观看一区| 青青草原网站在线观看| 欧美91在线|欧美| 亚洲一区二区久久久| 国产精品视频免费播放| 国产91高潮流白浆在线麻豆 | 国产中年熟女高潮大集合| 激情久久综合| 国产精品夜夜夜一区二区三区尤| 国产在线观看a视频| 欧美日韩一区二区三区在线| 久久av无码精品人妻系列试探| 亚洲精品欧美| 精品乱子伦一区二区三区| 91九色国产在线播放| 精品日韩av一区二区| a级片在线观看免费| 黑人精品欧美一区二区蜜桃| 亚洲资源视频| 99久久这里有精品| 久久在线精品视频| 国产精品伦理一区| 亚洲色图在线看| 日本特黄在线观看| 欧美一区影院| 国产高清在线精品一区二区三区| 怡红院在线播放| 精品sm捆绑视频| 国产精品白浆一区二小说| 成人美女视频在线观看| 大陆极品少妇内射aaaaa| 天天久久夜夜| 国产福利精品视频| 91女主播在线观看| 欧美丰满一区二区免费视频| 日韩视频中文字幕在线观看| 国产不卡视频在线播放| 黄色一级片在线看| 综合色就爱涩涩涩综合婷婷| 国产精品成熟老女人| 成人高清网站| 欧美精品久久一区二区三区| 毛片a片免费观看| 91视频观看视频| 成人免费视频久久| 国产精品久久久久无码av| 91一区二区三区| 日本三级一区| 在线观看日韩视频| 性猛交富婆╳xxx乱大交天津| 亚洲午夜精品17c| 久久av无码精品人妻系列试探| 免费成人小视频| 久操手机在线视频| 亚洲午夜久久| 成人黄在线观看| 成年人在线网站| 色妞久久福利网| 刘亦菲久久免费一区二区| 在线亚洲人成电影网站色www| 午夜精品久久久久99蜜桃最新版| 成人午夜视频在线观看| 国产精品视频黄色| 亚洲性人人天天夜夜摸| 日韩av一级大片| 91精品久久久久久综合五月天 | 精品国产xxx| 最近日韩中文字幕| 国产白嫩美女无套久久| 精品制服美女丁香| 男人天堂网视频| 午夜精彩国产免费不卡不顿大片| 精品国产乱码久久久久| 日韩美女在线| 7777精品久久久久久| 欧美性videos| 精品欧美久久久| 一级欧美一级日韩| 黑人巨大精品欧美一区二区一视频| 激情五月深爱五月| 99re这里只有精品首页| 亚洲自拍第三页| 羞羞视频在线观看欧美| 久久av高潮av| 国产精品久久久久久久免费观看| 欧美福利精品| 久久97精品| 91九色在线免费视频| 亚洲精品555| 97超级碰碰人国产在线观看| 国产黄色小视频在线| 中文字幕不卡av| 精品三级久久久久久久电影聊斋| 欧美成va人片在线观看| 国产精品无码专区av免费播放| 在线亚洲一区二区| 国产成人精品网| 午夜欧美一区二区三区在线播放| 午夜激情福利网| 最新国产の精品合集bt伙计| 丁香花五月婷婷| 久久伊人中文字幕| 91精品国产自产| 99久久伊人精品| 992tv成人免费观看| 欧美理论视频| 免费精品视频一区| 理论片一区二区在线| 成人综合色站| 一区二区中文字幕在线观看| 91欧美激情另类亚洲| 日韩av懂色| 成人黄色短视频在线观看| 伦一区二区三区中文字幕v亚洲| 国产精品久久久久999| 欧美大胆性生话| 欧美一性一乱一交一视频| 97人澡人人添人人爽欧美| 欧美激情奇米色| 丁香花电影在线观看完整版| 欧美激情在线有限公司| 久草在线视频网站| 欧美精品videos| 搞黄网站在线看| 97avcom| 日韩脚交footjobhd| 91精品国产91久久久久久久久 | 精品日韩视频在线观看| 亚洲综合一二三| 欧美性猛交99久久久久99按摩| 欧美一级特黄视频| 91电影在线观看| 91国内精品视频| 91精品国产综合久久国产大片| 99久久久久久久| 精品国产乱码久久久久久免费| 亚洲毛片欧洲毛片国产一品色| 精品盗摄一区二区三区| 青青青手机在线视频观看| 亚洲少妇中文在线| 欧美三级黄网| 欧美黑人巨大精品一区二区| 欧亚av在线| 国产精品中文在线| 亚洲一二av| 免费成人看片网址| 久久免费大视频| 成年丰满熟妇午夜免费视频| 亚洲美女黄色| 另类小说色综合| 国产成人免费视频| 波多野结衣片子| 亚洲视频中文字幕| 日本天堂在线视频| 欧美综合欧美视频| 亚洲成熟女性毛茸茸| 精品亚洲永久免费精品| 五月天婷婷在线视频| 久久久天堂国产精品女人| gogo亚洲高清大胆美女人体| 成人精品福利视频| 在线日韩网站| 激情图片qvod| 日韩国产在线一| 日本女人性视频| 国产欧美日韩中文久久| 男女羞羞免费视频| 欧洲激情一区二区| 性生活免费网站| 影音先锋欧美精品| av在线资源| 91情侣偷在线精品国产| 精品在线99| 黄色三级中文字幕| 九九视频精品免费| 国产全是老熟女太爽了| 洋洋成人永久网站入口| 亚洲视屏在线观看| 亚洲精品电影在线| 99在线播放| 国产精品欧美久久久| 欧洲亚洲一区二区三区| 亚洲第一综合网站| 免费成人你懂的| 中文字幕av网址| 亚洲综合成人在线视频| 一道本在线视频| 日韩精品免费在线| 四虎亚洲成人| 成人在线中文字幕| 精品国产一区二区三区香蕉沈先生 | 国产精品久久久久久久久久东京| 高清日韩欧美| 九九久久九九久久| 精品在线观看免费| 亚洲图片第一页| 色综合久久久久综合99| 男人天堂综合网| 久久久久久久爱| 天堂va在线高清一区| 看全色黄大色大片| 美女性感视频久久| 特级西西www444人体聚色 | 亚洲欧洲色图| 日本韩国欧美在线观看| 成人综合婷婷国产精品久久蜜臀| 久久免费看少妇高潮v片特黄| 欧美日本免费一区二区三区| porn视频在线观看| 国产精品扒开腿做爽爽爽的视频| 日韩动漫一区| 91精品91久久久中77777老牛| 成人爱爱电影网址| 久久人人爽人人爽人人| 欧美一级久久久久久久大片| 超碰在线免费播放| 99电影网电视剧在线观看| 欧美一区国产在线| 国产情侣久久久久aⅴ免费| 一区二区三区日本| 亚洲精品第五页| 久久免费国产视频| 欧美人体视频| 99999精品视频| 久久蜜桃一区二区| 中文字幕人妻一区二区在线视频| 永久555www成人免费| jizz欧美| 视色,视色影院,视色影库,视色网| 激情伊人五月天久久综合| www.av成人| 日韩欧美国产一区二区三区| 日本成人不卡| 久久综合九色欧美狠狠| 美女国产一区| 激情五月激情综合| 欧美一级高清大全免费观看| 日本资源在线| 精品国产免费一区二区三区 | 国产精品美乳在线观看| 国产精品久久久久久麻豆一区软件| 青娱乐国产精品视频| 亚洲成av人片在线观看无码| 久久经典视频| 成人黄色午夜影院| 欧美视频网站| 五月天综合视频| 日韩欧美中文字幕一区| 国产不卡人人| 一本久久a久久精品vr综合| 国产乱子轮精品视频| 日韩三级小视频| 夜夜躁日日躁狠狠久久88av| 香港久久久电影| 免费午夜视频在线观看| 亚洲欧美怡红院| 日韩大片b站免费观看直播| 国产精品视频免费在线观看| 欧美日韩国产高清| 美女被到爽高潮视频| 日韩一区二区三区在线视频| 成人影院入口| 成人在线免费高清视频| 久久色视频免费观看| 91亚洲国产成人久久精品麻豆| 国语对白做受69| 99久久婷婷国产综合精品电影√| 一级黄色电影片| 欧美少妇bbb| sm久久捆绑调教精品一区| 一本色道久久综合亚洲精品婷婷 | 精品亚洲永久免费| 尤物yw午夜国产精品视频明星|