序言
首先需要指出,我并不认为自己算得上世界级的API设计师或软件工程师。然而,在计算机图形学和几何建模领域,我确实算得上一位资深研究者。由于工作上的机缘,我在Pixar动画工作室结识了Martin。
作为计算机图形学研究人员,我要经常撰写包含高深数学理论的论文。曾几何时,我也在著名大学学习如何做一名计算机科学家,并且编写过许多重要代码。正是这样的背景,使我有机会领导一群软件工程师共同为Pixar打造新一代的动画软件。我曾天真地认为这项工作不会像做研究那么难,毕竟就定义而言,研究是对未知事物的创造,而工程是对已经熟识的课题加以实现。然而,我大错特错了。
随着工作的深入,我逐渐意识到,软件工程的确是我至今遇到过的最大挑战,所以几年之后,我决定放弃这份工作,重新回到对计算机图形学的研究之中。
我从《C++(www.cppentry.com) API 设计》这本书中获益匪浅。许多经验教训都是历经痛苦的磨砺才总结出来的,而它们都囊括于Martin的这本见解深刻而又简单实用的书中。Martin并不是站在那些学院派的软件研究者的角度来探讨这些问题(尽管他确实引用了大量这些人的成果和见解),而是从一位一线软件工程师和管理者的视角来阐述。他深刻体会到优秀软件设计的重要性,并且善于阐明这些软件设计的优点。书中提供了很多实现优秀软件设计的有效方法。
特别值得赞赏的是,Martin不仅关注API设计,而且特别注重软件的生命周期,故而书中还囊括了诸如版本更新、向后兼容策略以及分支方法等话题。
总之,本书对那些从事软件编写或者软件管理的人来说有着巨大的价值,它堪称一部包含了种种久经考量的最佳软件实践的全集式著作。
Tony DeRose
Pixar动画工作室高级研究员和研究小组负责人