码迷,mamicode.com
首页 > 其他好文 > 详细

软件复杂性

时间:2018-09-15 12:25:02      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:lex   blog   就会   互动   可见   .com   接口   www   round   

 参考文章:

阮一峰:http://www.ruanyifeng.com/blog/2018/09/complexity.html

 

软件复杂性:

  • 软件设计的最大目标,就是降低复杂性。 所谓复杂性,就是任何使得软件难于理解和修改的因素。
  • 复杂性的来源主要有两个:代码的含义模糊 和 互相依赖
  1. 模糊指的是,代码里面的重要信息,看不出来。
  2. 依赖指的是,某个模块的代码,不结合其他模块,就会无法理解。
  • 复杂性的危害在于,它会递增。你做错了一个决定,导致后面的代码都基于前面的错误实现,整个软件变得越来越复杂。"我们先把产品做出来,后面再改进",这根本做不到。

如何降低复杂性:

  • 降低复杂性的基本方法,就是把复杂性隔离。"如果能把复杂性隔离在一个模块,不与其他模块互动,就达到了消除复杂性的目的。"
  • 改变软件设计的时候,修改的代码越少,软件的复杂性越低。
  • 复杂性尽量封装在模块里面,不要暴露出来。如果多个模块耦合,那就把这些模块合并成一个。

接口和实现:

  • 模块分成接口和实现。接口要简单,实现可以复杂
  • 好的设计是,大量的功能隐藏在简单接口之下,对用户不可见,用户感觉不到这是一个复杂的 class。

对用户减少抛错:

  • 除了那些必须告诉用户的错误,其他错误尽量在软件内部处理掉,不要抛出。

 

软件复杂性

标签:lex   blog   就会   互动   可见   .com   接口   www   round   

原文地址:https://www.cnblogs.com/sunshine-blog/p/9650401.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!