Continuous Design
Continuous Design
https://www.martinfowler.com/ieeeSoftware/continuousDesign.pdf
Therising popularity of refactoring, toolssuch as JUnit, and agile methodologiessuch as Extreme Programming (XP) hasbrought a new style of design into view.Continuous designis the process of us-ing refactoring to continuously improvea program’s design. Initially a skeptic, I’ve beenexperimenting with continuous design for fouryears, and it’s changed the way I program
Design Goals in Continuous DesignContinuous 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
去耦合 -- 将无关和不必要的粘连,切除掉。目标为更加内聚。
隔离 -- 将不同内聚的模块, 切分清楚, 将模块之间的接口描述清楚。
Continuous Design的更多相关文章
- DDD:Strategic Domain Driven Design with Context Mapping
Introduction Many approaches to object oriented modeling tend not to scale well when the application ...
- Domain Driven Design and Development In Practice--转载
原文地址:http://www.infoq.com/articles/ddd-in-practice Background Domain Driven Design (DDD) is about ma ...
- Go as continuous delivery tool for .NET
http://simon-says-architecture.com/2014/02/28/go-as-continuous-delivery-tool-for-net/ Following my p ...
- Fitting Bayesian Linear Mixed Models for continuous and binary data using Stan: A quick tutorial
I want to give a quick tutorial on fitting Linear Mixed Models (hierarchical models) with a full var ...
- Android设计和开发系列第二篇:Action Bar(Design)
Action Bar The action bar is a dedicated piece of real estate at the top of each screen that is gene ...
- 论文阅读 | Formalizing Visualization Design Knowledge as Constraints: Actionable and Extensible Models in Draco
1. Introduction 程序员编写的可视化图表与专家眼中的设计标准总存在差距.我们无法每次都向可视化专家咨询设计上的意见,所以我们需求将设计标准,研究成果应用于自动化设计工具的正式框架,这些工 ...
- Comparing Two High-Performance I/O Design Patterns--reference
by Alexander Libman with Vladimir GilbourdNovember 25, 2005 Summary This article investigates and co ...
- TimescaleDB1.3 的新特性——Continuous aggregates: faster queries with automatically maintained materialized views
One characteristic of time-series data workloads is that the dataset will grow very quickly. Without ...
- behavior planning——15.cost function design weightTweaking
Designing cost functions is difficult and getting them all to cooperate to produce reasionable vehic ...
随机推荐
- 每天一个linux命令(1):wc命令
Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数.字数.行数,并将统计结果显示输出. 1.命令格式: wc [选项]文件... 2.命令功能: 统计指定文件中的字节数. ...
- 软硬连接ln
软硬连接Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. [硬连接]硬连接指通过索引 ...
- list根据某个字段去重
方法一:使用Set List<User> newList = new ArrayList<User>(); Set<String> set = new HashSe ...
- 洛谷P4175 网络管理
题意:链上带修第k大. 这毒瘤题...别看题意只有7个字,能把我吊打死... 介绍其中两种做法好了.其实思想上是一样的. 对于每一个点,建立权值线段树,维护它到根路径上的所有权值. 一条路径上的点集就 ...
- A1132. Cut Integer
Cutting an integer means to cut a K digits lone integer Z into two integers of (K/2) digits long int ...
- gradle的安装配置成功标志
gradle主要位于AndroidStudio中 看我的目录 在环境变量里添加用户变量 GRADLE_HOME 然后在环境变量 path 中增加 %GRADLE_HOME%\bin;,如图所示 测试配 ...
- day02作业
1.判断下列逻辑语句的True,False. 1),1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 tru ...
- c#两个listbox怎么把内容添加到另外个listbox
https://bbs.csdn.net/topics/392156324?page=1 public partial class Form1 : Form { public ...
- 高级组件——弹出式菜单JPopupMenu
弹出式菜单JPopupMenu,需要用到鼠标事件.MouseListener必须要实现所有接口,MouseAdapter是类,只写你关心的方法,即MouseAdapter实现了MouseListene ...
- node.js小案例_留言板
一.前言 通过这个案例复习: 1.node.js中模板引擎的使用 2.node.js中的页面跳转和重定向 二.主要内容 1.案列演示: 2.案列源码:https://github.com/45612 ...