首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训

编程匠艺:编写卓越的代码

  • 书名:编程匠艺:编写卓越的代码
  • 作者:(美)古德利弗(Goodliffe, P.)著 韩江,陈玉译
  • 来源:电子工业出版社
  • 出版时间:2008年09月
  • ISBN:9787121069802
  • 定价:79元

看 书 评 论 收 藏打 分 购 买

图书版权归出版社和作者所有,CSDN & DearBook独家提供试读和连载
内容介绍:
如果你可以编写出合格的代码,但是想更进一步、创作出组织良好而且易于理解的代码,并希望成为一名真正的编程专家或提高现有的职业技能,那么《编程匠艺——编写卓越的代码》都会为你给出答案。本书的内容遍及编程的各个要素,如代码风格、变量命名、错误处理和安全性等。此外,本书还对一些更广泛的编程问题进行了探讨,如有效的团队合作、开发过程和文档编写,等等。本书各章的末尾均提供一些思考问题,这些问题回顾了各章中的一些关键概念,可以促使你像专家一样思考,从而使本书成...

最近评论

精 彩 导 读

有许多事情是智者不想知道的。 ——拉尔夫•瓦尔多•爱默生(Ralph Waldo Emerson) 这本书是从战壕中走出来的。好吧,它实际上来自软件工厂的深处,但有些时候这并没有太大的区别。本书写给那些“很在意”自己事业的程序员。如果你不在意,那么请现在就合上这本书,然后原封不动地把它放回到书架上吧。 对我而言书中写了什么? 编程就是你的激情。这很令人遗憾,但却千真万确。作为痴迷于技术的人,你几乎连做梦都在编程。现在,你身处现实世界的中心,深入这个行业,做着你从来没有想像过的事情:在玩电脑的同时还领着薪水。事实上,你还愿意向别人付钱来得到这个特权哩。 但这里却是一个奇怪的地方,根本不是你所期望的那样。面对不现实的最后期限和糟糕的管理(如果他们称之为管理的话),以及不断改变的需求和一团糟的遗留代码,你感到很惊讶,不禁怀疑这是真实的世界吗?整个世界都在阻止你编写出你一直以来所梦想的代码。这就是现实,欢迎来到软件工厂中的生活。你站在一场创造艺术精品和科学天才的艰苦战争的最前沿。祝你好运! 这就是《编程匠艺——编写卓越的代码》要达到的目的。这本书的内容也许从未有人向你传授过:如何“在现实世界中”正确地编程。《编程匠艺——编写卓越的代码》填补了教科书中所缺少的内容。的确,这本书讨论了优秀代码的技术细节和难点。但除此之外它还包括更多的内容:如何以正确的方式编写正确的代码。 这是什么意思呢?在现实世界中,编写优秀的代码有多重的含义:  编写在技术上优雅的代码  编写可维护的代码,让其他人也可以看得懂  理解并改写其他人所编写的杂乱的代码  与其他程序员良好地并肩工作 要成为一个编码高手,你需要所有这些能力(甚至更多)。你必须理解代码那神秘的生命:当你输入代码之后,会发生什么?你必须拥有审美的能力:区分优美的代码和丑陋的代码。你还必须拥有在实践中运用理论的头脑:认真思索并解决以下问题,什么时候使用简化的操作是合理的,什么时候开始着手代码设计,以及什么时候停止和继续(实用的“提前退出”原则)等。本书将帮助你实现这些目标。你将学习到如何在软件工厂中求得生存,如何观察战场并了解敌人,如何制定战术以避开敌人的陷阱,以及如何在种种困难中开发真正出色的程序。 软件开发是一个有趣的职业。这个职业在迅猛地发展,充满了瞬间即逝的流行元素与变幻莫测的风尚、致富的计划以及新理念的传播者。它并不成熟。我不是宣称我有什么神奇的答案,但我的确有一些来自经验的、有用的建议与大家分享。本书中没有象牙塔中的理论,而仅仅是现实世界的经验和一些好的习惯。 一旦消化了这本书的内容,你将不仅仅会成为一名更好的程序员,而且你将成为软件工厂中一位更优秀的常住居民,一名真正的代码战士,你将学到编程匠艺的技艺。如果这听起来并不令人激动,那么也许你应该考虑在军队里谋职了。 做得更好 那么,是什么将“优秀”的程序员和“糟糕”的程序员区分开的呢?更重要的是,是什么将“杰出”的程序员与仅仅是“够格”的程序员区分开的呢?其秘密并不仅仅在于他们的技术能力——我曾经见过很多对语言标准了然于心、能够写出非常紧凑和让人欣赏的C++程序的程序员,他们才华横溢,但是他们写出来的代码却非常糟糕。我也曾经见过更多谦逊的程序员,他们坚持编写非常朴素的代码,但是他们所编写的程序却非常优雅和缜密。 真正的区别是什么?好的程序设计来自于你的态度。而好的态度在于你了解职业化的方法,以及对编写最好的软件的不懈追求,而不管软件工厂的压力有多大。态度就像一面透镜,我们通过它来看世界。这面透镜为我们的工作和行为增添了色彩。优秀的代码需要由艺术大师精心编写,而不是由懒散的程序员随意地粗制滥造。通向优秀代码的道路是由良好的意愿铺就成的。要成为杰出的程序员,我们必须学会从良好的意愿起步,培养积极的看法,并使这种健康的态度发扬光大。 在本书中,我们将看到如何做到这一点。书中包含了大量的主题,小至实用的代码编写问题,大到组织架构性问题。在所有这些主题中,我都着重强调了什么是正确的态度和方法。 态度——前进的角度 面对软件开发的世界,随着调查和分类的深入,我越来越相信使杰出的程序员脱颖而出的是态度。字典中对“态度”(attitude)的定义是这样的: 态度 1.心态,看法:心理或感情的状态;性情。 2.飞机姿势,姿态:飞机轴相对于某一参照直线或平面(如地平线)所处的位置。 第一个定义并没有什么令人意外之处,那么第二个呢?实际上,第二个定义比第一个更有揭示意义。 我们想像有三条贯穿飞机的轴线:一条从一侧的机翼到另一侧的机翼,一条从机头到机尾,还有一条与前两条轴线垂直相交于其交点处。飞行员靠这三条轴线来定位飞机,它们定义了飞机前行路线的角度。这称为飞机的飞行姿态(attitude)。如果飞机的飞行姿态不正确,那么只要有很少的外力施加到飞机上,飞机就会极大地偏离它的目的地。飞行员必须时刻注视飞机的飞行姿态,特别是在起飞和着落等关键时刻。 虽然这听起来像一个乏味的励志片,但它确实是我们的软件开发工作的一个贴切比喻。飞机的“态度”决定了它前进的角度,而我们的态度则决定了我们通往成功编码之路的方向。程序员的技术能力有多强并不重要,如果他或她的能力没有受到健康态度的支持,那么工作仍将是一件痛苦的差事。 错误的态度可以造成或中断一个软件项目,所以保持正确的前进角度来进行编程是至关重要的。你的态度要么阻碍,要么促进你的个人成长。要想成为更优秀的程序员,我们需要保证我们有正确的态度。 谁应该阅读这本书 显而易见,那些希望提高他们代码质量的人应该读这本书。我们都渴望成为更好的程序员;如果你没有这种渴望,那么这本书就不适合你。你也许是一名职业的程序员,很可能已入行多年。你也许是一名高年级的学生,熟知编程的概念,但是不太肯定应该如何将这些概念付诸于实践。如果你正在接受指导,或正在指导某个新手,读这本书也会大有裨益。 你必须已经具有编程经验。本书并不是要教你如何编程,而是告诉你如何更好地编程。当我尽力避免语言的歧义和教条时,我需要举出一些代码示例。这些示例大部分是使用C、C++或Java语言编写的,因为这些语言是当今流行的语言体系。读这些例子并不需要你是某种语言的专家,所以即使你不是一流的C++程序员,也不要惶恐。 我假设你作为本书的读者,正在或者将要在软件工厂的压力下编写代码。这通常意味着你受雇于一个商业性的开发组织,但你有可能在开发一个混乱的开放源码开发项目,或成为一个受雇为第三方提供软件的枪手(项目承包方)。 本书包含哪些内容 本书的重点在于程序员的态度,但它绝不是一本心理学教科书。我们将深入探讨许多主题,包括:  源代码的样式  防御性的编码技巧  如何有效地调试程序  良好的团队合作技巧  管理你的源代码 快速地浏览一下目录,你就可以了解本书所包含的内容。选择这些主题的理由是什么呢?我曾有好多年从事培训新程序员的工作,在此期间这些主题反反复复地被提出。我也曾在软件工厂中任职多年,看到过很多一遍又一遍地出现的问题,而这些问题都是与以上主题相关的。 如果你能够征服这些编程的羁绊,那你将从一个学习编程的新手成长为一位真正的编码高手。 本书的组织形式 我已经尽力将这本书写得易于阅读。传统的格言这样说,你应该从头开始并努力工作到最后。忘掉这句话吧。你完全可以拿起这本书,打开你感兴趣的章节,并从那里读起。每个章节都是独立的,其中有很多有用的交叉引用,可以使你了解各章之间是如何结合在一起的。当然,如果你喜欢遵循传统,从头读起也不失是一个好的选择。 各个章节都以相似的结构编写,你不会发现任何异样。每一章都可以分为下面几个部分: 本章主题 在每章的一开头,我会列出该章的要点。你可以从这里了解这章的内容梗概。浏览一下这些主题,你就会知道我们将涉及哪些方面的内容。 章节主体 这里都是会让你感到本书物有所值的引人入胜的内容。 在章节主体中会时而出现一些“关键理念”。这些关键理念强调了重要的技巧、问题和态度,所以对这些内容要格外关注。其格式是这样的: 关键概念 重要内容。注意! 总结 在每章的结尾,这一小节将总结该章所讨论的主题。它为整章内容提供了一个概括性的视图。如果你真的时间有限,也可以只阅读每章的关键理念和这些总结部分。千万别告诉别人这是我说的。 然后,我将对比优秀程序员和糟糕程序员的行为方式,来总结你应该力求采取的重要态度。如果你有勇气,也可以根据这些例子来评价一下自己,但愿事实不会让你太伤心! 另请参见 这个列表会将你带入相关的章节,并解释它们是如何与当前的主题相关的。 思考 最后,我将列出一些需要思考的问题。这些问题并不游离于全书之外——它们是各章不可缺少的一部分。它们并不是要你回顾刚才所阅读的主题,相反,这些问题的目的是使你进行思考,并联想到该章之外的内容。这些问题分为两组:  深入思考 这些问题将深入地研究各章的主题,并提出一些重要的论点。  了解自己 这些问题将探查你及你的软件开发团队的工作习惯和编码成熟度。 不要略过这些问题!即使你很懒惰,以至于不想坐下来认真思考每个问题的答案(相信我,思考这些问题的答案会使你受益无穷的),至少也应该读一读这些问题并顺便做些思考。 本书的最后一部分包含了对这些问题的答案和讨论。这并不是一套直接的答案集——这些问题中很少可以直接用“是”或“
line

网站简介广告服务网站地图帮助联系方式诚聘英才English问题报告

北京百联美达美数码科技有限公司  版权所有  京 ICP 证 020026 号

Copyright © 2000-2006, CSDN.NET, All Rights Reserved