自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

程序員,拒絕垃圾注釋?zhuān)?/h1>

開(kāi)發(fā)
你是否有過(guò)復(fù)查程序時(shí)發(fā)現(xiàn)有些注釋毫無(wú)用處?程序注釋是為了提高代碼的可讀性,然而,很多時(shí)候程序員寫(xiě)的注釋語(yǔ)句毫無(wú)意義,文章將介紹五種應(yīng)該避免的注視方式。

你是否有過(guò)復(fù)查程序時(shí)發(fā)現(xiàn)有些注釋毫無(wú)用處?程序注釋是為了提高代碼的可讀性,為了讓原作者以外的其他開(kāi)發(fā)人員更容易理解這段程序,但更多時(shí)候,程序們們寫(xiě)出的注釋語(yǔ)句都毫無(wú)意義。

51CTO推薦閱讀:程序員的十大技術(shù)煩惱

文章把這些讓人郁悶的注釋方式歸為了五類(lèi),同時(shí)把寫(xiě)出這些注釋的程序員也歸為了五類(lèi)。希望讀了這篇文章后你感覺(jué)自己不屬于其中的任何一種類(lèi)型。

1. 高傲的程序員

  1. public class Program  
  2. {  
  3.     static void Main(string[] args)  
  4.     {  
  5.         string message = “Hello World!”;  // 07/24/2010 Bob  
  6.         Console.WriteLine(message); // 07/24/2010 Bob  
  7.         message = “I am so proud of this code!”; // 07/24/2010 Bob  
  8.         Console.WriteLine(message); // 07/24/2010 Bob  
  9.     }  

這種程序員是如此的欣賞自己的程序,以至于不得不在每行代碼上都署上自己的大名。應(yīng)該讓版本控制系統(tǒng)來(lái)提供程序變更的信息,他這樣做一眼看去并不能說(shuō)明誰(shuí)對(duì)這行代碼負(fù)責(zé)。

2. 過(guò)時(shí)的程序員

  1. public class Program  
  2. {  
  3.     static void Main(string[] args)  
  4.     {  
  5.         /* 這段程序已經(jīng)不再有用  
  6.          * 因?yàn)槲覀儼l(fā)現(xiàn)千年蟲(chóng)問(wèn)題只是一場(chǎng)虛驚  
  7.          * 我們的系統(tǒng)不會(huì)恢復(fù)到1/1/1900 */  
  8.         //DateTime today = DateTime.Today;  
  9.         //if (today == new DateTime(1900, 1, 1))  
  10.         //{  
  11.         //    todaytoday = today.AddYears(100);  
  12.         //    string message = “The date has been fixed for Y2K.”;  
  13.         //    Console.WriteLine(message);  
  14.         //}  
  15.     }  

如果一段程序不再有用(比如廢棄了),那就刪了它吧——不要被幾行沒(méi)用的注釋搞的程序混亂不堪。即使你可能以后重用這段代碼,你也可以使用版本控制系統(tǒng),用它把你的程序恢復(fù)到以前的樣子。

3. 天真的程序員

  1. public class Program  
  2. {  
  3.     static void Main(string[] args)  
  4.     {  
  5.         /* 這個(gè)程序是用來(lái)在屏幕上  
  6.          * 循環(huán)打印1百萬(wàn)次”I Rule!”  
  7.          * 每次輸出一行。循環(huán)計(jì)數(shù)  
  8.          * 從0開(kāi)始,每次加1。  
  9.          * 當(dāng)計(jì)數(shù)器等于1百萬(wàn)時(shí),  
  10.          * 循環(huán)就會(huì)停止運(yùn)行*/  
  11.  
  12.         for (int i = 0; i < 1000000; i++)  
  13.         {  
  14.             Console.WriteLine(“I Rule!”);  
  15.         }  
  16.     }  

基本的編程語(yǔ)法規(guī)則我們大家都知道——我們不需要“編程入門(mén)”。你不需要浪費(fèi)時(shí)間來(lái)解釋一個(gè)顯而易見(jiàn)的東西,我們更希望知道的是你的程序功能——那是浪費(fèi)空間了。

4. 傳奇的程序員

  1. public class Program  
  2. {  
  3.     static void Main(string[] args)  
  4.     {  
  5.        /* 有一天我在大街上的一家星巴克里  
  6.         * 和銷(xiāo)售部的Jim討論問(wèn)題,他告訴我  
  7.         * 銷(xiāo)售代表是依據(jù)以下的比例提取傭金的。  
  8.         * 周五: 25%  
  9.         * 周三: 15%  
  10.         * 其它日期: 5%  
  11.         * 我是否告訴你過(guò)我點(diǎn)了一個(gè)卡拉梅  
  12.         * 鐵咖啡和兩份的Espresso?   
  13.        */  
  14.         double price = 5.00;  
  15.         double commissionRate;  
  16.         double commission;  
  17.         if (DateTime.Today.DayOfWeek == DayOfWeek.Friday)  
  18.         {  
  19.             commissionRate = .25;  
  20.         }  
  21.         else if (DateTime.Today.DayOfWeek == DayOfWeek.Wednesday)  
  22.         {  
  23.             commissionRate = .15;  
  24.         }  
  25.         else  
  26.         {  
  27.             commissionRate = .05;  
  28.         }  
  29.         commission = price * commissionRate;  
  30.     }  

如果你不得不在注釋里寫(xiě)明需求,那也不要提到人名。銷(xiāo)售員Jim很可能在公司里不再是銷(xiāo)售。而且大多數(shù)讀到這段注釋的程序員未必都知道Jim是誰(shuí)。你描述的是實(shí)際情況但跟我們的內(nèi)容不相干,所以就省掉吧。

5. 未來(lái)程序員

  1. public class Program  
  2. {  
  3.     static void Main(string[] args)  
  4.     {  
  5.        //TODO: 將來(lái)我會(huì)修復(fù)這個(gè)問(wèn)題 – 07/24/1995 Bob  
  6.        /* 我知道這個(gè)問(wèn)題很難解決而且  
  7.         * 我現(xiàn)在依賴(lài)于這個(gè)Contains函數(shù),但  
  8.         * 我以后會(huì)用一種更有意義,更  
  9.         * 優(yōu)雅的方式打印這段代碼。  
  10.         * 我只是現(xiàn)在沒(méi)時(shí)間。  
  11.        */  
  12.        string message = “An error has occurred”;  
  13.        if(message.Contains(“error”))  
  14.        {  
  15.            throw new Exception(message);  
  16.        }  
  17.     }  

這種注釋是一種集大成者,它包含了上面所說(shuō)的注釋的所有問(wèn)題。TODO注釋在一個(gè)項(xiàng)目最初的開(kāi)發(fā)階段是非常有用的,但這個(gè)注釋看起來(lái)是在好幾年前的產(chǎn)品程序里的——它證明了程序有問(wèn)題。如果程序有問(wèn)題需要解決,馬上解決,不要拖到日后再解決。

你是否在你的程序里還見(jiàn)到過(guò)其它種沒(méi)有意義的或討厭的注釋?zhuān)?/p>

【編輯推薦】

  1. 程序員的十大技術(shù)煩惱
  2. 淺析程序員編程水平提升的四個(gè)階段
  3. 充滿(mǎn)荊棘的專(zhuān)家程序員之道
  4. 最有爭(zhēng)議的十大編程觀(guān)點(diǎn)
  5. .NET程序員不得不遵守的二十條編碼習(xí)慣
責(zé)任編輯:王曉東 來(lái)源: 外刊IT評(píng)論
相關(guān)推薦

2009-12-28 09:42:14

程序員

2015-08-20 09:06:48

程序員

2023-01-12 12:53:00

程序員離職違法

2018-03-30 10:28:23

2013-06-18 17:12:03

程序員開(kāi)發(fā)工具付費(fèi)

2013-08-20 09:33:59

程序員

2012-03-06 09:22:46

程序員

2021-02-03 09:41:27

春節(jié)電腦程序員

2013-07-05 10:16:32

程序員

2009-05-21 15:58:12

程序員工作經(jīng)驗(yàn)職場(chǎng)

2023-11-13 08:34:01

Java編程習(xí)慣

2011-05-13 14:34:02

程序員

2020-08-20 08:27:31

程序員技術(shù)互聯(lián)網(wǎng)

2015-04-10 19:37:34

程序員

2022-03-16 11:10:19

程序員社區(qū)技術(shù)

2013-07-12 10:58:16

程序員

2020-07-17 09:55:11

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

2017-11-14 21:30:15

2018-04-23 11:00:06

程序員養(yǎng)生健康

2012-11-22 14:00:26

程序員
點(diǎn)贊
收藏

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