写点什么

微服务和软件开发目标

  • 2015-03-12
  • 本文字数:1092 字

    阅读完需:约 4 分钟

Dan North QCon 伦敦大会的演讲中说,软件的目标就是持续地使筹建时间减至最少以产生积极的商业影响,其他事情都是具体细节。他描述了有关代码推理的方法及其如何适应于微服务架构风格。

对IT 业思想先驱North 来说,软件开发的目标就是创造商业影响,这里引用了Gojko Adzic 在其著作《影响地图》中的流行语。商业影响在组织的内部(比如新客户)或者降低运营成本的效果是可见的。软件开发的目标是实现这一商业影响,或者更具体地最小化筹建时间,即从发现商机到完成解决方案的时间。这样做上几次是容易的,难在持续这样做,这推导出North 前述的软件开发的目标。

North 将代码分为三类,一种是你最新写的并且很熟悉;一种是 North 称其为 fabric 的、每个人都熟悉、代码附有充分的测试和文档;一种是没人熟悉的,依赖不明确且牵一发而动全身。对 North 而言,软件开发中最大的问题是第三类代码,没有人熟悉代表着成本和争端。从 North 的观点得出,代码要么稳定要么干掉,永远不要使其成为第三类,未知的代码。因而,North 搬出了几个模式来支持这一观点并将其引入到微服务之中。

第一种模式是短软件半衰期,参照物理学和不稳定原子衰变之快。North 相信代码应该有一个非常短的软件半衰期,以突显目标明确的代码最重要的是可以被推导的、可以存意使其稳定或将其废弃。他强调,理解的代码的目的是非常重要的。

第二种模式是如我所想(fits in my head),这是引自 James Lewis 的表达。这种模式是关于推理代码能力的;推理大系统的一种方法是将其分解,另一种方法是简化问题或者忽略大的部分而每次关注一个小的特定部分。同样的原理可以用于不同规模上的推理,如何定义一个方法的功能、如何建模一项工程、如何建模通信机制等等。

North 从他的推理中定义了一种架构风格,他称其为可替换的组件架构,通过上下文一致可以很好地将短期软件半衰期和如我所想两种模式结合在一起。所有的组件都是完全可以替换的,它们包装在隐藏内部细节的 API 中,并通过发送消息相互通信。这些组件就像微小的电脑一样传递信息,North 强调了 30 年前 Alan Kay 是如何定义的面向对象(OO)编程的。

微服务可作为一种可替换的组件架构,当优化替换性和一致性时,这两块儿都可以作出每日选择。North 认为使用微服务存在一个概念上的错误,微意味着更小并不总是最好的,更应该是可替换的更好。

查看英文原文: http://www.infoq.com/news/2015/03/microservices-software


感谢丁晓昀对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2015-03-12 00:571965

评论

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

TCC

急需上岸的小谢

11月月更

GoFrame V2真香,我是Get到了高内聚低耦合的点,你呢?

王中阳Go

Go golang 高效工作 学习方法 11月月更

python中封装和继承

乔乔

11月月更

纯原生渲染模式下的uni-App框架通信实战

恒山其若陋兮

前端 11月月更

Ubuntu16(ROS_Kinetic)海康威视网络摄像机(单目)内参标定

Studying_swz

ubuntu 11月月更

[力扣] 剑指 Offer 第四天 - 在排序数组中查找数字

陈明勇

Go 数据结构与算法 力扣 11月月更

聊聊香港优才-续篇(58/100)

hackstoic

香港优才

架构误区系列5:滥用分布式锁

agnostic

分布式锁

FL Studio水果软件V21完整版本全面升级支持简体中文语言界面

茶色酒

FL Studio 水果FL Studio FL Studio 21

架构实战营模块 5 作业

陌生流云

架构实战营

一篇文章彻底理解 HDFS 的安全模式

明哥的IT随笔

hadoop hdfs

网站与应用

我叫于豆豆吖.

11月月更

代码的衡量标准

Lemoon Can

写好代码 好代码的衡量标准

2022-11-19:第二高的薪水。表结构和数据的sql语句如下,输出200,因为200是第二大的。请问sql语句如何写? DROP TABLE IF EXISTS `employee`; CREAT

福大大架构师每日一题

MySQL 数据库 福大大

有限状态机

芯动大师

Verilog 11月月更 Melay FSM

云原生系列 二【轻松入门容器基础操作】

叶秋学长

云原生 华为云 沙箱实验 11月月更

EasyExcel导出数据超过Excel单表上限解决方案

@下一站

大数据 技术 Excel Java core 11月月更

网页基本代码

我叫于豆豆吖.

11月月更

WX微信小程序对于响应的数据绑定和模块化生命周期的实战心得

恒山其若陋兮

前端开发 11月月更

uni-app实战之单击菜单发布->H5的Promise 化在工程项目的实战演练项目心得

恒山其若陋兮

前端 11月月更

kubernetes部署metrics-server

程序员欣宸

Kubernetes k8s 11月月更

极客时间运维进阶训练营第四周作业

忙着长大#

极客时间

Scrum Patterns:产品的自豪感(Product Pride)

Bruce Talk

Scrum 敏捷 Agile Scrum Patterns

OSPF路由协议三

初学者

网络 11月月更

微服务连接:Subset子集划分算法

董哥的黑板报

微服务 云原生 连接 RPC 集群

cap理论和base理论

急需上岸的小谢

11月月更

OSPF高级配置——虚链路介绍与配置

我叫于豆豆吖.

11月月更

精选2022年大厂高频Java面试真题集锦(含答案),面试一路开挂

程序知音

java面试 大厂面试 java架构 后端技术 Java面试八股文

两阶段提交与三阶段提交

急需上岸的小谢

11月月更

数据预处理和特征工程-特征选择-相关性过滤-互信息法 & F检验

烧灯续昼2002

人工智能 机器学习 算法 特征工程 11月月更

【愚公系列】2022年11月 微信小程序-sitemap站内搜索

愚公搬代码

11月月更

微服务和软件开发目标_语言 & 开发_Jan Stenberg_InfoQ精选文章