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

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

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

  • 相关阅读:
    数据挖掘-基本流程
    ArcGIS GP应用-GP模型服务发布
    ArcGIS GP应用-GP模型创建-缓冲区分析
    Hadoop2的Yarn和MapReduce2相关
    hadoop学习WordCount+Block+Split+Shuffle+Map+Reduce技术详解
    WordCount示例深度学习MapReduce过程
    数组的几种排序算法的实现
    hBase官方文档以及HBase基础操作封装类
    Hive SQL执行流程分析
    Hive SQL的编译过程
  • 原文地址:https://www.cnblogs.com/lightsong/p/8605760.html
Copyright © 2011-2022 走看看