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统计使用最多的10个命令
# cat /root/.bash_history | awk '{print $1}' | sort | uniq -c | sort -nr | head history 查看命令历史 ...
- 739. Daily Temperatures && 单调栈 && Python collections deque
题目大意 给你接下来每一天的气温,求出对于每一天的气温,下一次出现比它高气温的日期距现在要等多少天 解题思路 利用单调栈,维护一个单调递减的栈 将每一天的下标i入栈,维护一个温度递减的下标 若下一个温 ...
- ssh-key 与 git账户配置以及多账户配置,以及通信方式从https切换到ssh
参考:http://www.cnblogs.com/dubaokun/p/3550870.html 在使用git的时候,git与远程服务器是一般通过ssh传输的(也支持ftp,https),我们在管理 ...
- 对于submit text3运行Python脚本的解决方法
先抛出一些配置信息吧 电脑安装了Python2和Python3两种版本,并且还改了exe文件的名字,可能这与默认的submit text3配置不同了吧,导致错误. 先抛出一些错误吧 首先,自动CTRL ...
- 对于Spring中注入对象失败的问题
1.今天进行了一段代码,经过检查发现config配置文件没问题,注入注解也编写正确,但是RedisTemplate就是会抛出空指针异常. 进过一系列检查发现,其在用户使用该类的时候采用的是new方式创 ...
- C# Winform窗体基础属性
窗口样式: Inco:改图标样式: MaxmizeBox:true:显示右上角最大化按钮: MinmizeBox:true:显示右上角最小化按钮: ShowInco:true:显示左上角小图标: Sh ...
- hihocoder1364 奖券兑换
题目链接 思路 乍一看这是一个01背包的裸题.但是数据范围\(10^5\)是无法承受的. 但是发现\(p_i\)和\(w_i\)只有10,也就是说最多只有100种物品.所以可以对他们进行分组.然后用二 ...
- 爬虫 写入文件时遇到gbk编码错误
#获取视频地址 # 每次请求一次,然后写文件,这样可以规避多次请求触发反爬虫 r = requests.get('https://www.pearvideo.com/video_1522192') h ...
- javase的网络编程(InetAddress,UDP,TCP,URL,Socket,DatagramSocket)
通过一段时间对java网络编程相关内容的学习,写下这篇随笔,对这一部分的知识进行梳理和总结. 网络编程 一.网络编程三要素: IP地址:网络会给每个联网的主机分配一个数字的编码地址,该地址就是IP地址 ...
- Unity 后处理堆
Unity安装后处理的过程:windows---PacageManager---Post Processing Post Processing后处理堆需要知道要修改那个相机渲染的内容,先定位到相机,再 ...