字数 13887,阅读大约需 70 分钟
第21讲:给"智慧邻里"画"施工图"(软件工程与架构)
【老孙开篇寄语】
同学们,欢迎来到“决胜篇”的第三个模块——工程篇。
在过去的“奠基篇”和“运筹篇”中,我们像一位“战略家”和“城市规划师”,为“智慧邻里”这个宏大的项目,规划了“做什么”(战略目标)和“为什么做”(商业价值)。
从今天开始,我们的角色将要发生一次“华丽的变身”。我们要从“规划师”,转变为“总建筑师”和“总工程师”。我们要开始,探讨一个更“具体”、更“落地”的问题——这个叫“智慧邻里”的软件系统,到底,应该怎么“造”出来?
“工程篇”,就是我们的“建造手册”。它将带领我们,深入一个软件系统的“内部”,去理解它的“骨架”(架构)、它的“蓝图”(UML)、它的“血脉”(数据),以及它的“免疫系统”(安全)。
这一讲,是“工程篇”的开篇之作。我们将要为“智慧邻里”这个项目,画出第一张,也是最重要的一张“施工总图”——软件架构图。
我们将探讨一个软件是如何从一团“混沌”的需求,演变为一个“结构清晰、层次分明”的工程产物的。我们将学习不同的“架构风格”(比如,是盖一个“独栋别墅”,还是建一座“乐高城市”),分别适用于什么样的场景,又会给我们的项目,带来怎样的“命运”。
同时,我还会为你们引入两个“神级”的软件思想定律——“《大教堂与集市》”和“康威定律”。它们,将帮助你,从“哲学”和“社会学”的高度,去理解“软件开发,为何如此之难”。
准备好了吗?戴上我们的“安全帽”,拿起“图纸”,开始我们“总工程师”的旅程!
第一章:“两种创世神话”——《大教堂与集市》的启示
在深入探讨“软件架构”这个技术性话题之前,我们有必要先来聊一聊“软件开发”的两种,截然不同的“世界观”或“哲学”。这源于IT界的“圣经”之一——由**埃里克·雷蒙(Eric S. Raymond)所著的《大教堂与集市》。
这篇文章,对比了两种,看似“天差地别”的软件开发模式。
1.1 大教堂模式 (The Cathedral Model)
- • 核心思想: “精心规划,一次成型”。
- • 运作模式:
- • 软件的开发,就像“建造一座宏伟的中世纪大教堂”。
- • 有一小群“顶级的、与世隔绝的”建筑大师(核心开发者),他们在项目开始时,就构思好了“每一个细节”,画出了“完美的、最终的”蓝图。
- • 然后,他们在一个“封闭的、安静的”环境中,花费数年时间,精雕细琢。
- • 直到这座大教堂“完美地”竣工的那一天,它,才会被“轰动地”,向世人,开放。
- • 在需求“极其稳定、清晰”的领域(比如,造火箭、盖大桥),这种模式,非常有效。
- • 管理上,非常“清晰、可控”。
- • 对“变化”的容忍度,极低。 一旦在“施工”过程中,发现“图纸”有问题,或者“甲方”的需求变了,那么整个“大教堂”,可能就要“推倒重来”,代价是“灾难性”的。