软件设计需要有一点历史观

来源:互联网 发布:gif图片编辑软件 编辑:程序博客网 时间:2024/04/28 23:19

软件设计需要有一点历史观

吴旻

泰岩网络工作室

 

         国庆假期去看了一下赵州桥,就是我们小学课本中描述的,那座已经存在了1400多年的石拱桥。

         更精确一点的说法是,赵州桥建于公元605年,距今1407年。其间,经历了10次水灾,8次战乱和多次地震;桥建成至今共修缮9次,平均150多年维修一次(注意,不是重建)。

说实话,我太喜欢赵州桥这种简单而又实用的设计了。让我用对比的方式解释一下这座桥的技术优势。

一、圆弧设计。这是相对于半圆设计来说的,意思就是桥面比较平坦,上桥容易,下桥简单。典型的半圆设计是园林景观中的“小桥流水”里的小石拱桥,仅限于特定环境中的美观,实用那就是有那个意思就行了。而赵州桥的圆弧设计,在使用上已经接近于现代的平面桥面了

二、单孔拱桥。见过颐和园的17孔拱桥的就明白了,那个桥下是很难通过大一点的船只的。而赵州桥则不然,因为没有更多的桥墩,所以几乎对通航没有任何影响;同时也意味着河水对桥的冲击也更少些。

三、敞肩拱桥。这是相对于实肩拱桥来说的。拱桥的“肩”指的是桥的两端与河岸相连的部分,在赵州桥的照片上,就是两边各有的一大一小2个“n”型的桥孔的地方。如果没有这些孔,那就是实肩了。敞肩的优势非常明了,建桥时省材料,发洪水时增大泄洪量,当然也有人认为如此这般桥的外观更漂亮一些。

四、使用腰铁和铁拉杆使桥更稳定。在桥长的方向上,使用了腰铁把石块固定住;在桥宽的方向上(即河流的方向上),使用铁拉杆来固定桥身。纵横两个方向上,都确保了桥身在受外力冲击时不会散架。通俗一点的比喻就是,在桥建好后,又用“绳子”把建桥用的石块捆绑得更结实了。

 

         本质上,我是一个喜欢简单实用设计的人。在我看来,优秀而又简单实用的设计,常常透着某种大气,并且包含着一种能让我惊叹的美那些看似简单的背后,其实是无数复杂而又精确计算的结果,是化繁为简的神奇,是深刻理解万事万物本质的洞察,是对宇宙无穷变化归类后的抽象层面的精准拿捏。

 

好了,让我们来谈一谈软件设计。其实,要把软件往复杂了设计并不难,难的是把复杂的逻辑回归于一种简单与实用。比如,SQL类型的关系型数据库其实就是在挑战人类处理复杂问题能力的极限;直到有一天NoSQL这种非关系型的数据库的出现,直白的告诉我们,非关系型数据库的简单与实用多么让人惊叹。

应该说,代码一定会越写越多;但我也强烈反对代码“越写越多”。其实,这是两种完全不同的“越写越多”:前者是强壮,是必要的“肌肉组织”;而后者则完全是因为“肥胖”,是轻而易举的就会引起高血压、心脏病的“肥胖”!

我们的代码和设计,应该是尽可能的不产生或者少产生“肥肉”,并且同时多产生“肌肉”。也只有这样的代码和设计,才能经得住时代的考验。把“肥肉”变成“肌肉”,其实就是一种优雅而又美观的实用,并且看起来也足够简单。

这不容易,这真的非常不容易。现代的应用软件开发,更多的还是搭建,甚至是快速搭建。不是经常可以看到类似如下的广告词吗?“使用我们的开发平台,可以让您快速搭建应用,帮您捕捉稍纵即逝的商业机会!”

搭建真的很容易,但也真的很难设计,所以才会有12306.cn的是是非非。

其实搭建依然可以有很优秀的设计,而且可以优秀到1400多年依然让人有所借鉴与思考,比如说,赵州桥!看过了你就会明白,赵州桥就是用石块搭建出来的,辅之以极少量的金属铁。

 

如果我们开发设计的软件,前辈人看了说:垃圾;同时代的人看了说:垃圾;我们后辈的人看了还说:垃圾!想想,我们该有什么感觉。

如果我们开发设计的软件,前辈人看了说:有创新;同时代的人看了说:很好用;后辈人看了说:值得参考。想想,这时我们又会是什么感觉。

         所谓历史观,就是前人会怎么看我们,同时代的人会怎么看我们,我们的后辈会怎么看我们。


原创粉丝点击