• 如何编写好的代码——《代码之美》读书笔记


      之前看的书都是从大的框架上讨论该如何进行软件开发,涉及的内容比较宽泛。我们知道任何软件都离不开程序,而程序的核心是一行行代码,《代码之美》正是从程序设计的角度出发,告诉我们如何编写好的代码。

     

    何谓好的代码?

    好的代码通常具有以下特点:

    ·紧凑性:代码的功能明确,语言简洁,各部分关联性强。

    ·高效性:代码运行速度快,处理问题的平均时间要尽可能短。

    ·可靠性:代码能对所有可能的情况做出正确的处理。

    ·移植性:代码在各个平台上都能正常运行或不需太多修改便能够运行。

    ·实用性:代码能对问题的绝大部分情况给出令人满意的结果。

    ·扩展性:在代码的基础上添加新的功能相对容易。

     

      回想自己以前写过的代码,几部没有能完全满足上述要求的,毕竟当时只是为了解决眼前的问题,不需要考虑其他各方面的因素,更何况初始条件(如用户输入)往往是有所限制的。可是软件开发提出了更高的要求,只有好的代码才能汇聚成一款令人满意的产品。

     

      作者举了一个正则表达式匹配器的例子。正则表达式匹配就是类似于字符串模式匹配,比如在电脑中搜索文件就是一个正则表达式匹配过程。而现有的正则表达式匹配软件包代码量都比较大,有超过500行的代码,无论是阅读还是理解都有一定的困难。作者的朋友根据作者的需求提供了一个不到40行代码的最小正则表达式软件包,较好的阐释了正则表达式的思想,并且能够识别出一组有用的且重要的类的模式。这段代码虽然采用了递归的思想,但实际使用中回溯的次数不是很多,因此运行时间也比较快,而且其中的三个函数非常简洁,彼此分工明确,协调合作。再者,这段代码的功能是可拓展的,如果要加入新的匹配字符,只需在原有基础上添加其匹配规则即可,而不必要修改其他部分。经过作者的实测,对于95%左右的情况,程序能给出让人满意的匹配结果。所以,这是一个比较好的代码了。

     

      我想,在写一个好的程序之前一定是要有好的规划的,就如同建筑师设计好的蓝图,对建筑师而言最后的结果早已了然于胸,任何一个部分发挥的作用他都十分清楚,这样搭建出来的建筑才能够稳固且美观。在面对一个新的问题,尤其是设计一款优质的软件时,我们更应该事先对问题进行分析,抓住关键并规划好蓝图,这不仅会提高后面的工作效率,也有利于编写简洁高效、稳定可靠的代码。

  • 相关阅读:
    bzoj2595 / P4294 [WC2008]游览计划
    bzoj4698 / P2463 [SDOI2008]Sandy的卡片
    [bzoj3514]Codechef MARCH14 GERALD07加强版
    [bzoj2440][中山市选2011]完全平方数
    [bzoj2243][SDOI2011]染色
    [bzoj2589]Spoj 10707 Count on a tree II
    [bzoj1452] [JSOI2009]Count
    [bzoj2588][Spoj 10628] Count on a tree
    [bzoj2434][Noi2011]阿狸的打字机
    Codeforces Round #408(div.2)
  • 原文地址:https://www.cnblogs.com/Laplace-s-Trap/p/8623751.html
Copyright © 2020-2023  润新知