OceaBase开发者大会落地上海!4月20日共同探索数据库前沿趋势!报名戳 了解详情
写点什么

“循序渐进”,架构演化的敏捷应对之道

  • 2009-02-03
  • 本文字数:618 字

    阅读完需:约 2 分钟

Kent Beck 最近撰写了《由一而多》一文,说明如何应用“循序渐进(Succession)”过程进行软件设计。“循序渐进”这种技巧,可以用来帮助系统架构从“只满足现有需求”演化到最终需要的状况。文中例举的系统,现在每天只需处理一笔事务,而将来需要处理许多笔事务。

一般来说,极限编程社区喜欢根据实际需求使用“简单设计”和可演化的架构。其中的例子包括:

Kent 的例子中,客户不知道多笔事务应该以何种规则处理。虽然开发人员可以做出一些猜测,尝试使用某种类型的 API 和底层架构处理多事务情况,可这些猜测却不一定是最理想的。团队和客户就要为开发目前尚未需要的功能付出代价。而且,团队和客户在将来还会再次付出,要么就得忍受基于猜测的设计,要么就得重写代码、修正设计。Kent 指出:未来开发人员还可能基于 API 认为目前的代码已经具备处理多事务的能力,这也是一种风险。

Kent 现在倾向于创建一个能够满足最低限度要求的设计,然后使用一种他称之为“循序渐进(Succession)”的流程来使设计演化。他的文章中描述了一种名为“由一而多”的 Succession 类型的实现过程,其中可以安全地让代码从处理单个事务转为处理事务列表。

您会一开始就设计、实现支持多事务处理的系统吗?不管选择是或否,请说出您的原因。请留下您的评论并共享您的想法。

查看英文原文: Succession, an Agile Approach to Evolving Architecture

2009-02-03 07:491565
用户头像

发布了 479 篇内容, 共 152.3 次阅读, 收获喜欢 47 次。

关注

评论

发布
暂无评论
发现更多内容

React源码分析2-深入理解fiber

flyzz177

React

从零手写react-router

helloworld1024fd

JavaScript

SOA 和微服务有何区别?

江南一点雨

Java 微服务 springboot SOA

React源码分析3-render阶段(穿插scheduler和reconciler)

flyzz177

React

22道js输出顺序问题,你能做出几道

loveX001

JavaScript

2023前端二面常考面试题合集

loveX001

JavaScript

vivo 故障定位平台的探索与实践

vivo互联网技术

根因分析 聚类 K-Means 二阶指数

分布式是大数据处理的万能药?

jiangxl

前端二面经典vue面试题指南

bb_xiaxia1998

Vue

恭喜 OpenSergo 获得中国开源云联盟 2022 “优秀开源项目”

阿里巴巴云原生

阿里云 开源 云原生 OpenSergo

React面试:谈谈虚拟DOM,Diff算法与Key机制

beifeng1996

React

京音平台-一起玩转SCRM之电销系统

京东科技开发者

架构设计 系统 scrm 企业号 1 月 PK 榜 电销

高级前端常考手写面试题合集

helloworld1024fd

JavaScript

前端leetcde算法面试套路之回溯

js2030code

JavaScript LeetCode

大厂前端面试考什么?

loveX001

JavaScript

react的jsx和React.createElement是什么关系?面试常问

beifeng1996

React

React源码解读之任务调度

flyzz177

React

WWW 是否应该属于 URL?

devpoint

Cookie url SEO www

百度前端经典vue面试题整理

bb_xiaxia1998

Vue

前端必会手写面试题合集

helloworld1024fd

JavaScript

醉三皇成为第12届北京国际网络电影展官方指定用酒品牌

联营汇聚

React源码分析4-深度理解diff算法

flyzz177

React

用javascript分类刷leetcode9.位运算(图文视频讲解)

js2030code

JavaScript LeetCode

前端高频react面试题整理

beifeng1996

React

面试官:说说Event Loop事件循环、微任务、宏任务

loveX001

JavaScript

社招前端react面试题整理

beifeng1996

React

每日一题之Vue数据劫持原理是什么?

bb_xiaxia1998

Vue

从零开始实现一个Promise

helloworld1024fd

JavaScript

React源码解读之更新的创建

flyzz177

React

React源码解读之React Fiber

flyzz177

React

前端leetcde算法面试套路之堆

js2030code

JavaScript LeetCode

“循序渐进”,架构演化的敏捷应对之道_研发效能_Chris Sims_InfoQ精选文章