写点什么

微服务和软件开发目标

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

评论

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

Nessus Professional 10.8 | 10.6 Auto Installer for RHEL 9, AlmaLinux 9, Rocky Linux 9 (updated May 2025)

sysin

Nessus

Nessus Professional 10.8 | 10.6 Auto Installer for Windows (updated May 2025)

sysin

【HarmonyOS 5】金融应用开发鸿蒙组件实践

GeorgeGcs

01.数组深入浅出分析

杨充

Nessus Professional 10.8 | 10.6 Auto Installer for Ubuntu 24.04 (updated May 2025)

sysin

Nessus

阿里云 Serverless 助力海牙湾构建弹性、高效、智能的 AI 数字化平台

阿里巴巴云原生

阿里云 Serverless 云原生

AI 多 Agent 开发未来:iVX IDE 的 AST 架构与主流产品的模型优化路径

代码制造者

AI 编程

再看2025大模型风云变幻,深根者立于终局

脑极体

AI

AI存储需求的演进与ScaleFlux的应对

ScaleFlux

数据中心 企业级NVMeSSD 存储优化

秒懂 AI Agent:概念、能力与智能体差异全解析

Techinsight

agent #人工智能 人工智能、

MySQL 可观测性最佳实践

观测云

MySQL

实战:Dify智能体+Java=自动化运营工具!

王磊

腾讯推出端到端语音通话模型「混元 Voice」,1.6 秒响应;实时转录工具集体爆发丨日报

声网

一站式等保服务

黑龙江陆陆信息测评部

重拾童年,用 CodeBuddy 做自己的快乐创作者

不惑

CodeBuddy首席试玩官

Arthas dashboard(当前系统的实时数据面板)

刘大猫

人工智能 监控 Arthas 监控工具 dashboard

Artgee Q2 完成战略拼图:技术 + 理财 + 跨境支付全布局

股市老人

RECCV检测人脸伪造项目尝试与扩展

溪抱鱼

人工智能 大数据 人脸识别

#放码来战.端云一体化开发#HarmonyOS 5 【农民叔叔】02.核心功能操作路径及ModelArts AI图像识别技术

与辉鸿蒙

HarmonyOS HarmonyOS NEXT

天润融通:Agent驱动的人效革命,引领客户服务智能化转型

天润融通

鸿蒙仓颉开发语言实战教程:实现商城应用首页

幽蓝计划

Arthas thread(查看当前JVM的线程堆栈信息)

刘大猫

JVM 监控 Thread Arthas 监控工具

【CodeBuddy】三分钟开发一个实用小功能之:动态文字路径动画

jimaks

CSS

企业为什么要实施信息化体系建设

优秀

企业信息化 信息化 信息化系统

小红书私信如何高效管理?天润融通一站式客服解决方案来了!

天润融通

时光有节,岁月有气,用 CodeBuddy + 地图 MCP 构建二十四节气

不惑

CodeBuddy首席试玩官

鸿蒙 HarmonyOS NEXT 系统 Preference 首选项使用全解析

威哥爱编程

HarmonyOS HarmonyOS NEXT Harmony5

Nessus Professional 10.8 | 10.6 Auto Installer for macOS Sequoia (updated May 2025)

sysin

Nessus

《算法导论(第4版)》阅读笔记:p101-p114

codists

算法

#放码来战.端云一体化开发#HarmonyOS 5 【农民叔叔】01.人工智能AI诊断分析农作物病虫害APP介绍

与辉鸿蒙

HarmonyOS NEXT 端云一体化 HarmonyOS5.0

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