现在的位置: 首页 > 综合 > 正文

庖丁解牛与软件分解的艺术

2013年07月24日 ⁄ 综合 ⁄ 共 1616字 ⁄ 字号 评论关闭
庖丁解牛与软件分解的艺术

黄国强 2007-2-5

        庖丁解牛的故事应该是众所周知了。下面是想从这个故事中挖掘一下,看看对于软件开发是否有所帮助。
        我们知道,没有人对写小程序感到麻烦。而开发一些比较大的软件,很多人就感到力不从心。整天除了使用透支自己的脑细胞办法外别无他法。我在平时的工作一旦进入到这种状态,马上就停下手中的事情。因为我知道,我在方法上出了岔子了。
        从哲学的角度,任何复杂事物都是可以分解的。那么,如果我们有一个办法能把大的软件变成许多小的软件,工作岂不是变得很轻松。这里就回到了本文标题所指。软件开发归根结底是一个分解的艺术。把一个复杂问题分解是“说起来容易做起来难”。
        仔细思考一下庖丁的故事,我们应该有所启发,也就有了新的努力的方向,以后就不会像某些程序员那样整天沉湎于具体的开发语言上争论不休,自己没有提高而且还误导了别人。
        本人大致总结以下三点给希望成为庖丁的人。
1 要熟悉软件的分解技术;(比如:设计模式,多层设计等)
2 要重视领域知识的积累;(领域知识,即您所从事的行业,比如金融软件,则金融行业知识要熟悉。)
3 选择合适的开发工具并熟练使用。(庖丁毕竟拿了一把极薄的刀,我们工作也要选择合适的工具。)

附庖丁解牛解释(来自于网上转贴):
《庄子·养生主》:“庖丁为文惠君解牛,手之所触,肩之所倚,足之所履,膝之所踦,砉然响然,奏刀騞然,莫不中音。”
庖丁:厨工;解:肢解分割。比喻经过反复实践,掌握了事物的客观规律,做事得心应手,运用自如。
这一天,庖丁被请到文惠君的府上,为其宰杀一头肉牛。只见他用手按着牛,用肩靠着牛,用脚踩着牛,用膝盖抵着牛,动作极其熟练自如。他在将屠刀刺入牛身时,那种皮肉与筋骨剥离的声音,与庖丁运刀时的动作互相配合,显得是那样的和谐一致,美妙动人。他那宰牛时的动作就像踏着商汤时代的乐曲《桑林》起舞一般,而解牛时所发出的声响也与尧乐《经首》十分合拍。
站在一旁的文惠君不觉看呆了,他禁不住高声赞叹道:“啊呀,真了不起!你宰牛的技术怎么会有这么高超呢?”
庖丁见问,赶紧放下屠刀,对文惠君说:“我做事比较喜欢探究事物的规律,因为这比一般的技术技巧要更高一筹。我在刚开始学宰牛时,因为不了解牛的身体构造,眼前所见无非就是一头头庞大的牛。等到我有了3 年的宰牛经历以后,我对牛的构造就完全了解了。我再看牛时,出现在眼前的就不再是一头整牛,而是许多可以拆卸下来的零部件了!现在我宰牛多了以后,就只需用心灵去感触牛,而不必用眼睛去看它。我知道牛的什么地方可以下刀,什么地方不能。我可以娴熟自如地按照牛的天然构造,将刀直接刺入其筋骨相连的空隙之处,利用这些空隙便不会使屠刀受到丝毫损伤。我既然连骨肉相连的部件都不会去硬碰,更何况大的盘结骨呢?一个技术高明的厨师因为是用刀割肉,一般需要一年换一把刀;而更多的厨工则是用刀去砍骨头,所以他们一个月就要换一把刀。而我的这把刀已经用了19年了,宰杀过的牛不下千头,可是刀口还像刚在磨刀石上磨过一样的锋利。这是为什么呢?因为牛的骨节处有空隙,而刀口又很薄,我用极薄的刀锋插入牛骨的间隙,自然显得宽绰而游刃有余了。所以,我这把用了19年的刀还像刚磨过的新刀一样。尽管如此,每当我遇到筋骨交错的地方,也常常感到难以下手,这时就要特别警惕,瞪大眼睛,动作放慢,用力要轻,等到找到了关键部位,一刀下去就能将牛剖开,使其像泥土一样摊在地上。宰牛完毕,我提着刀站立起来,环顾四周,不免感到志得意满,浑身畅快。然后我就将刀擦拭干净,置于刀鞘之中,以备下次再用。”
文惠君听了庖丁的这一席话,连连点头,似有所悟地说:“好啊,我听了您的这番金玉良言,还学到了不少修身养性的道理呢!”
这个故事告诉人们:世间万物都有其固有的规律性,只要你在实践中做有心人,不断摸索,久而久之,熟能生巧,事情就会做得十分漂亮-----达到游刃有余的境界。

抱歉!评论已关闭.