软件设计美学的几个要点

18-11-18 banq
         

软件的总体设计美学:

1)简单:为了每个人的利益,找到最简单的问题形式。这适用于所有级别。简单意味着专注于一件事。这种关注于一件事的自然结果是紧凑性。您可以通过询问“这个问题的哪些陈述包括我们关心的所有内容并排除我们不关心的所有内容?”来找到问题的简单形式。然后“总结该声明中包含的所有数据的简洁方法是什么?”。如果您的问题有任何“复杂性”,那么我们将要将其缩减为许多可以很好地协同工作的简单部分。

2)模块化:将简单的问题陈述划分为一组广义的子问题,这些子问题最容易自然地表达完整的图像。每个子问题由程序逻辑的一个“模块”解决。这有很多好处,但最突出的是它允许您一次关注问题的一个方面。这使得解决复杂问题成为可能,并且可能是普遍“分而治之”战略的基础。

3)正交性:分离是简单性在问题分解中表达的方式。当两个东西是正交的时,它的字面意思是它们是“平行的”,因此可以独立地改变。软件模块的独立性是以最小的努力产生最大杠杆的手段。这些正交模块也应该简单,再一次意味着集中在一件事上。如果这种关注成功,那么模块应该获得表达,可测试性和可重用性的自然清晰度。

4)可组合性:为正交的简单模块设计干净的接口,使它们可以相互配合,也可以与任何其他系统配合使用。在设计接口时,支持简单和通用的i / o格式,旨在为将来调用模块的程序员提供最不令人惊讶的用户体验。使用简洁描述模块的单一焦点的命名约定。