《软件开发的201个原则》(中译本)出版了
前后历时近2年,软件工程领域的经典著作《软件开发的201个原则》(201 Principles of Software Development)终于在国内正式出版了。
在此,感谢组织和参与翻译的15名百度同学,大家做了一件非常有意义的工作。同时,大家也一致同意将本书翻译的稿酬全额捐赠给希望工程。
在此,要感谢百度和电子工业出版社博文视点的支持。大家在“打造精品”这个目标上有非常一致的共识。在这个工作中,我感受到了情怀和责任。
本次很荣幸得到原书作者Alan Davis两次专门撰文。软件大师的专业风范在其中有非常充分的展现,非常值得我们学习。
本次也非常荣幸的邀请到来自清华大学及多家公司的专家和老师撰写推荐序。非常感谢大家对于本书出版所提供的支持。
有兴趣的同学,可以直接点击本文最后的“阅读原文”或扫描下图的二维码到京东购买。
下面是我在去年夏天代表翻译团队所写的译者序,请大家指正。
译者序
其实我不是译者,而仅仅是一名“校对者”。大家让我来写这篇译者序,盛情难却,无法推脱。
《软件开发的201个原则》是我于2017年至2020年在百度举办“代码的艺术训练营”时使用的指定教材。这本书的内容深受训练营学员的好评。由于之前没有中文版,对于部分英文基础不太好的同学来说阅读有些困难。终于在2019年底,有十多名“代码的艺术训练营”的毕业生自发组织起来,开始了此书的翻译。我从2020年5月初加入校对工作,完成全部的校对,我大约花费了80-100个小时。由此推断,负责翻译的同学花费了数倍于此的时间。非常感谢这些同学的无私付出!
初识《201个原则》是在20年前。当时我还在清华大学读书,在老师的指导下做一个有一定规模的软件研发项目。在项目的研发过程中,遇到了不少软件工程方面的问题。于是在那一年,我阅读了大约10本软件工程方面的书籍,包括《Code Complete》(代码大全)、《Rapid Development》(快速开发)、《ProgrammingPearls》(编程珠玑),等等。《201个原则》是我当时在清华图书馆中发现的一个“宝贝”。我必须说,这本书对我的影响非常深,很多我现在经常提起的软件工程原则,其实都源于对这本书的阅读。
2006年我离开清华,到目前已经在工业界工作十多年,经历了多家公司。我发现,虽然我们的软件研发规模已经和20年前有了很大的发展,但是在软件研发的理念方面的进步还是太慢了。有太多的软件从业者,即使已经工作多年,但对于软件研发的基本理念和原则还是了解不多。以我多次的调查,阅读超过2本“真正的”软件工程书籍的人是非常少数的。很多软件工程师,仍然在使用非常低效的、甚至是错误的方法在工作!
于是在2015年,我在百度开办了“代码的艺术”面授课程,其中就重点推荐了《201个原则》。而在2017年做“代码的艺术训练营”的时候,这本书就成了指定教材。为什么要选择这本书?因为它对软件工程的内容覆盖全面,且篇幅短小。对于一个短期培训班来说,如果选择类似《Code Complete》这样的书籍,阅读所需要的时间有些太多了。在这个场合,《201个原则》是一个性价比更高的选择。另外,我常常感觉,对于一个软件工程师,掌握正确的意识是比掌握具体知识更重要的。如果有正确的意识,即使不记得具体的知识点,还可以在需要的时候进行查阅。而反过来就不是这样了。
必须要说,《201个原则》写于1995年,距今已经有25年时间。这也成为很多人担心的来源— 计算机技术的发展如此之快,这本书是不是已经过时了?但是,正如我在“代码的艺术”课程中所述的“知识、方法、精神”三者的对比,方法的变化速度远远慢于知识。尤其是在本次校对过程中,我惊奇的发现,本书中真的可以说是“过时”的原则还不到5个!是软件研发的方法变化太慢,还是本书的内容太深刻?我想两者兼而有之。在此,我必须要对本书的原作者Alan M. Davis致敬,并对《201个原则》中所有原则的贡献者和历史上所有软件工程领域的大师们致敬!
最后,要隆重的介绍本次负责翻译的百度同学。他们是:叶王,马学翔,吴斌,王冰清,杨光,曾浩浩,李殿斌,甘璐,李子昂,肖远昊,贾儒,王莹,张苗,李双婕,荣文升。另外,经过大家的商定,本书翻译出版的所有稿酬,都将捐赠给公益事业。
对所有的读者,所有的阅读此书的软件工程师,所有准备从事软件研发的同学们,希望本书能够对你们有所帮助!
章淼博士
百度BFE团队技术负责人,百度代码规范委员会主席
2020年6月14日写于百度