是时候停止说“软件架构”了 It’s Time to Stop Saying “Software Architecture”
Posted 禅与计算机程序设计艺术
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是时候停止说“软件架构”了 It’s Time to Stop Saying “Software Architecture”相关的知识,希望对你有一定的参考价值。
读到一篇文章,其中讲到关于软件不是简单机械的建筑架构隐喻,而是一个“不断发展的生态系统”,这个观点跟小编不谋而合,特摘录与此分享大家。
“架构”是软件工程中非常常用的比喻,也是非常成功的比喻。如此成功,以至于我们在软件世界中扮演了“架构师”的角色。做建筑师真好!有人记得黑客帝国中的“建筑师”吗?是的,这很酷,但是,我们为什么要从架构的角度来思考?
也许是因为两者都与“构建”某些东西有关。
有一点设计。也许这就是原因。
这不完全是工程,有一个“艺术”位(对某些人来说甚至是黑色艺术)。
这些都还可以,但还不够好。作为一个类比,它没有用。有很多地方是不行的。
建筑在哪里失败?
至此,你大概明白了。我不喜欢软件架构这个词。我们“制作软件的人”和他们“设计建筑的人”都画图来传达我们的想法。我认为相似之处到此为止。
就拿制作过程来说。施工是一个“瀑布”过程。建筑师是在施工工作之前创建设计和详细蓝图的人,以便工程师将遵循并实施。不再有理智的人制作这样的软件。
或者拿“业务”和“开发者”的关系来说。它假设架构师是弥合业务和开发人员之间差距的必要条件,因此将每个人都压制在自己的位置上。
当我想到一个软件系统时,这些是我想到的事情:
它由一起工作/操作的程序组成。
这些程序相互使用,有时它们相互依赖。
不同的人群设计、制作和运行这些程序。
随着时间的推移,它会发展。“时间”和“时间带来的层次”在软件系统中有着巨大的影响。
如果有的话,它们构成了一个“不断发展的生态系统”,而不是一个“机制”或一个已经完成的建筑。所以,我有一个更好的建议:👇
一个软件系统实际上就像一座城市
我知道你在这一点上的想法,它同样俗气😁但是,有些奶酪比其他奶酪好。
两者都进化
作为一个生态系统,它会不断变化和发展。你从一个住宅开始,然后你把它发展成一个村庄。它继续:
住宅 > 村庄 > 城镇 > 城市 > 首都圈 > 国家/帝国
它的制作永无止境。它随着时间的推移而变化,并且通常会增长。
新旧同居
这是一张德比大教堂区的照片(取自https://dcms.shorthandstories.com/DerbyCathedralQuarter/index.html)。它显示了一座非常新的建筑与一座非常古老的建筑并排站立。当然,它们在本季度共享相同的基础设施,构成了整个季度。
随着系统随着时间的推移而发展,新旧共存。基础设施和上层建筑都是如此。当您想要进行更改时,您会看到不同实现、库、过去人们的风格和决定.
不用说,当你做事的时候,你会在路上留下自己的印记。
豪华与贫穷
就像豪华社区一样,也有每个人都想从事的热门项目。在那里进行投资,最好的新技术总是在那里。
有稳定的郊区,无聊但生活有自己的节奏。
而且,还有贫困社区。没有人爱,贫穷,年老,没有人喜欢那里的生活。没有投资,没有新的发展。
两者都有可怕的地方
黑暗的小巷,法律不适用的粗糙街区。旧的、复杂的、脆弱的程序,你害怕接触,更不用说看代码了。没有人愿意去那里。
移民/绅士化
有时,贫困社区坐在金矿上,他们无法提取该价值。我们希望通过更好的基础设施、更好的建筑、更好的道路和交通连接、更新的框架、语言、CI/CD 管道等来升级它们。
高档化和移民项目都不容易。存在人力成本、文化冲突、意想不到的后果、未能实现承诺的结果。然而,我们继续这样做是有原因的。我们都在学习做得更好。
城市、景观永远不会停止,它们总是像我们的软件系统一样发展。有很多人为他们注入了生命。它们有多种用途,并且有多种方法可以设计和运行城市/软件系统。
我可以继续说下去。我看的越多,我看到的相似之处就越多。但是,我敢肯定,如果我反过来看,也会有很多不同。
我希望,在未来的某一天,我们的领域将拥有足够多的历史和故事,我们不需要类比来思考它。在那之前,我们需要切换到比架构更好的类比,它允许我们考虑软件生态系统中的共存、时间/历史、人的因素、治理和许多其他事情。这就是为什么在考虑软件系统时“城市”是一个更好的比喻。
本文基于我在MoneySuperMarket与我的同事进行的一次闪电谈话。在软件世界中尝试“架构”类比是一种愚蠢/有趣的尝试。我试图想出一个更好的。
以上是关于是时候停止说“软件架构”了 It’s Time to Stop Saying “Software Architecture”的主要内容,如果未能解决你的问题,请参考以下文章
it's time to change myself now (2018.10.31)
题解 P2920 [USACO08NOV]时间管理Time Management