设计“简单而愚蠢”的原因

时间:2019-05-04 16:55:35

标签: architecture software-design design-principles

我目前正在学习软件工程测试。研究重点之一是要知道为什么要使用“简单而愚蠢”的设计原理。

我知道这在阅读别人的代码时很有用,但是还有其他重要原因可以遵循此原则吗?

1 个答案:

答案 0 :(得分:1)

所有设计原则都通过影响设计者来发挥作用,以使所需设计的系统最大化并降低其性能。就软件工程而言,这些措施包括最大化内聚力,最小化耦合和最小化复杂度

凝聚力是表示相关构想属于同一属性的属性。如果您有一个由笛卡尔坐标X,Y和Z组成的点,则最好将所有三个值放入同一集合或对象中。如果您有由极坐标定义的点,它们也属于同一点-但可能与笛卡尔坐标不在同一个对象中。

耦合是不相关的事物相互依赖的属性。一条线取决于两点,但不应取决于颜色,所有者或其他任何东西。请注意,如果您定义包含两个点的线,则无论这些点是定义为笛卡尔坐标系还是极坐标系,它仍然是一条线。或具有一,二,三甚至更多的轴。松散耦合可确保无论您如何指定单个点,线都不会改变。

复杂度是代码的属性,用于衡量代码包含的决策数。复杂度越高,测试就越困难;测试越难,包含错误的机会就越高。较小的模块具有较少的测试决策路径。

“简单而愚蠢”是一种思考驱动所需设计的这些属性的方法。 “简单”表示“高度凝聚力”-不要仅仅因为可能存在关联就一直向其添加内容-确保它们实际上属于同一类。愚蠢的意思是“低复杂度”-不要聪明,将所有逻辑打包到一个函数中。将您的问题分解为较小的方法,并以可测试的细节进行描述。

如果遵循这些原则,您最终可能会获得更高质量的代码。可读性(如上所述)只是质量的一个方面(但很重要);正常运作是另一回事;和可测试性一样。