编辑推荐
这是一本让大师们都爱不释手的书!
这不会是一本只想要读一遍的书!
这是一本不逊于《代码大全》的伟大著作!
这是一本能帮助你成为编程高手的“武功秘籍”!
内容简介
《程序员修炼之道:从小工到专家》由一系列独立的部分组成,涵盖的主题从个人责任、职业发展,直到用于使代码保持灵活、并且易于改编和复用的各种架构技术,利用许多富有娱乐性的奇闻轶事、有思想性的例子及有趣的类比,全面阐释了软件开发的许多不同方面的较佳实践和重大陷阱。无论你是初学者,是有经验的程序员,还是软件项目经理,本书都适合你阅读。
作者简介
亨特(Andy Hunt),是一位热切的木匠和音乐家,但奇怪的是,人们更需要作为顾问的他。他的工作领域包括电信、银行、金融服务、公共服务,以及一些更奇特的领域,比如医学成像、图形艺术、Internet服务。
Andy的专长是把经过验证的技术与先进的技术混合在一起,创建各种新颖的——但也是实用的——解决方案。Andy在北卡罗莱纳州的罗利市拥有自己的顾问公司。
托马斯(Dave Thomas),喜欢驾驶单引擎飞机飞行,并通过这样的方式为他的习惯付账:为各种难题寻找优雅的解决方案,提供诸多领域里的咨询服务——航空、银行、金融服务、电信、交通运输及Internet。在于1994年移居美国前,Dave在英国创立了一家通过ISO9001认证的软件公司,为世界各地的客户开发成熟、定制的软件项目。Dave现在是一位独立顾问,居住在德克萨斯州的达拉斯。
以ThePragmaticProgrammer,L.L.C的名义,Dave与Andy正在协同工作,把合起来超过四十年的专业经验带给美国各地的客户。
马维达,《C++网络编程(卷2)》与《ACE自适配通信环境技术文档》的译者,技术兴趣为C++网络编程(ACE)与分布式对象计算(InternetCommunicationsEngine)。
内页插图
目录
前言
序
第1章 注重实效的哲学
1 我的源码让猫给吃了
2 软件的熵
3 石头汤与煮青蛙
4 足够好的软件
5 你的知识资产
6 交流
第2章 注重实效的途径
7 重复的危害
8 正交性
9 可撤消性
10 曳光弹
11 原型与便笺
12 领域语言
13 估算
第3章 基本工具
14 纯文本的威力
15 shell游戏
16 强力编辑
17 源码控制
18 调试
19 文本操纵
20 代码生成器
第4章 注重实效的偏执
21 按合约设计
22 死程序不说谎
23 断言式编程
24 何时使用异常
25 怎样配平资源
第5章 弯曲,或折断
26 解耦与得墨忒耳法则
27 元程序设计
28 时间耦合
29 它只是视图
30 黑板
第6章 当你编码时
31 靠巧合编程
32 算法速率
33 重构
34 易于测试的代码
35 邪恶的向导
第7章 在项目开始之前
36 需求之坑
37 解开不可能解开的谜题
38 等你准备好
39 规范陷阱
40 圆圈与箭头
第8章 注重实效的项目
41 注重实效的团队
42 无处不在的自动化
43 无情的测试
44 全都是写
45 极大的期望
46 傲慢与偏见
附录A 资源
专业协会
建设藏书库
Internet资源
参考文献
附录B 练习解答
索引
注重实效的程序员之快速参考指南
精彩书摘
依据你的职业发展、你的项目和你每天的工作,为你自己和你的行为负责这样一种观念,是注重实效的哲学的一块基石。注重实效的程序员对他或她自己的职业生涯负责,并且不害怕承认无知或错误。这肯定并非是编程最令人愉悦的方面,但它肯定会发生——即使是在最好的项目中。尽管有彻底的测试、良好的文档以及足够的自动化,事情还是会出错。交付晚了,出现了未曾预见到的技术问题。发生这样的事情,我们要设法尽可能职业地处理它们。这意味着诚实和坦率。我们可以为我们的能力自豪,但对于我们的缺点——还有我们的无知和我们的错误——我们必须诚实。
责任是你主动担负的东西。你承诺确保某件事情正确完成,但你不一定能直接控制事情的每一个方面。除了尽你所能以外,你必须分析风险是否超出了你的控制。对于不可能做到的事情或是风险太大的事情,你有权不去为之负责。你必须基于你自己的道德准则和判断来做出决定。
如果你确实同意要为某个结果负责,你就应切实负起责任。当你犯错误(就如同我们所有人都会犯错误一样)、或是判断失误时,诚实地承认它,并设法给出各种选择。不要责备别人或别的东西,或是拼凑借口。不要把所有问题都归咎于供应商、编程语言、管理部门、或是你的同事。也许他(它)们全体或是某几方在其中扮演了某种角色,但你可以选择提供解决方案,而非寻找借口。
如果存在供应商不能按时供货的风险,你应该预先制定一份应急计划。如果磁盘垮了——带走了你的所有源码一而你没有做备份,那是你的错。告诉你的老板“我的源码让猫给吃了”也无法改变这一点。
……
前言/序言
作为评阅者,我得到了提早阅读你拿在手上的这本书的机会。即使当时还只是草稿,它就已是一本很好的书。DaveThomas和AndyHunt有话要说,并且知道怎样去说。我见过他们所做的事情,知道他们所说的将是有效的。我请求让我来撰写这篇前言,以便有机会向你解释其中的原因。
简而言之,本书将告诉你怎样以一种你能够遵循的方式去编程。也许你不认为这是一件困难的事情,但事情却并非如此。为什么?原因之一是,并非所有的编程书籍都是由程序员撰写的。其中有许多是由语言设计者、或是与他们有合作关系的报刊记者编撰而成,意在推销他们的作品。那些书告诉你怎样通过某种编程语言进行表达——这当然很重要,但却只是程序员所做的事情的一小部分。
除了通过编程语言进行表达,程序员还要做些什么?嗯,这是一个更深入的问题。大多数程序员在解释他们所做的事情这个问题上都会有困难。编程是一项充满了各种细节的工作,追踪这些细节需要专注。时间流逝、代码出现,你查看它们,那里全是些语句。如果你不仔细思考,你也许会以为编程不过就是敲入某种编程语言的语句。你当然错了,但找遍书店的编程专柜,你却还是讲不出所以然。
在《程序员修炼之道》一书中,Dave和Andy将告诉我们怎样以一种我们能够遵循的方式编程。他们何以能这样聪明?他们不也是和其他程序员一样,专注于各种细节而已吗?答案是他们在做某件事情时,会把注意力投注在他们在做的事情上——然后他们会试着把它做得更好。
设想你在参加一个会议。或许你在想,这个会议没完没了,你还不如去写程序。而Dave和Andy会想,他们为什么在开会,他们想知道是否可以通过另外的方式取代会议,并决定是否可使某样事情自动化,以使开会的工作推后。然后他们就会这样去做。
这就是Dave和Andy思考的方式。开会并非是某种使他们远离编程的事情。开会就是编程,并且是能够加以改善的编程。我之所以知道他们以这样的方式思考,是因为这是书中的第二条提示:思考你的工作。
那么再设想一下,他们这样思考了几年。很快他们就会拥有一堆解决方案。现在设想他们在工作中使用这些解决方案,又是几年;他们还放弃了其中太过困难、或者不能总是产生结果的解决方案。噢,这样的途径几乎定义了“pragmatic”(注重实效)的含义。现在设想他们又用了一两年来写下他们的解决方案。你也许会想,这些信息可真是金矿。你想对了。
两位作者告诉我们他们是怎样编程的,并且是以一种我们能够遵循的方式来告诉我们的。但这一陈述的后半部分的含义也许要多于你所想到的。让我来解释一下。
程序员修炼之道:从小工到专家 epub pdf mobi txt 电子书 下载 2024
程序员修炼之道:从小工到专家 下载 epub mobi pdf txt 电子书 2024