zoukankan      html  css  js  c++  java
  • 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

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

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

  • 相关阅读:
    响应码异常HttpStatus not ok!statusCode:307
    SpringBoot的web项目使用JRebel启动错误
    SpringBoot启动遇到的找不到spring模块的怪事
    Redis(一)
    Redis一主二从Sentinel监控配置
    Redis命令
    IDEA
    sql server常用函数积累
    char,varchar和nvarchar有什么区别?
    SQL SERVER里的锁机制
  • 原文地址:https://www.cnblogs.com/lightsong/p/8605760.html
Copyright © 2011-2022 走看看