我没有别的选择,上前一步,仔仔细细端详着这把椅子。椅子很普通,银色的,跟我的床一样,没有任何装饰。但是在扶手上,有一个插座,此时正亮着红光,一闪一闪,仿佛在召唤着我。我看了看,插座的结构跟我床上每天用的也是一样的。
我的视网膜上此时来了提示:进入工作状态。
我终于明白了自己要做什么,于是轻轻坐到了椅子上,打开身上的阀门,把插头插到闪着红光的插座上。
骤然间,我仿佛失重一般,跌入了另外一个世界里。
我好像漂浮在太空中,周边都是五颜六色的星球,每个星球都在飞速旋转着。我一阵眩晕,心想这是要把我送到虚拟太空吗?如果现在我还是肉身的话,肯定又是呕吐不止。
过了好一阵,我渐渐镇定下来,仔细去辨认每个星球,但是转得太快,根本看不清楚。我下意识地想去摸一下离得最近的一个紫色的星球,不想这个星球“忽”地一下就来到我眼前,吓了我一跳。
这个星球依然旋转着,闪烁着耀眼的光芒。我紧紧盯着它看,心里已经不紧张了,伸手又去点了它一下,只见这个星球居然慢慢张开了,裸露出了它的内部,里面竟然是一棵圣诞树!不不,是圣诞树的结构,粗壮的主躯干,分出许许多多枝杈,枝杈上又分出更多细小的枝杈,每个枝杈上都有闪烁的亮点,一眼望去,正事宛若一棵装饰着无数彩灯的圣诞树。
我心里赞了一声,旋即明白了这个结构的意图。我们做软件工程的,再大的项目,都会先做出蓝图(Blueprint),这个蓝图跟我们平日里说的泛泛意义上的蓝图还不一样,除了要把工程的每个目标都体现出来之外,还要把目标切分成不同的模块,每个模块有不同的功能,但必须又是严丝合缝的。然后相应的小组或者团队再去分工开发每个模块。如果模块的工作量很大很复杂的话,还要再做这个模块的蓝图,以此类推。
这个跟之前修复大厦的原理差不多,把模块造好,再一块一块搭起来。但是软件工程比这个不知复杂多少倍,因为每个模块是完全不一样的,用的编程结构也不一样,把它们造出来不难,但是能不能嵌合起来成为一个整体,又必须有最高的运行效率,那可就是另外一回事了。这时候,就要看你当初的蓝图设计得是否到位。
这里特别提一句效率的问题,对于软件开发人员来说,没有开发不出来的程序,实现不了的功能,但是水平高低就在于你的效率,这个效率不是指你开发的快慢,而是你开发出来的东西运行的效率,高手开发出来的东西一秒钟就跑出来的功能,如果你的需要一分钟,得,去别处找工作吧。
而效率高与否,就要看你设计蓝图的水平如何。象我开发一个项目,做蓝图的时间跟编程的时间是差不多的。
所以当我看到这棵圣诞树,职业的本能让我明白这正是一张蓝图。只不过,它使用的方式,跟我们传统使用的大相径庭,思路也大不一样。
我在这么一个狭小的空间里,心无旁骛,专心研究着这棵圣诞树。可是纵然我是专门干这个的,看了半天,也没看出个所以然来。因为上面没有任何的文字说明,也没有任何的编程语言,细细看去,只有密密匝匝的枝杈纠缠在一起,那些忽明忽暗的亮点,更是找不出任何规律。
我是一个训练有素的软件工程师,但是从来没有遭遇到这种状况。学习一种语言,或者开发一套程序,都会有一段学习或者了解情况的时间。哪怕是自学,也得有一本我看得懂的书或者开发手册呀,哪有不分青红皂白把你往这儿一扔慢慢琢磨的呢?