读书笔记:《代码大全第2版》 02.创建高质量的代码之软件构建中的设计

软件构建中的设计

1、软件设计的特征与挑战

软件的设计是一个“险恶”的问题,所谓“险恶”就是你必须首先把这个问题"解决"一遍以便能够明确地定义它,然后才能再次真正地解决该问题,这是软件设计的一大挑战。

同时,软件设计无法判断设计到何种程度才是“足够好”了。而且,软件设计存在着诸多限制,比如资源等。你需要在这些限制中做出选择与平衡,所以没有好的设计或不好的设计,只有适合的设计。

合适的设计不是一蹴而就的,是不确定的、演进式的,不断探索、演练、推到、总结而形成的。

满足同一个需求,不同的人会设计出完全不同的设计,所以,设计又具有不确定性。

2、管理复杂度

人的大脑处理能力有限,无法同时关注太多东西,关注东西太多将会导致某些遗漏和混乱。比如,同时让你忙的太多东西,你肯定会丢三落四!虽然你忙的焦头烂额的,但结果却是不尽人意。

就像是玩杂耍:抛在空中的球两个是比较容易控制,增加复杂度两个以上球难度会增大很多很多。在代码设计过程中也是如此,如果关注的太多,将会越复杂,越复杂手忙脑乱势必会造成遗漏导致错误发生。需要同时关注的事情或者逻辑太多是不可取的,但是该软件中存在诸多逻辑和复杂的事情是不可避免的。为了保证代码的各方面性能,应该降低管理复杂度!

如何降低管理复杂度:

  • 减少在同一时间所关注的本质复杂度的量
  • 避免生成不必要的偶然复杂度

3、好的设计所具有的特征

这些目标之间有时会相互抵触,所以需要在这些目标中做出一套最好的折中方案,这正是设计的挑战与魅力。

  • 最小的复杂度(Minimal complexity)

    • 在设计时应该只专注于程序的某一部分,安心
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值