构建和谐的软件

    时已入秋,晚风渐凉,品着绿茶的清香,夜读《建筑的永恒之道》,颇有所思。
    很早就听说过这本书,应该是学GoF《设计模式》时了解的,据说这四位大师写这本设计“圣经”的灵感有一部分就来自于《建筑的永恒之道》。如今拿来一读,果然绝非凡品。看的时候有一种感觉,这位作者似乎已经上升到了哲学的高度去研究建筑。比如他书中所指的“无名特质”,“它是人、城市、建筑或荒野的生命与精神的根本准则。这种特质客观明确,但却无法命名”,不就是《道德经》中的“道可道,非常道,名可名,非常名”?他如抽丝剥茧般引导我们体会这“无名特质”的过程,莫不是身入空门之人在参禅?一时感叹,果真如佛云:一切圣贤,皆以无为法而有差别。我想所谓圣贤,就是他对这个世界的认识,为常人所不及。无论他原来是贩夫走卒还是市井屠夫,都有可能成为圣贤。木匠里面不是有鲁班吗?屠夫之中不是有苞丁吗?建筑界不就有这位C·亚历山大吗?
    书现在还没有看完,对于大师所言的模式语言理解不深入,我反而对里面的“和谐”发生了浓厚的兴趣。联想一下,外面下着小雨,你站在飘窗前面,眺望潮湿的路面上慢慢移动的五颜六色的雨伞,闻到雨水激起的泥土的芬芳,这是什么感觉?相反,外面下着雨,屋子里阴暗潮湿,窗户位置不对看不到窗外,想出去走走又怕弄脏了衣服,这又是一种什么感觉呢?人是矛盾的动物 ,都是向往更开阔的空间,都有想走出去的冲动,但是另一方面人在任何房间里面都有想坐下甚至躺下舒展自己的冲动,如果窗户的位置设置不当,只强调了窗外和室内的分隔,使这两种动机形成一对矛盾,就会产生“张力”。而设计适当的“飘窗”形成了一个过渡空间,可以消除这种张力。于是,和谐产生了。
    长期处在这种有“张力”的环境中,人会不自觉地产生“应力”与之对抗,也许你主观上感觉不到。但这种应力却在悄悄地消耗着你的精神、血肉,不可避免地使你对其它事情的精力分散。因此,我们需要和谐。一个国家需要和谐,这是社会稳定、经济发展的基础;一个城市需要和谐,这是人们安居乐业的条件;一个软件,是否也需要和谐呢?试以《黑客帝国》为例,“矩阵”设计师力图建造一个完美无暇的系统,但这个系统却因为过于单一而失去了生气,不能算是和谐。于是“Oracle”先知设计了Neo,Neo这个元素对于矩阵来说其实就是一个不稳定的因素,矩阵必然演化出一个能力越来越强直到最后可以和Neo匹敌的Smith特工与之对抗。Neo和Smith的存在形成了一个剧烈的矛盾对立,最后几乎矩阵本身都要被这种矛盾产生的“张力”摧毁了。所幸Neo最后明白了“万事万物皆有始有终”的道理,与Smith一起湮灭。于是,矛盾化解了,矩阵和谐了。
    以“矩阵”这样超大规模的软件系统中尚且存在和谐的问题,自然想到我们自身的软件。我们的软件如果能够超出简单的代码堆砌层次,上升到模式组合运用“有活力”的模式高度,使用户在不知不觉中就消除了使用软件过程中可能产生的“张力”,岂不是一件美妙的事情? “一事物中有活力的模式越多,它就越作为一个整体唤起生活,它越光彩夺目,就越有这无名特质保持的生气。坏的模式不能保持住发生在其中的力,最终整个系统必然崩溃”。――模式的作用就在于处理张力,因应变化,在建筑在软件都是如此。 如果一味从自身技术角度出发,开发出了架构最先进、代码最完美、界面最炫丽的“超级软件”,却不能消除软件自身和用户之间的张力,不能为用户所接受,岂不是史上最大的“杯具”吗?
    诚然,这种“有活力的模式”绝非一朝一夕之功,对模式的追求需要热情、学习、思考以及细致的实践,需要我们在日常的开发工作中进一步认清软件开发的本质,多想一些为什么,多从其它角度思考一下问题的解决办法,多站在用户的角度思考一下软件产生的“张力”,多学习一些大师的真知灼见……无论这位大师是建筑界的大师还是软件界的大师。陆游诗云:汝果欲学诗,功夫在诗外。把眼界放开一点,或许有意想不到的收获。
    感想就谈到这里吧,待到看完全书再总结。最后在网上一搜,据说这本《建筑的永恒之道》还真的大多被软件工程师给买走了,不禁莞尔。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值