学习总是由厚至薄,由薄至厚。学习面向对象分析和设计的过程亦是如此,我们既要掌握最本质的原则,又要熟练使用大量的技巧,这样才能在实践中加以灵活应用。Craig Larman的这本书恰好为我们提供了这样的途径,他将OOA/D的基本原则、开发方法、辅助工具结合起来,并辅以贯穿全书的深入实例,为我们展示了一个广阔的对象世界。这本书历经三个版本的锤炼,吸收了大量OOA/D的精华思想和现代实践方法,为我们提供了最佳指导。这无疑是一本优秀的软件设计书籍。也正因为这个原因,译者在翻译过程中诚惶诚恐,如履薄冰,但愿能够忠实反映Craig Larman的真知灼见。
在翻译过程中,本书在以下三个方面给我留下了极为深刻的印象:
其一,Craig Larman使用大量篇幅反复强调瀑布式方法的谬误和迭代方法的真谛。这看上去似乎是赘语,但我们在实践中却往往忽视了这一简单道理,总是将谬误当成真理,甚至对其视而不见,有意为之。由此可见Craig Larman的用心良苦。
其二,在OOA/D领域里充斥大量模式,难以记忆,更不用说灵活应用了。而本书则强调了OOA/D最为本质的原则,即GRASP原则或模式。这9种基本原则正是对大量模式的归纳和总结,能够帮助我们了解复杂现象背后的本质思想,使我们提升到“无招胜有招”的境界,这正是由厚至薄的过程;另一方面,本书在这些基本原则之上,还深入探讨了常见模式的应用,在精致的示例中展示模式的巧妙,这正是由薄至厚的过程。
其三,Craig Larman吸收了大量轻量级的敏捷方法和实践。敏捷方法与重量级方法并不矛盾;反之,敏捷方法为重量级方法赋予新的活力,使其更为实用。我们乐于见到理论界中的这种融合,它使我们在实践中更易于遵循和采纳这些方法。总而言之,阅读本书,受益匪浅。
本书第一部分~第四部分由李洋翻译,第五、六部分由郑龑翻译。不免俗套,在这里感谢程道超、刘兰对翻译工作的帮助。同时,感谢家人对我们的一贯支持和鼓励。书中翻译不当之处,望读者批评指正。
祝阅读愉快!
李洋 郑龑
2006年3月