扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
我一直想当然地认为《代码大全》(Code Complete)是一本讨论算法和数据结构的书,就象《编程珠玑》(Programming Pearls)一样。
直到阅读了出版社发给我的样章以后,我才发现,不是那么一回事。在我收到的10章内容中,作者Steve McConnell广泛讨论了结对编程、代码检查、重构、测试、调试、增量集成、性能调整,甚至是程序员个人性格等诸多领域内的问题,并且结合自身的丰富经验,进行了鞭辟入里的分析。
这些内容并没有涉及太多的代码,虽然偶尔也会涉及到代码。从这些内容来看,本书似乎应属于软件工程一类,但是又不能完全划分为软件工程类别。
在dearbook网站上的图书简介中写道:“……这也是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。”
照我看来,这个概括似乎仍然难以令人满意。如果用我自己的语言来描述,应该是这样:相对于关注代码本身(从算法到特定的编程语言)的图书,本书主要讨论的是代码以外的经验和技巧,它们涉及的范围极其广泛,从贴近代码层面的命名规则,到和代码相差十万八千里的“把程序员当人看”问题。其中有很多东西,已经远远超出传统意义上的软件工程的范围。但是,它们的最终目的,都是指向“如何写出高质量的代码”这一问题。
正如作者在前言中指出的:“我写这本书的首要目的,就是希望缩小本行业中一般商业实践与大师级人物及专家们之间的知识差距。”很多证据都表明,在程序编写这一行业中,新手的生产效率和经验丰富的专家相比,可以达到数量级的差距。
如何在尽量短的时间内缩小这一差距,是每一个希望成为优秀程序员的读者都关心的问题。讨论代码层面的技术的图书已经汗牛充栋,相比之下,讨论代码以外的技术的图书就要少得多,而正如我们所知,产生优质代码的条件,决不仅仅取决于程序员对编程语言的熟悉。本书正是试图缩短这种差距的一次尝试,它的努力方向是将代码层面以外的实践经验传授给读者。
作者努力的结果是显而易见的。就象Samuelson的《经济学》影响了好几代经济学家一样,十几年来,这本书影响了一代程序员。我想任何一个程序员,在阅读了本书的目录以后,都很难不对它产生极大的兴趣。一个小小的例子是,一位从Redmond(微软总部)归来的同事告诉我,那里的开发人员人手一册《Code Complete》。
事有凑巧,在收到出版社的约稿之前,我正致力于在一个新成立的团队中构建他们的开发过程,这让我有机会实际接触到许多本书涉及的问题,并对它们进行思考。因此,我愉快地接受了为本书撰写书评这一任务,并希望结合自己的经验写出一些心得。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者