之前看的书都是从大的框架上讨论该如何进行软件开发,涉及的内容比较宽泛。我们知道任何软件都离不开程序,而程序的核心是一行行代码,《代码之美》正是从程序设计的角度出发,告诉我们如何编写好的代码。
何谓好的代码?
好的代码通常具有以下特点:
·紧凑性:代码的功能明确,语言简洁,各部分关联性强。
·高效性:代码运行速度快,处理问题的平均时间要尽可能短。
·可靠性:代码能对所有可能的情况做出正确的处理。
·移植性:代码在各个平台上都能正常运行或不需太多修改便能够运行。
·实用性:代码能对问题的绝大部分情况给出令人满意的结果。
·扩展性:在代码的基础上添加新的功能相对容易。
回想自己以前写过的代码,几部没有能完全满足上述要求的,毕竟当时只是为了解决眼前的问题,不需要考虑其他各方面的因素,更何况初始条件(如用户输入)往往是有所限制的。可是软件开发提出了更高的要求,只有好的代码才能汇聚成一款令人满意的产品。
作者举了一个正则表达式匹配器的例子。正则表达式匹配就是类似于字符串模式匹配,比如在电脑中搜索文件就是一个正则表达式匹配过程。而现有的正则表达式匹配软件包代码量都比较大,有超过500行的代码,无论是阅读还是理解都有一定的困难。作者的朋友根据作者的需求提供了一个不到40行代码的最小正则表达式软件包,较好的阐释了正则表达式的思想,并且能够识别出一组有用的且重要的类的模式。这段代码虽然采用了递归的思想,但实际使用中回溯的次数不是很多,因此运行时间也比较快,而且其中的三个函数非常简洁,彼此分工明确,协调合作。再者,这段代码的功能是可拓展的,如果要加入新的匹配字符,只需在原有基础上添加其匹配规则即可,而不必要修改其他部分。经过作者的实测,对于95%左右的情况,程序能给出让人满意的匹配结果。所以,这是一个比较好的代码了。
我想,在写一个好的程序之前一定是要有好的规划的,就如同建筑师设计好的蓝图,对建筑师而言最后的结果早已了然于胸,任何一个部分发挥的作用他都十分清楚,这样搭建出来的建筑才能够稳固且美观。在面对一个新的问题,尤其是设计一款优质的软件时,我们更应该事先对问题进行分析,抓住关键并规划好蓝图,这不仅会提高后面的工作效率,也有利于编写简洁高效、稳定可靠的代码。