软件架构——你是上帝



上帝用七天造人      第一日,上帝说:"要有光!"便有了光。上帝将光与暗分开,称光为昼,称暗为夜。于是有了晚上,有了早晨。   第二日,上帝说:"诸水之向要有空气隔开。"上帝便造了空气,称它为天。   第三日,上帝说:"普天之下的水要聚在一处,使旱地露出来。  于是,水和旱地便分开。上帝称旱地为大陆,称众水聚积之处为海洋。上帝又吩咐,地上要长出青草和各种各样的开花结籽的蔬菜及结果子的树,果子都包着核。世界便照上帝的话成就了。   第四日,上帝说:"天上要有光体,可以分管昼夜,作记号,定节令、日子、年岁,并要发光普照全地。"于是上帝造就了商个光体,给它们分工,让大的那个管理昼,小的那个管理夜。上帝又造就了无数的星斗。把它们嵌列在天幕之中。   第五日,上帝说,"水要多多滋生有生命之物,要有雀鸟在地面天空中飞翔。"上帝就造出大鱼和各种水中的生命,使它们各从其类;上帝又造出各样的飞鸟,使它们各从其类。上帝看到自己的造物,非常喜悦,就赐福这一切,使它们滋生繁衍,普及江海湖汊、平原空谷。   第六日,上帝说:"地要生出活物来;牲畜、昆虫、野兽各从其类。"于是,上帝造出了这些生灵,使它们各从其类。   上帝看到万物并作,生灭有继,就说:"我要照着我的形象,按着我的样式造人,派他们管理海里的鱼、空中的鸟、地上的牲畜和地上爬行的一切昆虫。"上帝就照着自己的形象创造了人。

上帝创造了世界,多么美丽的传说,但是却可以给予我们软件设计者启发。上帝创造了世界,那么上帝身在何处?在没有世界的时候,上帝身在何处?在何处或许我们不知道,但有一点可以肯定,上帝在这个世界之外,上帝虽然创造了世界,但不在世界内。

我们一直说上帝创造了人类,其实,你会发现,上帝创造了人的说法狭隘了,真实情况是上帝创造了世界系统。试想,没有前边五天的铺垫工作,直接创造人类,人类如何得以生存?有了生存环境,人类才得以生存。与其说上帝创造了人类,不如说上帝创造了“人类存在的生态环境”。

现在,你就是上帝,置身于计算机外,虚拟世界之外,创造着虚拟世界。任何一个新的产品或者新的工程都是以前不存在的(如果存在,复制过来好了),你要做的是构建一个完整的生态,使得新的“虚拟世界生态”可以正常运转起来。

上帝创造世界花了七天时间,每天完成这个世界某个部分(而不是一次性的笼统完成),最终创造了世界;巧的是,软件也普遍采用模块化构造的方法,将软件的构造分为不同的模块,然后逐个实现。当所有模块完成以后,一个新的生态环境就建立起来了——软件也得以初步完成。

上帝创造世界,是构造一个原来没有的系统,什么都要考虑,同样,软件架构,也是构造一个原来没有的系统,也要考虑到各个方面,你必须保证完成软件生态正常运转所需的各个要素。

上帝是神,创造世界,用神力就可以信守拈来,可惜,我们不是神,没有神力,但是我们有现实基础。现实基础,是基础,也是挑战。基础是,我们构造一个软件系统的时候,可以利用一些资料,基础设施,比如前人的经验,网络设施等等;挑战是,我们必须加以吸收分析改造,并且适应基础设施,做出最合理的设计。

上帝创造世界,其中一个细节是,上帝照着自己的模样创造了人;你是上帝,所以你也可以效仿上帝,照着现世界的系统来创造虚拟世界的系统。将软件的问题,放到现实世界考虑是上帝的选择。

上帝不着迷于自己创造的世界,他站在这个世界外来创造观察这个世界,你是上帝,你也不应该浸淫在虚拟世界,而应该将目光从虚拟世界转移到现实世界和虚拟世界的结合处。

上帝创造了世界,上帝休息了吗?没有,上帝在创造世界的同时,留下了很多传说,建立了宗教和法律,告诉人们他的存在,他在维护着公理正义,使得这个世界可以正常运转下去;同样,软件完成开发就完事了吗,没有,开发完成,就是让他运转起来,运转过程需要维护,所以还有运维的问题。上帝在创造世界的时候,考虑了这个世界的运维问题;那么软件在构架的时候,也要提前考虑运维这个重要问题。

——上帝的故事,是个比喻

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值