0%

如何降低软件的复杂性?

2019年12月15日 下午10:49
如何降低软件的复杂性? - 阮一峰的网络日志

  1. 复杂性的来源主要有两个:代码的含义模糊和互相依赖。
    • 模糊指的是,代码里面的重要信息,看不出来。依赖指的是,某个模块的代码,不结合其他模块,就会无法理解。
    • 复杂性的危害在于,它会递增。你做错了一个决定,导致后面的代码都基于前面的错误实现,整个软件变得越来越复杂。”我们先把产品做出来,后面再改进”,这根本做不到。
  2. 复杂性的隔离
    • 降低复杂性的基本方法,就是把复杂性隔离。“如果能把复杂性隔离在一个模块,不与其他模块互动,就达到了消除复杂性的目的。”
  3. 接口和实现:
    • 模块分成接口和实现。接口要简单,实现可以复杂。
  4. 减少抛错
    • 有些软件设计者喜欢抛错,一遇到问题,就抛出一个 Exception。这也导致了复杂性,用户必须面对所有的 Exception。”反正我告诉你出错了,怎么解决是你的事。”
    • 正确的做法是,除了那些必须告诉用户的错误,其他错误尽量在软件内部处理掉,不要抛出。