写点什么

微服务和软件开发目标

  • 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:572175

评论

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

揭秘ChaosBlade CPU故障:实现CPU故障的黑科技

柠檬汁Code(binbin0325)

源码分析 cpu 混沌工程 ChaosBlade 故障模拟

内部Java内存模型与硬件层面内存模型的关系是什么?

java易二三

Java 编程 程序员 硬件 计算机

广东省《5A物理抗菌纺织品》团体标准颁布

极客天地

Sugar BI:大模型时代的智能 BI

Baidu AICLOUD

BI 数据智能

超强阵容!HarmonyOS极客马拉松2023专家评审团来袭!

HarmonyOS开发者

HarmonyOS

一种配置化的数据脱敏与反脱敏框架实现 | 京东云技术团队

京东科技开发者

数据安全 脱敏 数据脱敏 企业号 7 月 PK 榜

高性能、高扩展、高稳定:解读 EasyMR 大数据组件自定义可扩展能力

袋鼠云数栈

大数据 大数据组件

REST API 版本控制:高效管理

Apifox

程序员 RESTful API REST API API 测试

2023开源数据库排行榜发布,“新晋黑马”瀚高IvorySQL跻身三十强

极客天地

从分片传输到并行传输之大文件传输加速技术

镭速

大文件传输

源码解析Collections.sort ——从一个逃过单测的 bug 说起 | 京东云技术团队

京东科技开发者

排序算法 源码解读 企业号 7 月 PK 榜 Collections.sort

自主AI代理:未来的生产力引擎

互联网工科生

人工智能 AI代理

详解!视频直播源码布谷科技平台搭建开发:录制功能

山东布谷科技

软件开发 视频直播 源码搭建 短视频直播源码 视频录制

支付宝小程序云李铮:科技赋能,敏捷增长

TRaaS

支付宝小程序 小程序云开放 蚂蚁

科研类项目核算的“法、术、器”(二)

用友BIP

项目管理 科研项目

免费SAFe大规模敏捷管理工具

顿顿顿

Scrum #敏捷开发 敏捷开发管理工具 SAFe框架

中文人物关系知识图谱(含码源):中文人物关系图谱构建、数据回标、基于远程监督人物关系抽取、知识问答等应用.

汀丶人工智能

人工智能 nlp 知识图谱 智能问答

数据库集群方案详解

KaiwuDB

KaiwuDB 数据库集群技术

飞桨大模型分布式训练技术

Baidu AICLOUD

飞桨 百度百舸 AI 大底座

火山引擎DataLeap的Data Catalog系统公有云实践 (上)

字节跳动数据平台

大数据 数据中台 数据治理 数据安全 企业号 7 月 PK 榜

基于因果关系知识库的因果事件图谱构建

汀丶人工智能

人工智能 自然语言处理 知识图谱

KaiwuDB 资深解决方案专家周幸骏:打造核心时序引擎,释放数据新价值

KaiwuDB

时序数据 KaiwuDB

浅聊一下大模型

鲸品堂

大模型训练 大模型

Coral Finance 将为 Zepoch 节点空投,Nautilus生态空投季开启

西柚子

万字长文浅析配置对MySQL服务器的影响 | 京东物流技术团队

京东科技开发者

MySQL 数据库 服务器 企业号 7 月 PK 榜 MySQL服务器

明晚直播:可重构计算芯片的AI创新应用分享!

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

618技术揭秘 - 大促弹窗搭投实践 | 京东云技术团队

京东科技开发者

前端 弹窗 xview 企业号 7 月 PK 榜

Java基础之IO流

java易二三

Java 编程 程序员 io 计算机

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