Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1759985
  • 博文数量: 290
  • 博客积分: 10653
  • 博客等级: 上将
  • 技术积分: 3178
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-24 23:08
文章存档

2013年(6)

2012年(15)

2011年(25)

2010年(86)

2009年(52)

2008年(66)

2007年(40)

分类: 项目管理

2007-11-17 16:48:32

 
  • 书名:代码大全(第二版)
  • 作者:迈克康奈尔
  • 来源:电子工业出版社
  • 出版时间:2006年03月
  • ISBN:7-121-02298-2
  • 定价:98元

 

图书版权归出版社和作者所有, & 独家提供试读和连载
内容介绍:
代码大全(第二版)是著名IT畅销书作者Steve McConnell十一年前的经典著作的全新演绎:第二版不是第一版的简单修订增补,而是完全进行了重写;增加了很多与时俱进的内容。这也是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。本书中所论述的技术不仅填补 了初级与高级编程技术之间的空白,而且也为程序员们提供了一个有关...

【】

 

精 彩 导 读

Preface 前 言普通的软件工程实践与最优秀的软件实践差距巨大——多半比其他工程学科中的这种差距都要大。因此传播优秀实践经验的工具是十分重要的。 ——Fred Brooks 我写这本书的首要目的,就是希望缩小本行业中一般商业实践与大师级人物及专家们之间的知识差距。许多强大的编程技术在被编程领域的大众接触之前,都已在学术论文和期刊里尘封了多年。虽然近年来前卫的软件开发实践迅速发展,但普通的实践手段并没有太大变化。很多程序的开发仍然是漏洞百出、迟于交付并且超出预算,还有很多根本就无法满足用户的需求。软件业界以及学术界的研究人员们已经发现了不少行之有效的实践经验,足以解决自20世纪70年代以来编程领域中日益蔓延的大多数问题。可是这些实践经验很少在高度专业化的技术期刊之外对外发表,所以时至今日大多数编程的机构和组织还没能用上这些技术。有研究表明,一项研发成果从其诞生之日起,到进入商业实践阶段,通常要经历5到15年的时间甚至更长(Raghavan和Chand 1989;Rogers 1995;Parnas 1999)。这本手册就是想缩短这一漫长的过程,让那些关键性的研发成果现在就能为更多编程人员所用。 Who Should Read This Book 谁应当阅读本书本书中所汇集的研究成果和编程经验,将帮助你创建更高质量的软件,使你能更快速地进行开发,遇到的问题更少。本书将帮你弄明白过去为什么会遇到那些问题,并告诉你如何在将来避免它们。这里所描述的编程实践将帮助你把控更大型的项目,还能在项目的需求发生变动时帮助你成功地维护并修改已经开发出来的软件。 Experienced Programmers 经验丰富的程序员对于经验丰富的程序员而言,本书正是他们想要的一本翔实、易用的软件开发指南。本书关注的是“构建(construction)”,即整个软件生命周期中最为人熟知的部分;本书把强大的软件开发技术写得让自学的程序员和参加过正规训练的程序员都能读懂。 Technical Leads 技术领导许多技术领导(或者说是技术带头人)都曾在他们的团队中使用《代码大全》(第一版)培训经验不足的程序员。当然,本书也可以用来填补你自己的知识缺陷。如果你是一位经验丰富的程序员,你不一定会同意我给出的所有结论(如果不是这样,我倒会觉得奇怪)。但如果你阅读本书并思索其中的每一个问题之后,那么几乎不会有人再能提出什么你未曾思考过的软件构建方面的问题了。 Self-Taught Programmers 自学的程序员如果你没有受过太多的正规训练,本书正是你的良伴。每年约有50000个新手进入这一专业领域(BLS 2004, Hecker 2004),但每年却只有35000个人获得与软件相关的学位(NCES 2002)。从这些数据中我们可以很快得出一个结论——很多程序员并没有接受过软件开发方面的正规教育。在许多新兴的专业人员社群中都可以看到自学的编程人员——工程师、会计师、科学家、教师以及小公司的老板们;编程序是他们工作的一部分,但他们并不一定把自己看作是程序员。无论你在编程方面受过何种程度的教育,本手册都会让你能对各种行之有效的编程实践有深入的了解。 Students 学生与有经验但缺乏正规培训的程序员对应的,是那些刚刚毕业的大学生。新近毕业的学生大多拥有丰富的理论知识,但却缺乏创建产品级的程序(production programs)的实践技术。关于编写优秀代码的实践知识,就像部落里祭祀仪式上的舞蹈一样,只能慢慢地从软件架构师、项目负责人、分析师以及更有经验的程序员那里传承下来。更多的时候,这些知识就是程序员个人反复的尝试和犯错后的结晶。本书则是这些缓慢、传统的智慧传承方式的一种替代方案,它汇集了以往只能从他人经验中猎取和收集的大量实用的经验技巧和有效的开发策略。对于那些正在从学术环境转向专业环境的学生来说,这是一本必备的读物。 Where Else Can You Find This Information 还能从何处找到这些信息本书综合整理了来自四面八方的多种软件构建技术。这些技术是软件构建领域长年累月积聚下来的智慧财富,它们不仅分散,而且其中大部分素材常年散落于纸面之外(Hildebrand 1989,McConnell 1997a)。其实,内行的程序员们所用的那些强大有效的编程技术并不神秘。但是这些内行人士面对手头日复一日紧张冲刺的项目,几乎没有谁花些时间和大家分享他们所学到的知识和技能。因此,程序员们可能很难找到很好的关于编程的信息来源。而本书所描述的技术则填补了入门图书和高级编程图书之间的空白。当你读过了《Java编程入门》、《高级Java编程》和《高高级Java编程》之后,如果你还想学更多的编程知识,那还能读点什么呢?你可以阅读Intel或Motorola的硬件参考手册,阅读Microsoft Windows或Linux操作系统的函数手册,甚至是去阅读讲另外一门编程语言的书籍——你确实无法在一个缺乏这种详细参考资料的环境中使用语言或者程序。但本书是为数不多的探究编程本质的书籍之一。无论你在何种环境下、用何种语言编写程序,书中某些最有益处的编程技术都能派上用场。其他的书一般都忽略了这些实践知识,而这也正是本书专注于这些知识的原因。本书中的信息是从许多来源中提炼出来的,如下图所示。想完全获得在本书中看到的这些信息的另外途径只有一条,那就是通读堆积如山的书籍和成百上千本技术期刊,还得再加上大量的实际经验。即便你把这些事情都做到了,本书仍然会对你很有益处,因为它把所有这些资料都集于一处,便于查阅。 Key Benefits of This Handbook 阅读本书的收益无论你是何种背景,本书都能助你在更短的时间内写出更棒的程序,还不会那么头疼。全面的软件构建参考 本书讨论了软件构建活动的方方面面,比如说软件的质量,还有编程的思维方式。它还会深入阐述构建活动中的重要细节,如创建一个类的步骤,使用数据和控制结构时的各种事项,还有调试、重构、代码调优的技术与策略等。你无须逐页通读所有主题。本书写得让你很容易就能找到感兴趣的特定话题。随时备用的检查单 本书包括了大量的检查单(checklist),你可以用它来评估软件架构、设计方法、类和子程序的质量、变量命名、控制结构、代码格式、测试用例等等。与时俱进的信息 本书介绍了一些当今最为入时的技术,其中有许多还未被广泛采用。正因为本书撷取了实践与研究两者的精髓,它所介绍的这些技术将经久不衰,受用多年。以更广的视角检视软件开发 本书将给你一个机会,让你凌驾于日复一日、忙于救火的混乱场面之上,看看到底什么是可行的,而什么又是不可行的。实践中的程序员们很少有时间去阅读数以百计的书籍与期刊,而本手册萃取了其中的精华。本书所汇集的理论研究与实践经验将活跃你的思维,激励你对自己项目的思考,使你的行动更有策略,避免反复陷入完全一样的战斗。绝不注水 有些软件书籍,其中精髓部分的净重也就1克,却注入了重达10克的水分。本书则会公平地探讨每项技术的优劣。关于你自己项目的特定需求,你了解得要比任何人都清楚。因此本书仅是给你公正客观的信息,让你能够具体情况具体分析,做出正确的决策。有关概念适用于大多数常见的语言 本书中介绍的技术使你可以更好地利用你的编程语言,无论是C++、C#、Java、Visual Basic,还是其他类似语言。丰富的代码示例 本书中收集了近500个用于展现优、劣代码之差异的示例。之所以给出这么多示例也是出于个人的偏好。因为从示例中我最能学到东西,我想其他程序员也该可以通过这种方式学得更好吧。这些示例是用了多种不同的语言所写成,因为学习并掌握不止一门语言通常是专业程序员职业生涯中的分水岭。一旦一名程序员意识到编程原则是超越特定语言语法的东西时,通往能够实质地改善编程质量并提高工作效率的知识的大门也就向他敞开了。为了避免以多种语言写成的例子成为读者的负担,我会尽量避免使用各语言中那些深奥的特性——除非当时就是需要探讨它。为了弄懂一个代码片段要表达的问题,你无须完全理解所有的细枝末节。如果你集中关注示例所展示的问题,那么无论它是用什么语言写成的,你都能读懂。为让你更容易理解这些示例,我还给其中的关键部分加了注解。引用其他信息来源 本书汇集了为数众多关于软件构建方面的可用信息,但这并不算完。在本书所有的章节中,“更多资源”一节都会介绍其他一些书籍和文章,你希望进一步深入了解感兴趣的话题时可以阅读它们。 配套网站 在本书的配套网站cc2e.com上会提供更新的检查单、参考书目、杂志文章、网页链接等内容。要访问《代码大全》(第二版)中的相关信息,请如本段文字左侧所示,在浏览器中输入“cc2e.com/”,后跟一个四位阿拉伯数字即可。这样的网址参考链接在本书中会有很多。 Why This Handbook Was Written 为什么要写这本手册在软件工程界,人们都清楚地认识到,应该把软件开发中行之有效的实践知识归纳、编撰成一本开发手册。计算机科学与技术委员会(Computer Science and Technology Board)的一份报告指出,要想大幅提高软件开发的质量和工作效率,需要把已知的行之有效的软件开发实践知识归纳、统一并广为传播(CSTB 1990, McConnell 1997a)。该委员会还指出,传播这些知识的策略应建立在软件工程手册这个概念的基础之上。 The Topic of
 
 
line
阅读(1232) | 评论(0) | 转发(0) |
0

上一篇:宏观与微观之分

下一篇:C++中函数模板

给主人留下些什么吧!~~