你是否曾在检查代码时碰到一条在你看来多余的注释?在代码中使用注释的目的是提升代码的可读性,以让那些非原始代码开发者能更好地理解它们。

  我甄别出5类让我不胜其扰的注释及5类生成它们的程序员。我希望读过本篇之后,你不会与他们一样坠入同一条河流。作为一项挑战,你不妨把写这5类注释的程序员与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
        } 
    }

  这类程序员对其代码自视甚高,以至于他觉得有必要在每行代码后都要签上自己的大名。应用版本控制系统(VCS)是能知道谁修改了代码,但是乍看之下责任人也不会如此打眼。

  2、过时型程序员

    public class Program 
    { 
        static void Main(string[] args) 
        { 
            /* This block of code is no longer needed
             * because we found out that Y2K was a hoax
             * and our systems did not roll over to 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) 
        { 
            /* This is a for loop that prints the 
             * words "I Rule!" to the console screen 
             * 1 million times each on its own line. It
             * accomplishes this by starting at 0 and 
             * incrementing by 1. If the value of the 
             * counter equals 1 million the for loop
             * stops executing.*/
            for (int i = 0; i < 1000000; i++) 
            { 
                Console.WriteLine("I Rule!"); 
            } 
        } 
    }

  我们都知道编程的基本工作逻辑——这可不是什么“编程入门”!你无需浪费时间解释显而易见的程序工作原理,虽然我们很高兴看到你愿意解释代码的功能——但这不过是画蛇添足。