• 代码大全读后感之二


      为变量命名时最重要的考虑事项是,该名字要完全、准确地描述出该变量所代表的事物。

    currentDate和todaysDate都是很好的名字,因为它们都完全而且准确地描述出了“当前日期”

    这一概念。事实上,这两个名字都用了非常直白的词。程序员们有时候会忽视这些普

    通词语,而它们往往却是最明确的。cd和c是很糟的命名,因为它们太短,同时又不具有

    描述性。current也很糟,因为它并没有告诉你是当前的什么。date看上去不错,但经过最

    后推敲它也只是个坏名字,因为这里所说的日期并不是所有的日期均可,而只是特指当前日

    期;而date本身并未表达出这层含义。x、x1和x2永远是坏名字——传统上用x代表一个

    未知量;如果你不希望你的变量所代表的是一个未知量,那么请考虑取一个更好的名字吧。

     名字应该尽可能地明确。像x、、i这些名字都泛泛得可以用于多种目的,它们并

    没有像应该的那样提供足够信息,因此通常都是命名上的败笔。有人也许会反驳说,把

    i用作循环下标是最正常不过的了,难道非得写成indexOfTheLoop这种又臭又长的名字才算

    好吗?Steve McConnell认为,如果循环只有寥寥数行,而且只是单层循环,那么用

    i是也是可行的。不过试想一下,如果你一直习惯用i作循环下标,

    而你将来可能需要把这个循环放到另一个循环中去执行,即循环嵌套,

    那么内外层循环都用i作下标肯定是不行的。如果编译器提醒你说变量

    i重复定义,那还算走运;如果编译器默不作声,而你自己又忘了修改,

    呃,你听见虫子飞舞的声音了吗?由于代码会经常修改、扩充,或者复制到其他程序中去,

    因此很多有经验的程序员索性不使用类似于i这样的名字。如果循环不是只有几行,

    那么代码阅读者会很容易忘记i本来具有的含义,因此最好给循环下标换一个更有意义的名字。

    导致循环变长的常见原因之一是出现循环的嵌套使用。如果你使用了多个嵌套的循环,那么就应该给循环变量赋予更长的名字以提高可读性:

     for (int teamIndex = 0; teamIndex < teamCount; teamIndex++)

       for 

       (int eventIndex = 0; eventIndex < eventCount[teamIndex]; eventIndex++)

      { 

            score[teamIndex][eventIndex] = 0; 

       } 

    谨慎地为循环下标变量命名可以避免产生常见的下标串话(index cross-talk)问题:

    想用j的时候写了i,想用i的时候却写了j。同时这也使得数据访问变得更加清晰:

    score[teamIndex][eventIndex]要比score[i][j]给出的信息更多。

     如果你一定要用i、j、k,那么不要把它们用于简单循环的循环下标之外的任何场合—

    —这种传统已经太深入人心了,一旦违背该原则,将这些变量用于其他用途就可能造成误解。

    要想避免出现这样的问题,最简单的方法就是想出一个比i、j、k、更具描述性的名字来。

     变量名的最佳长度似乎应该介于x和maximumNumberOfPointsInModernOlympics

    之间。太短的名字无法传达足够的信息。诸如x1和x2这样的名字所存在的问题是,

    即使你知道了x代表什么,也无法获知x1和x2之间的关系。太长的名字很难写,同时也会使得程序的视

    觉结构变得模糊不清。当研究发现,当变量名的平均长度在10到16个字符的时候,

    调试程序所需花费的气力是最小的。平均名字长度在8到20个字符的程序也几乎同样容易调试。这项原则并不意味着

    你应该尽量把变量名的长度控制在9到15或者10到16个字符。它强调的是,如果你查看

    自己写的代码时发现了很多更短的名字,那么需要认真检查,确保这些名字含义足够清晰。

     

  • 相关阅读:
    软件测试 Lab1 实验报告
    软件测试 Homework2
    谈谈最近的一个让我印象深刻的错误
    Bill Manager Problem Statement
    C#学习记录(九)Windows Phone开发中的Binding
    C#学习记录(八) XML Serializer尝试
    C#学习记录(七)LINQ语句及LAMDA表达式
    C#学习记录(六)
    软件测试之作业三
    软件测试之实验一
  • 原文地址:https://www.cnblogs.com/littilsaber/p/4390797.html
Copyright © 2020-2023  润新知