神在细节之处!
1、名副其实,减少代码的模糊度
如消逝的日期以日记:int eclapsedTimeInDays
自创建来的时间以日记:int daysSinceCreation
2、避免误导性
避免使用与本意相悖的命名,如List,除非变量真是List不然会引起误导,同时不要命名两个变量差异很小的变量,容易混淆。
3、做有意义的区分
避免以数字系列命名,如 char a1[], char a2[]这种作为函数的参数别人也很难理解作者的意图,如果能用具体的对象名称命名则会容易理解多了。
避免使用难以区分的命名,如getClass()与getClassInfo,这样的命名很难区分本意。
4、使用读的出来的命名
不要用中文拼命(多音字那么多怎么理解得完)、不要用英文首字母拼(很难理解)但是可以用大家都明白的英文缩写。
如:Date kaiShiShiJian 跟 Date startTime 哪个更好理解?
5、使用可搜索的名字
名称的长短应与其作用域相对应。你的变量作用域越大变量名应越长,因为可能在此变量的作用域的子方法中存在与该变量名类似命名(如在该变量名基础上加长了),那么你搜索该变量时会搜索到这些类似变量的地方去,这是你不希望看到的结果。特别像‘e’,'i'这种单字母变量仅仅适合作为短方法的本地变量,如for循环。
6、类名
类名应该是名词或名词短语,不能使用动词。同时应该避免可识别度不高的的名词,如Data、Info等。
7、方法名
方法名应该为动词或动词短语。如savaCustomerInfo()、postPayment()等,常用的前缀有:set、get、delete、post、is等
重载构造器时,可以用描述了参数的静态工厂方法名来替代默认构造方法。
如 Complex fulcrumPoint = Complex.FromRealNumber(23.0);
8、避免使用语境不明确的变量
如学生的基础信息:fristName、adress、parentName如果加上语义前缀“stu”就更能清楚这些变量是指学生的个人信息了。
9、优化if else
可以使用创建类的方式来优化if esle这种看起来很邋遢的编程语句:
private void printStudentInfo(string classID)
{
string studentID;
string studentName;
string parentName;
if(classID == '001')
{
// Your Solution Code
}
else if(classID == '002')
{
// Your Solution Code
}
else
{
// Your Solution Code
}
}
//像这种代码你可以在该方法的基础上使用switch case来整理。
//也可以用创建类的方式来整理:
pubic class PrintStudentInfo
{
private string student;
private string studentName;
private string parentName;
public void make(string classID)
{
swtich(classID)
{
case:"001": function1();
case:"002": function2();
...
}
}
//Just For Examble
function1()
{
...
}
...
}