`
yongtree
  • 浏览: 233938 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

编程的美感(三)--要时装还是正装?

阅读更多

我相信人人都喜欢看时装表演吧,模特们那妙曼的身材,漂亮的脸蛋,加以时髦的时装,真是美丽动人。的确,时装让我们魅力四射,让我们看起来与众不同,为我们赚来了不少的回头率。我们不断的变换我们的服饰,以至于朋友们都认不出自己,这也是一种美丽的尴尬。

张扬个性是一种美丽,但整齐划一也不失一种美感。还记得九九年国庆阅兵式吗?多么威武,多么壮观。各方队统一的服装,整齐的步伐,响亮的口号,展示了军人的英武壮美,我们深深的被这些场面打动着。走到哪里我们只要看到军装,我们就知道这是人民解放军,看到绿色我们知道这是骁勇善战的陆军,看到蓝色我们知道只是展翅在蓝天的雄鹰,看到白色我们隐约听到海军归来汽笛的声音。在我眼里,穿正装的女孩也是分外的漂亮,严肃而不拘谨,整齐而不失个性。

时装和正装都是美的体现,你喜欢哪个呢?

在软件开发中,我们需要张扬个性,发挥个人主观能动性,但是我们更需要协调、规范。我们思考一下,谁能成为我们写的程序的读者呢?第一,我们自己。我们是自己的读者,我们需要经常拿出我们自己的程序进行修改重构,如果代码让我们都难一是从,我们是什么心情?第二,编译器。这是最好伺候的家伙,也是让人头大的家伙。只要你的程序,在逻辑和语法上符合他的口味,它是多么和蔼可亲的家伙。但是,如果你即使少些了一个逗号,在它哪里也通不过,管你是漂亮的代码还是乱作一团糟。第三,其他人。对,我们不能忽视这些读者,在现代的软件开发中团队协作是必不可少的,相互阅读代码也是必须的,想想怎样让这些人能读的懂你的代码这也是非常重要的。看一个例子吧。

int fn(String arg){return ts.getById(arg).getAccessNum()+1;}

我们先不理会这个方法的含义,如果满屏的都是这样的代码,你是什么感觉呢,是不是要崩溃掉。的确,没有缩进,没有分行,杂乱无章。这就是我要阐述的第一个观点,请将你的衣服穿整齐,最好能找到一个合适的格式编排,并坚持使用它。我们现在就来改造它。

public int fn(String arg) {

       return ts.getById(arg).getAccessNum() + 1;

}

       是不是比以前好看多了,K&R式缩进,方法名和方法体分离,代码变得就很清新。

但是我们仍然感到不知所云,我们是不是再想,如果有注释那该多好啊,的确,缺少注释的代码就像一本看不懂字符集,可能只有编译器才能明白,这对于阅读和维护你代码的人来说,无疑是一个梦魇。让我们再来改造它吧。

/**

     * 得到当前文章的阅览量

     * @param arg 文章ID

     * @return

     */

    public int fn(String arg) {

       return ts.getById(arg).getAccessNum() + 1;//得到文章原有访问数将其加一

}

的确,看着注释我们终于明白了这个代码的意思,我们长舒一口气。我们发现注释可能对于编译器毫无用处,它会被忽略,但是对于每个阅读你代码的人来说,你可以让他少花多少大量的时间来阅读你晦涩的代码。作为负责的程序员,我们有义务添加必要的注释。注释是对程序的一种额外的说明,我们不要过度使用注释来描述程序。同时,团队开发一定要有一个注释规范,让所有人的注释都能整齐划一,一目了然。幸好,现在的IDE大部分都有注释模板的功能,让我们可以制定相同的注释模板。同时,像java语言,JavaDoc也有一些强制的规范和标准供我们参考执行。另外值得注意的时候,要及时维护你的注释。我们经常会为一些未实现的方法标注/**该方法稍后实现*/,然而我们再维护了代码以后,却没有及时的更新注释,这必然给其他维护代码的人造成误解和不必要的工作。就上面几行代码却充满了这么多的注释,阅读注释其实也成为一种负担,因为我们是关注的程序本身,而不是注释,怎么做呢?前辈们给我们提出了这样一个概念文学性编程。这的确比较困难,我们不是作家,那么简单一点就是自文档化的编程方法。

我们经常为写文档而发愁,我们是程序员,我们热爱编程,我们不希望每天都要处理那没完没了的文档,还有阅读文档并不能最大程度的提高我们编程的效率,如果你也有这些困扰时,那就开始自文档化编程吧。还是改造上面那段代码。

private final int MAXVISITS=85;//最大访问限制数

    public int addVisitNum(String topicId){

       Topic topic = topicService.getTopicById(topicId);

       if(topic.getVisits()>=MAXVISITS){

           return MAXVISITS;

       }else{

           return (topic.getVisits()==null?0:topic.getVisits())+1;

       }

}

这样的程序,难道还要写过多的注释来说明吗?代码就是注释,这样的代码阅读起来难道不是一种享受吗?既然意识到这一点,那我们就从现在开始书写自文档化的代码吧。

上面说的这些,其实就是我们大家一直在强调的规范问题,现在的软件开发已经不是一个人的游戏,它是一个团队协作配合的结果,每个程序员用程序进行着相互的交流,致力于书写规范的一致性的代码其实是我们迫切需要的。如果您的团队已经有了相应的代码规范,那就坚持使用它,不要轻易更改。如果您的团队还没有相应的规范,参考现行的一些通用规范,再结合自身的实际,花点时间制定自己的规范,对您的团队绝对是有好处的。

要时装还是要正装?我们心里其实已经渐渐明白了,那就为您的团队制定一身合体的正装吧。

2
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics