30年,软件架构过时了吗?

科技   2024-11-05 07:40   山西  

在面向对象编程成为主流之后,分布式系统、微服务架构等新型架构模式逐渐兴起。然而,这些新技术并没有改变架构设计的核心问题,即如何分离控制和逻辑。Bob大提出的“整洁架构”正是在这一背景下应运而生,它提供了一种清晰的架构设计思路,帮助开发者在构建复杂系统时保持代码的整洁和模块化,从而减少技术债务,提高开发效率和系统质量。通过遵循这些原则,架构师可以设计出既灵活又稳定的系统,能够应对不断变化的业务需求和技术变革。


软件架构的构建规则独立于其他任何变量。 

——《整洁架构之道》,Robert C. Martin



01

Bob大叔”是谁?



Robert C. Martin,被广泛尊称为“Bob 大叔”,是一位享誉全球的软件开发大师和编程思想领袖。他的职业生涯始于20世纪70年代初,此后,Martin在软件行业积累了超过50年的丰富经验,成为了设计模式和敏捷开发领域的先驱。现年71岁的Bob大叔依然活跃在开发第一线。


Bob大叔在 12 岁就写下了人生中的第一行代码。在半个多世纪的代码生涯中他学到了一些关于如何构建软件系统的知识,并且他相信其他人也会发现这些知识很有价值。


Bob大叔通过构建多个系统(大型和小型)来学习这些知识。创建了小型嵌入式系统和大型批处理系统、实时系统和Web系统、控制台应用程序GUI应用程序、过程控制应用程序、游戏、会计系统、电信系统、设计工具、绘图应用程序等许多其他应用程序。


此外,他还构建了单线程应用程序、多线程应用程序、少量重量级进程应用程序、多轻量级进程应用程序、多处理器应用程序、数据库应用程序、数学应用程序、计算几何应用程序,以及许多其他类型的应用程序。


至此,Bob大叔已经构建了很多应用程序和系统。通过考虑它们所有的方面,他学到了令人惊讶的知识:构建规则是一样的!这很令人吃惊,因为构建的系统都是不同的。为什么这些不同的系统都拥有类似的构建规则?Bob大叔结论是,软件架构的构建规则独立于其他任何变量。


02

变化的编程语言,不变的软件架构规则


现在的软件和以前的软件由同样的元素构成。包括if语句、赋值语句以及while循环。你可能会反对说,我们有更好的编程语言和更优秀的范式。毕竟,我们使用Java、C#或Ruby进行编程,并且使用面向对象的设计。没错,但代码仍然只是一系列的顺序、选择和迭代,就像在20世纪50年代和60年代一样。当你真正仔细观察编程实践时,你会意识到在过去50年里几乎没有什么变化。编程语言变得更好了一点,工具也变得更加出色了,但计算机程序的基本构建块并没有变化。


如果把一个1966年的程序员带到2016年,让面对运行Java程序的MacBook,她可能需要24小时才能从震惊中恢复过来。但之后她将能够编写代码。Java与C并没有太大的不同。如果把你带回1966 年,并向你展示使用每秒10个字符的电传打字机打孔纸带来编写和编辑PDP-8 代码,你可能需要24小时才能从失望中恢复过来。但随后你将能够编写代码。代码并没有改变太多。


这就是秘密所在: 代码的不变性是软件架构规则在系统类型上如此一致的原因软件架构规则是程序构建块的排序和组装规则。由于这些构建块是通用的并且没有改变,因此排序它们的规则也是普遍且不变的。


年轻的程序员可能会认为这是无稽之谈。他们可能会坚称现在一切都是新的和不同的,过去的规则已经过去了。如果他们这么认为,那就大错特错了。规则没有改变。尽管有了新语言、新框架和新范例,规则和1946年艾伦·图灵写下第一部机器代码时一样。


但有一件事情改变了:那时,我们不知道规则是什么。因此,我们一次又一次地违反它们。现在,半个世纪的经验告诉我们,我们掌握了这些规则。《整洁架构之道》讲的就是那些永恒、不变的规则。



一图带你了解《整洁架构之道》中的那些规则:




  • 传奇软件巨匠Bob大叔Robert C. Martin著作。
  • 展示了如何为应用程序架构和设计带来更高的专业性和规范性。
  • 阐述了软件架构师的角色和目标,软件架构设计的核心原则,如何为Web、数据库、客户端、控制台和嵌入式应用程序设计最佳的高级结构。
  • 是软件架构师、系统分析师、系统设计师、软件经理以及执行他人设计的程序员的必读之作。


围绕“30年,软件架构过时了吗?”留言谈谈你的看法,留言点赞前二,包邮赠书一本。


11月8日18点(开奖)~记得联系小编

Java架构师必看
致力于分享优质文章及教程【java程序员从初级到中级进阶Java高级架构师】;搜集全网高质量学习书籍面试题视频项目;让您系统提升java架构技术,关注回复『1024』获取Java编程资源,共学习,共进步。
 最新文章