zoukankan      html  css  js  c++  java
  • 程序员!这5种让人郁闷的程序注释方式千万要避开!

    你是否有过复查程序时发现有些注释毫无用处?程序注释是为了提高代码的可读性,为了让原作者以外的其他开发人员更容易理解这段程序。

    我把这些让人郁闷的注释方式归为了五类,同时把写出这些注释的程序员也归为了五类。我希望读了这篇文章后你感觉自己不属于其中的任何一种类型。


     

    1. 高傲的程序员

    复制代码代码如下:

    public class Program

    {

    static void Main(string[] args)

    {

    string message = “Hello World!”; // 07/24/2010 Bob

    Console.WriteLine(message); // 07/24/2010 Bob

    message = “I am so proud of this code!”; // 07/24/2010 Bob

    Console.WriteLine(message); // 07/24/2010 Bob

    }

    }

    这种程序员是如此的欣赏自己的程序,以至于不得不在每行代码上都署上自己的大名。应该让版本控制系统来提供程序变更的信息,他这样做一眼看去并不能说明谁对这行代码负责。

    2. 过时的程序员

    复制代码代码如下:

    public class Program

    {

    static void Main(string[] args)

    {

    /* 这段程序已经不再有用

    * 因为我们发现千年虫问题只是一场虚惊

    * 我们的系统不会恢复到1/1/1900 */

    //DateTime today = DateTime.Today;

    //if (today == new DateTime(1900, 1, 1))

    //{

    // today = today.AddYears(100);

    // string message = “The date has been fixed for Y2K.”;

    // Console.WriteLine(message);

    //}

    }

    }

    如果一段程序不再有用(比如废弃了),那就删了它吧——不要被几行没用的注释搞的程序混乱不堪。即使你可能以后重用这段代码,你也可以使用版本控制系统,用它把你的程序恢复到以前的样子。

    3. 天真的程序员

    复制代码代码如下:

    public class Program

    {

    static void Main(string[] args)

    {

    /* 这个程序是用来在屏幕上

    * 循环打印1百万次”I Rule!”

    * 每次输出一行。循环计数

    * 从0开始,每次加1。

    * 当计数器等于1百万时,

    * 循环就会停止运行*/

    for (int i = 0; i < 1000000; i++)

    {

    Console.WriteLine(“I Rule!”);

    }

    }

    }

    基本的编程语法规则我们大家都知道——我们不需要“编程入门”。你不需要浪费时间来解释一个显而易见的东西,我们更希望知道的是你的程序功能——那是浪费空间了。

    如果你正在学习C/C++遇到瓶颈,迷茫,困惑,那么不妨加入C语言C++学习企鹅圈子,跟着前辈一起交流学习,还有一些(源码、项目实战视频、项目笔记,基础入门教程)分享哟!即使是零基础的学习者,都可以一起成长进步。


     

    4. 传奇的程序员

    复制代码代码如下:

    public class Program

    {

    static void Main(string[] args)

    {

    /* 有一天我在大街上的一家星巴克里

    * 和销售部的Jim讨论问题,他告诉我

    * 销售代表是依据以下的比例提取佣金的。

    * 周五: 25%

    * 周三: 15%

    * 其它日期: 5%

    * 我是否告诉你过我点了一个卡拉梅

    * 铁咖啡和两份的Espresso?

    */

    double price = 5.00;

    double commissionRate;

    double commission;

    if (DateTime.Today.DayOfWeek == DayOfWeek.Friday)

    {

    commissionRate = .25;

    }

    else if (DateTime.Today.DayOfWeek == DayOfWeek.Wednesday)

    {

    commissionRate = .15;

    }

    else

    {

    commissionRate = .05;

    }

    commission = price * commissionRate;

    }

    }

    如果你不得不在注释里写明需求,那也不要提到人名。销售员Jim很可能在公司里不再是销售。而且大多数读到这段注释的程序员未必都知道Jim是谁。你描述的是实际情况但跟我们的内容不相干,所以就省掉吧。

    5. 未来程序员

    复制代码代码如下:

    public class Program

    {

    static void Main(string[] args)

    {

    //TODO: 将来我会修复这个问题 – 07/24/1995 Bob

    /* 我知道这个问题很难解决而且

    * 我现在依赖于这个Contains函数,但

    * 我以后会用一种更有意义,更

    * 优雅的方式打印这段代码。

    * 我只是现在没时间。

    */

    string message = “An error has occurred”;

    if(message.Contains(“error”))

    {

    throw new Exception(message);

    }

    }

    }

    这种注释是一种集大成者,它包含了上面所说的注释的所有问题。TODO注释在一个项目最初的开发阶段是非常有用的,但这个注释看起来是在好几年前的产品程序里的——它证明了程序有问题。如果程序有问题需要解决,马上解决,不要拖到日后再解决。

    如果你写过这样的注释,或者是你正在寻找一种最好的注释方案,我推荐你读一读Steve McConnell写的Code Complete这本书。这是我推荐给所有程序员必读的六本书中的一种。或者你可以学学如何停止注释你的程序(英文)。


     

    你是否在你的程序里还见到过其它种没有意义的或讨厌的注释?欢迎共享。

    文章来源;http://www.zzvips.com/article/87048.html

  • 相关阅读:
    Leetcode 1489找到最小生成树李关键边和伪关键边
    Leetcode 113 路径总和 II
    hdu 1223 还是畅通工程
    hdu 1087 Super Jumping! Jumping! Jumping!
    hdu 1008 Elevator
    hdu 1037 Keep on Truckin'
    湖工oj 1241 畅通工程
    湖工oj 1162 大武汉局域网
    hdu 2057 A + B Again
    poj 2236 Wireless Network
  • 原文地址:https://www.cnblogs.com/mu-ge/p/14356567.html
Copyright © 2011-2022 走看看