写在石头边上

2016/05/06 reading

红楼梦读书笔记。

红楼梦开局写作手法与软件开发过程的关系

红楼梦此书奇,犹在其布局谋篇。荣宁二府,金陵十二钗,又各类主角,体系过于庞大,作者欲描绘全局,先从小处着眼。如一些不起眼的边角人物,甄士隐、贾雨村和冷子兴。同时,又是先用粗线条勾勒,后用工笔精描,如「冷子兴演说荣国府」便是明显的粗框。

另有一点,更能从前两章体会,即作者收放自如,何时详何时略,实在见功夫。现在人,受微博、朋友圈影响,凡事都略写一二,这是「收」的过了头,就像简讯,看个几十条,会让人浮躁不堪,不明所以。而又有一部分,受博客、豆瓣、知乎的影响,随时长篇大论,恨不得事无巨细的交代,有时也会进入意识流,恨不得将心中林林总总的情绪发泄的干净(我也有此病)。这是「放」的过了头,容易忽略了主旨。故事动人,文字精妙,却与主题无关,这也是通病。近期所读之书里,冯唐的一些书就有这个问题,让人飘忽所以,无可停思,虽频频发笑,但事后咀嚼无味。

这「先粗后细」、「收放自如」原是一套手法,只不过前者是大局,后者是微末。恰是这套手法,应为创造者第一法则

想想软件开发的过程。「快速原型模型」与「敏捷宣言」都强调先尽快给出一个可运行的版本,这个版本必然是粗略的,这便是先粗后细的路子。绘画、写作、编写软件,皆是同理,先搭建框架,再填充内容。故绘画总爱先素描,写作总爱先铺垫,软件开发总爱先做出原型。更细微的,为什么软件开发需要面向对象,又是封装,又是继承,又是多态?为何总要先定义接口,后考虑实现?因为前者便是「收」,后者便是「放」。「收」对应着「略」,「放」对应着「详」。所谓收放自如,表现出来,便是详略得当。而面向对象的原则不过是为这「收放」提供一个经验丰富的依据罢了。

如何着手一个庞大的项目

上面提到了「略」的部分,此「略」不过是浮光掠影,观之,感觉烟雾缭绕。正如冷子兴演说荣国府一般。要正式进入荣国府内部,却还要费一番功夫。如何着手?如何切入?硕大的荣国府,每天繁琐细碎之事没有上千,却也有成百。

这就好比咱们接手一个大项目,或是准备开始研究一个大型的开源项目。新手只会感觉素手无策。

且看曹雪芹却是用的如何手段:先借林妹妹之眼,观「上层建筑」;再借刘姥姥之眼,观「下层基础」。两条脉络,着眼点不同,却恰好让读者对整个荣国府有了一个立体的感受。林妹妹本是官宦家族出身,眼界自不一样,看到的总是不同凡响之物件;接触到的,也是如贾母、四姝、宝玉这样的主子,这便理清了管事者这一条线。而刘姥姥是有求而来,又是乡村出身,颤颤巍巍之余眼界也低,视角便如大院之外,地位普通之人,接触到得,也无非是各类家仆,这便也理清了底层奴才这一条线。

而软件的切入,也是同理,关键就在找准线路。可先从一个主干功能点入手,理清脉络,跟踪代码,扫描大概。然后从急需了解的一个细节入手,深挖跟进,把相关的部分都牵连着带出来。然后针对拿不准的地方,尝试写测试用例,从使用者的角度判断代码意图。如此这般,便可将整个大项目逐步熟悉起来。

姓名*:

电邮*:

网址(可选):

评论*:

Search

    Table of Contents