2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

微服务和软件开发目标

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

评论

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

【LeetCode】整数转罗马数字Java题解

Albert

算法 LeetCode 5月日更

css与less,sass的奇妙之旅

less SASS

Spark RDD详解

大数据技术指南

大数据 spark 5月日更

区块链技术如何成为中国数字化转型最新驱动力

CECBC

区块链

两个开源免费的软件Typora和PicGo,成了我写东西的新宠。

彭宏豪95

写作 Typora 图床 5月日更

打破固有思维(九)

Changing Lin

Serverless:这真的是未来吗?(一)

Serverless Devs

运维 云原生 服务器 #Serverless

如何从Docker镜像提取Dockerfile?

运维研习社

Docker Dockerfile 5月日更

夯实信任基础 区块链正在成为价值互联网的新代言

CECBC

区块链技术如何助力构建新能源系统

CECBC

解读SSDB、LevelDB和RocksDB到GaussDB(for Redis)的迁移

华为云开发者联盟

数据仓库 华为云 数据迁移 GaussDB(for Redis) PB级数据库

深入浅出,Andorid 端屏幕采集技术实践

拍乐云Pano

android 音视频

ELK协议栈基本介绍

五分钟学大数据

大数据 5月日更

iOS 面试策略之系统框架-UIKit

iOSer

ios 面试 语言 & 开发 系统框架

canvas从零到一,实际案例

Vue 海报 js ts canvas

带你彻底搞懂高性能网络模式Reactor 和 Proactor

华为云开发者联盟

reactor Proactor 网络编程模式

区块链新基建时代 看欧科云链如何助力数字经济产业升级

CECBC

数字经济

区块链创新包含基础技术和应用场景两个层面

CECBC

WAVE SUMMIT 2021 深度学习开发者峰会定档5月20日

百度大脑

深度学习 飞桨

python变量、运算符

若尘

变量 运算符 Python编程 5月日更

智能家居商业模式:To C向左,To B向右

不脱发的程序猿

IoT 智能家居 智能家居商业模式

Kubernetes入门——Kubernetes日志采集与监控告警

百度开发者中心

百度 Kubernetes 云原生 kubernetes入门 技术课程

情场失意的我,幸获师兄捞了一把,助我拿到6个大厂offer,Java岗

Java架构师迁哥

据说学会这款数据分析工具,会被各大名企高薪哄抢!

博文视点Broadview

太现实了!2021年阿里+腾讯+快手offer都已拿到!值得一看

欢喜学安卓

android 程序员 面试 移动开发

个人/团队/企业/组织申请计算机软件著作权的流程

不脱发的程序猿

程序人生 专利 软著申请 计算机软件著作

最强阿里巴巴历年经典面试题汇总:C++研发岗

linux大本营

c++ Linux epoll 服务器开发

不服不行!腾讯、阿里Android高级面试真题汇总,成功入职阿里

欢喜学安卓

android 程序员 面试 移动开发

如何防止抄袭PCB电路板

不脱发的程序猿

嵌入式 如何防止抄袭PCB电路板 PCB电路板 硬件开发

数据中心太耗电,送你一个节能神器

华为云开发者联盟

数据中心 节能 电费 NAIE 制冷

☕【Java技术之旅】走进线程池的世界(基础篇)

码界西柚

Java 线程 线程池 线程池工作原理 5月日更

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