zoukankan      html  css  js  c++  java
  • 程序员修炼之道---读书随笔2

         熵是一个来自物理学的概念,指的是某个系统中的“无序”的总量。当软件中的无序增长时,程序员们称之为“软件腐烂”(software rot)。

    有许多因素可以促生软件腐烂。其中最重要的一个似乎是开发项目时的心理(或文化)。

         不要留着程序中的“破窗户”不修,低劣的设计,临时的糟糕的方案等等。而往往我们又面对着诸多的“现实”,没时间重构,重构风险大没资源测试。

    可是我们会永远生活在“现实”里面,不可能有某一天万事具备、良辰吉日等着让你开始着手去修理这些“破窗户”。

         我们可以借助自动测试等手段来帮助我们降低风险。如果真的没办法立即修复,请一定要做到:把发现的“破窗户”记入TODO List,并且定期Review它。

    他是一个富得让人讨厌的富翁,拥有一所完美、漂亮的房子,里面满是无价的古董、艺术品,以及诸如此类的东西。

         有一天,一幅挂毯挂得离他的卧室壁炉太近了一点,着了火。消防人员冲进来救火——和他的房子。

    但他们拖着粗大、肮脏的消防水管冲到房间门口却停住了——火在咆哮——他们要在前门和着火处之间铺上垫子。

    这的确是一个极端的事例,但我们必须以这样的方式对待软件。如果你发现你所在团队和项目的代码十分漂亮——编写整洁、设计良好,并且很优雅——你就很可能

    会格外注意不去把它弄脏,就和那些消防员一样。即使有火在咆哮(最后期限、发布日期、会展演示,等等),你也不会想成为第一个弄脏东西的人。

    给予计算机两项自相矛盾的知识,是James T. Kirk舰长(出自Star Trek,“星际迷航”——译注)喜欢用来使四处劫掠的人工智能生命失效的方法。

    遗憾的是,同样的原则也能有效地使你的代码失效。

         我们觉得,可靠地开发软件、并让我们的开发更易于理解和维护的惟一途径,是遵循我们称之为DRY的原则:系统中的每一项知识都必须具有单一、无歧义、权威的表示。

    重复是代码中最坏的味道,大家可以回想一下,有多少Bug是因为重复代码漏改引起的,修改重复代码又浪费了多少时间。这么坏的东西一定要深恶痛绝!

    书中归纳了常见的重复类型:

    强加的重复(imposed duplication)。开发者觉得他们无可选择——环境似乎要求重复。

     

  • 相关阅读:
    55. 跳跃游戏
    45. 跳跃游戏 II
    对称的二叉树
    字符型图片验证码,使用tensorflow实现卷积神经网络,进行验证码识别CNN
    python版本升级及pip部署方法
    Two Sum [easy] (Python)
    工作中常用的linux命令(持续更新)
    PAT-1001. 害死人不偿命的(3n+1)猜想 (15)
    C++二维数组的动态声明
    19. Remove Nth Node From End of List(C++,Python)
  • 原文地址:https://www.cnblogs.com/yuji5656/p/4453969.html
Copyright © 2011-2022 走看看