代码大全学习-5-构建中的设计

本文探讨了构建中的设计问题,强调设计是一个迭代且复杂的过程,涉及本质和附属复杂性的区分。文章指出,处理软件复杂性关键在于组织和减少一次性处理的本质复杂性。高质量设计特征包括最小化复杂性、易维护性、松耦合等。设计应遵循分层原则,减少不必要的交互,以提高可读性和可维护性。
摘要由CSDN通过智能技术生成

第五章是讲构建中的设计 (Design in construction)。

第一节介绍了设计中面临的一些挑战。设计是一个"wicked"的问题,就是需要通过解决或者部分解决才能定义清楚的问题。作者特别举了Tacoma Narrows大桥的例子来说明,不等到这个桥被建好,并被风吹倒,设计者根本不会知道设计的时候还要考虑风的影响。设计也是一个"Sloopy"的过程,过程中会犯错,一个好的方案和一个不好的方案可能只有很小的区别,很难知道什么时候是足够好可以完成设计了,很多情况下,往往是没有时间的时候就完成了。设计中会涉及到各种取舍和优先级的高低,有各种限制和约束。设计也没有一个决定性的正确答案,有时候会有很多可行的方案,这就导致它是一个启发式的过程,其中包含了不断的试错。用一个词来概括就是"Emergent"。设计方案不会一下子从某个人的脑海里蹦出来,它需要不断的评审,非正式的讨论,可能要写一些代码,修改一些代码,不断重复这个过程才能得到一个比较好的方案。

第二节讲了设计中最重要的三个观念:处理复杂性(Complexity),高质量的设计特征,设计的层次。

先说复杂性的处理。这是软件最主要最需要处理的东东。这里要说明一下什么是复杂性。事物的属性可以分为两类:一类是本质的(Essential),一类是附属的(Accidential)。本质的属性就是一种事物必须具有以成为这种事物的属性,就像汽车一定会有发动机一样,没有发动机就不能叫汽车。附属的属性就是可有可无,不影响这种事物就是这

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值