写点什么

对软件架构和企业组织结构的思考

  • 2008-08-01
  • 本文字数:1123 字

    阅读完需:约 4 分钟

大企业的软件架构所面的挑战不但与技术有关,还与企业的组织结构有关。Dan Greenblog 最近在一篇博客里分析了软件架构与高效的组织结构在原则上的相似性,以之回答下面的问题:

企业结构与软件相似在哪里?对于两者的设计,有哪些实践是共通的?

作者特意从一个技术视角的、受环境影响的、特殊的观点入手去逼近所讨论的主题,使这篇文章更切合软件架构。他是这样立论的:

一家组织良好的企业,就像良好架构的软件,被分成一套规整的功能组件,分别承担各不相同的、预先定义的、清楚描述的角色。所有组件都能通过一种共同的、全体约定好的协议互相交流。最后,所有组件都被监控、维护、升级以及必要时被重构或者逐步淘汰。

乍看起来读者似乎只好祈愿自己所在的组织也能像上面说的那样定义良好而且高效。不过上面的一番比较其实是颇有帮助的,因为它阐述了一个威胁到大多数软件架构师的题目——对组织的管理,还点明了一个事实——其实架构师的工具箱里已经有了很多工具可以帮助他们把工作做好。Greenblog 从模块性开始阐述他的四大观点:

模块性可能是一家企业或者一个软件应该具备的最重要的性质。每个节点,不管是软件模块还是一队员工,得到的指令都是在一个大的背景下执行一项非常专门的任务;如果每个节点都能彼此协调,那么整体就能顺畅地运行。

接着谈到契约式设计(Design by Contract)原则和需求管理:

在软件开发里,程序员编写前置和后置条件来确立特定软件组件的角色。有了这些在设计时明确定义的界限,程序员就不太可能在代码里偷偷塞进不符合设计的额外功能。对于企业组织来说也一样,如果团队的使命定义明确,又符合团队成员所具有的技能,那么这个团队就很可能表现出色。如果团队的使命变了,那就要有一些检查取保证团队在新的定义下仍然能够正确地执行其职责。

当然也少不了消息模式:

在一行代码都没写的时候就把通信范式预先筹划好,并且在整个程序中都保持一致,程序员就能在增加新模块的时候给自己省下许多发明新消息系统的麻烦。

通信的概念对模块和团队都适用,团队和模块都会频繁地彼此互动,并且在互动中都要求为异步的、中断驱动的消息定义一套严密的 API,最好还要有一套基于事件的通知系统来处理这些消息。

接下来他谈到了一个严峻而真实的方面——软件和组织都需要重构:

一家公司,或者一个软件,就像任何有生命体一样受到生存法则的支配:适应或者灭绝。市场总是优胜劣汰的,要想始终站在高处就不能静止,只能去拥抱变化。

如果大公司里的软件架构师在求解架构的发展方向时能把网撒得更宽些,把组织的变化也包含在内,把在软件上运用原则也用来管理组织的变化,那么整个系统(包括程序和用户在内)都能取得更大的成功。

查看英文原文: Thoughts On Software Architecture and Corporate Structure

2008-08-01 17:482642
用户头像

发布了 225 篇内容, 共 70.2 次阅读, 收获喜欢 52 次。

关注

评论

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

人工智能与情感分析:理解情感,驱动未来

天津汇柏科技有限公司

情感分析 人工智能’

基于 Three.js 的 3D 模型加载优化

vivo互联网技术

rust webassembly 3D模型 three.js web3d

GPT被封锁了怎么办?轻松获取高质量的数据,训练自己的人工智能和大语言模型。

热爱编程的小白白

Pgsql 全量+增量迁移 tidb7.5

TiDB 社区干货传送门

7.x 实践

解读「快意」大模型关键技术,揭秘实践中的挑战与创新

快手技术

NLP 大模型 #大模型

2024 TDengine 用户大会:顶尖专家带你决胜 AI 新时代

TDengine

参加DevSecOps认证培训 ,掌握安全高效的软件开发

雅菲奥朗

运维 SRE DevSecOps

降低大模型推理87%时延!华为云论文入选顶会USENIX ATC'24

华为云开发者联盟

人工智能 存储 华为云开发者联盟 LLM 企业号2024年7月PK榜

玳数科技集成 Flink CDC 3.0 的实践

Apache Flink

大数据 flink Flink CDC chunjun

tidb源码研究分析日常碰到的bug

TiDB 社区干货传送门

TiDB 源码解读 6.x 实践 TiKV 源码解读

tidb7.5.1压测

TiDB 社区干货传送门

性能测评 7.x 实践

utf8mb4 默认排序规则引起的索引失效

TiDB 社区干货传送门

应用适配 数据库连接

初识langchain:LLM大模型+Langchain实战[qwen2.1、GLM-4]+Prompt工程

汀丶人工智能

AI大模型

江苏企业采购堡垒机推荐哪家?为什么?

行云管家

堡垒机 过等保 江苏

【第七在线】智能推算辅助选品组货 驱动零售品牌业绩增长

第七在线

铜线工厂生产管理MES系统解决方案

万界星空科技

mes 万界星空科技 铜线mes 生产管理软件 铜线工厂

Loopback for Mac:打造专业音频环境,一键开启高效录音之旅!

Rose

什么?for循环也会出问题?

阿里技术

for循环 故障排查

CVPR2024论文解读|对齐人类审美!MPS让图像生成评估更“懂你”

快手技术

开源 #大模型

基于LangChain手工测试用例生成工具

测试人

软件测试

FlagEval 7月榜丨新增29个模型评测结果,智源发布评估技术报告《AI大模型能力全景扫描》

智源研究院

过等保时候常提到的堡垒机是什么?有什么用?

行云管家

等保 堡垒机 等级保护 过等保

FinClip 强势登陆 AWS Marketplace,全球扩展战略迈出关键一步

FinClip

基于LangChain手工测试用例生成工具

测吧(北京)科技有限公司

测试

星辰考古:TiDB v4.0 进化前夜

TiDB 社区干货传送门

版本升级 版本测评 新版本/特性解读

TiDB实践—索引加速+分布式执行框架创建索引提升70+倍

TiDB 社区干货传送门

7.x 实践

基于YMP工具实现Oracle迁移YashanDB

YashanDB

yashandb 崖山数据库 崖山DB

AI心灵伙伴:数业智能心大陆如何提升年轻成人的心理健康?

心大陆多智能体

压力 智能体 AI大模型 心理健康 数字心理

国内大模型LLM选择以及主流大模型快速使用教程[GLM4/Qwen/Baichuan/Coze/Kimi]

汀丶人工智能

AI大模型

降成本,提人效:火山引擎VeDI实验平台架构升级

字节跳动数据平台

大数据 A/B 测试 数字化增长

API Token 是什么?深入介绍与实践指南

Apifox

程序员 安全 Token API

对软件架构和企业组织结构的思考_架构_Mark Figley_InfoQ精选文章