代码的整洁不只是给别人看的,更多的是给自己看!
作为一个程序员,如果你看到下面这段Java代码,你能有兴趣把这段不到30行的代码看完,看懂这段代码完成什么功能吗?
public class BP {
public void cvt(File i, File o) {
BufferedReader r=null;
BufferedWriter w;
String l, j="[";
String[] p;
try {
r=new BufferedReader(new FileReader(i));
} catch (FileNotFoundException e) {}
try{
while ((l=r.readLine())! =null){
p=l.split(", ");
if(! p[3].equals("fiction")&&! p[3].equals("nonfiction"))continue;
j+="{";
j+="title:\""+p[0]+"\", ";
j+="author:\""+p[1]+"\", ";
j+="pages:\""+Integer.parseInt(p[2])+"\", ";
j+="category:\""+p[3]+"\"";
j+="}, ";
}
try {
r.close();
} catch(IOException e) {}
} catch(IOException e) {}
j+="]";
try {
w=new BufferedWriter(new FileWriter(o));
w.write(j);
w.close();
} catch (IOException e) {}}}
实际上,大多数人只会扫了一眼代码就立即放弃了。因为它对你无关紧要,更因为它不够整洁,可读性差。
作为一个程序员,你开发的代码或多或少都会被要求代码的编写要注重可读性。比如,在各种开发语言的编码规范中都会有注释和注释率的要求,都会有变量命名的要求,以及布局、缩进等格式和排版的要求。这些要求都是为了增加代码的可读性。
因为代码是给人阅读的。
但是,这里一直有个误区。
程序员往往觉得可读性是对别人来说的,组织要求代码具备可读性是为了软件维护的需要。如果代码不具备可读性,维护人员面对着一段没有注释,变量名毫无意义的代码,会如同看一本天书,那对于维护人员就是一场灾难。可是,这并不意味着代码可读性对于开发人员自己就不重要。正相反,让代码具备可读性,首先得到好处的就是编写这段代码的程序员自己。
下图是一个程序员每天工作时间上的分配:
程序员一天的工作时间中只有不到50%的时间是花在编程任务上的。而在编程的时间里面,阅读代码和编写代码的时间比大大超过了10∶1,而实际花在编写代码的极少部分的时间中,80%以上的时间又是在修改或修复已有的代码。如果一天工作8小时,能有5分钟花在编写新代码上就已经不错了。这个结果表明,程序员的工作时间主要不是用于编写代码,而是在理解代码。
所以,如果程序员编写的代码易于理解,可读性好,那就意味着他可以节省很多理解代码的时间,他的工作效率会极大地提高。
作为一个程序员,编写整洁的代码,不是为了别人,更多的是为了你自己!
这正是:
代码整洁易理解,开发维护皆受益
代码不只给人看,更多还是为自己
参考书目:奔跑吧,程序员:从零开始打造产品、技术和团队,作者:[美]叶夫根尼·布里克曼,译者:吴晓嘉,出版社:人民邮电出版社