NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

    阅读完需:约 4 分钟

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

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

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

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

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

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

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

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

当然也少不了消息模式:

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

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

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

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

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

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

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

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

关注

评论

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

玩转云端| 如何防爬虫?天翼云边缘安全加速平台AccessOne带你涨姿势!

天翼云开发者社区

云计算 网络安全 云服务 云平台

上云有道 | 一图读懂天翼云边缘安全加速平台AccessOne!

天翼云开发者社区

边缘计算 云服务 云平台 边缘安全

测试要失业了?

禅道项目管理

团队管理 软件测试 测试 项目管理软件

揭秘高级控件技巧:让您的App与众不同

测试人

软件测试

Mac全面战争:罗马重制版 Total War ROME REMASTERED 2.0.5中文版

iMac小白

为什么选择霍格沃兹测试开发学社Python全栈开发与测试班?

霍格沃兹测试开发学社

玩转云端| AccessOne实用窍门之三步搞定门户网站防护与加速

天翼云开发者社区

云计算 网络安全 云服务

企业号 4月 PK 榜,火热开启!

极客时间

热门活动 企业号 4 月 PK 榜

Studies for Mac 1.8.7激活版 学习卡工具

iMac小白

Studies for Mac下载 Studies for Mac激活版

NFTScan | 03.25~03.31 NFT 市场热点汇总

NFT Research

NFT\ NFTScan nft工具

SpringBoot多环境配置

EquatorCoco

Java 数据库 Spring Boot

探索GaussDB(DWS)湖仓融合:Hudi与元数据打通的深度解析

华为云开发者联盟

数据库 华为云 华为云开发者联盟 华为云GaussDB(DWS) 企业号2024年4月PK榜

App自动化测试:高级控件交互方法

霍格沃兹测试开发学社

「天工大模型3.0」将于4月17日发布 同步开源4000亿参数MoE超级模型

新消费日报

MegaSeg Pro for Mac v6.3.1注册激活版 音视频DJ混音工具

iMac小白

实例演示如何使用CCE XGPU虚拟化

华为云开发者联盟

开发 华为云 华为云开发者联盟 华为云CCE 企业号2024年4月PK榜

Flink Checkpoint 机制深度解析:原理、注意事项与最佳实践

木南曌

flink 实时计算

科技改变财务规划:提升企业对自动化技术的管理

智达方通

企业管理 财务分析 财务规划与分析

Redis开源协议调整,我们怎么办?

华为云PaaS服务小智

redis 华为云

大型企业通常如何进行单元测试?

派大星

单元测试 JUnit 测试覆盖率

吴晓波频道:构建知识付费领域的数据飞轮

字节跳动数据平台

大数据 企业号2024年4月PK榜 #数据飞轮

制造业工厂为什么需要生产管理MES系统

万界星空科技

制造业 智能制造 mes 万界星空科技

了解 Websocket 断连技巧:易懂的实战指导

Apifox

程序员 后端 网络协议 websocket 网络通信

xz工具供应链后门事件 紧急处理

徐凌云

用友陈强兵:企业数智化进入“加速期”

ToB行业头条

Valentina Studio Pro for Mac v13.9.1激活版 专业数据库管理软件

iMac小白

base链市值机器人

区块链技术

又双叒叕获奖!天翼云推动算力服务便捷普惠泛在!

天翼云开发者社区

云计算 网络安全 云服务

揭秘高级控件技巧:让您的App与众不同

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

测试

离散型工厂生产制造MES管理系统解决方案

万界星空科技

数字化 制造业 mes 万界星空科技 离散型制造业

Topaz Video AI 下载 Mac电脑视频修复增强工具

iMac小白

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