Continuous Design

Continuous Design

https://www.martinfowler.com/ieeeSoftware/continuousDesign.pdf

T
he
rising popularity of refactoring, tools
such as JUnit, and agile methodologies
such as Extreme Programming (XP) has
brought a new style of design into view.
Continuous design
is the process of us-
ing refactoring to continuously improve
a program’s design. Initially a skeptic, I’ve been
experimenting with continuous design for four

years, and it’s changed the way I program

Design Goals in Continuous Design
Continuous design makes change easy by focusing on these design goals:
DRY (Don’t Repeat Yourself):
There’s little duplication.
Explicit:
Code clearly states its purpose, usually without needing comments.
Simple:
Specific approaches are preferred over generic ones. Design pat-
terns support features, not extensibility.
Cohesive:
Related code and concepts are grouped together.
Decoupled:
Unrelated code and concepts can be changed independently.
Isolated:
Third-party code is isolated behind a single interface.
Present-day:
The design doesn’t try to predict future features.
No hooks:
Interfaces, factory methods, events, and other extensibility “hooks”

are left out unless they meet a current need

Cohesive

内聚 -- 相关的代码和逻辑,放在一起。 不要离散存放。

Isolated & Decoupled

去耦合 -- 将无关和不必要的粘连,切除掉。目标为更加内聚。

隔离 -- 将不同内聚的模块, 切分清楚, 将模块之间的接口描述清楚。

原文地址:https://www.cnblogs.com/lightsong/p/8605760.html