用法
模式语言将创造的力量赋予每一个使用它的人,使他们创造出无数独特的新构造,正如一般意义上的“语言”给予他们创造无数句子的力量一样。
——《The Timeless Way of Building》(建筑的永恒之道),第167页
我们这个项目的目标是创建一种模式语言,来帮你定义自己的学徒过程。我们不可能知道你所处的实际环境,因此一定要考虑每种模式的情景分析和问题描述来确定它是否适合你。这些模式之间是相互联系的,可以联合使用来创造更强有力的体验。比如,尽管“找人指导”本身就是一种优秀的、经过时间检验的模式,但将它跟“密切交往”结合起来会更强大。另一方面,“暴露无知”更加依赖一些支持模式,比如“正视无知”和“以退为进”,而且需要多用一点技巧才能正确使用。跟所有的模式语言一样,你应该小心,不能过度使用这些模式。不要为使用各种模式而寻找借口,而应针对具体情形遴选最恰当的组合。
你不一定要按从头到尾的顺序阅读书中的模式。当初Dave阅读Christopher Alexander的《A Pattern Language》(模式语言)时,就是从书的中间开始,并沿着模式之间的关联来阅读,这带来了一种更有趣的学习体验。你也许只想简单浏览一下各种模式的情景分析和问题描述来找到跟你的实际情形最切合的模式。按这种方式来扫描模式可以让你在大脑中安装一些触发器来应对未来情形,那时,你会突然发现某些模式可以应用。
本书的内容最初写在一个wiki上,它自然从未真正考虑过让人按线性顺序阅读。前面的模式会引用到后面的模式,反之亦然。这会带来一些挑战,而且需要你积极地投入到这些内容中。你可以像浏览一个网站那样浏览它,这会使你的注意力被各种有趣的链接分散,而永远不知道是否读完了所有的内容。但这种方法并没什么不好。
我们当然理解一些人更喜欢从头到尾地阅读。因此,我们在前面的几章中做过一些努力,使前向引用减到最少;前向引用是指一个模式会引用到书中在它之后出现的模式。
一些人会觉得他们需要把这本书通读两遍:首先,快速浏览,把所有的东西都记到脑子里;然后读二遍,把所有的东西连接起来。这种方法也不错。本书并不适合用作参考手册,而更像一本艺术家的资料合集——你可以时不时地翻阅它,从中汲取灵感。你甚至可能发明一些新的、我们从来没想过的使用本书的方法。尽管去尝试。本书跟现实世界中其他的东西一样:彼此的关联不见得一下子就能看清,而每次回顾时,你都会发现新的东西。