• 交易规则(重要)

官方旗舰店 程序员修炼之道 通向务实的境界 第2版 从小工到专家新 程序员开发架构成长指南 计算机网络编程 软件开发教程书籍
本站优惠价
44.50
5.0折 原价:¥89.00
  • 销量
  • 卖家
  • 13+
  • 电子工业出版社旗舰店

服务由"电子工业出版社旗舰店"发货,并提供售后服务。

    担保交易,安全保证,有问题不解决可申请退款。购买前请询问清楚卖家,以卖家承诺为准! 自动发货商品,随时可以购买,付款后在订单详情下载,零等待。 不同会员等级尊享不同购买折扣。
天猫优惠券

天猫优惠券

已缴纳保证金

该商家已加入保障计划

官方旗舰店 程序员修炼之道 通向务实的境界 第2版 从小工到专家新 程序员开发架构成长指南 计算机网络编程 软件开发教程书籍

官方旗舰店 程序员修炼之道 通向务实的境界 第2版 从小工到专家新 程序员开发架构成长指南 计算机网络编程 软件开发教程书籍
官方正版 超级搜索术:帮你找到99%问题的答案 甄选近100个实际案例 200个应用场景 300个趁手工具(网站+App+技巧)信息素养提升书
促销价:¥64.40
官方正版 卓越密码 如何成为专家 知识管理书籍 知识管理实施指南 高效工作 企业管理培训书籍 知识工作效率提高书籍
促销价:¥31.37
Flutter从0基础到App上线 萧文翰 Flutter 框架开发 Dart编程语言教程书籍 Flutter开发环境搭建图书 App程序员开发书
促销价:¥82.60
官方正版 智联网 新思维 智能 +时代的思维大爆发 彭昭 新智力 创新思维 新型思维模式 技术发展 组织变革和商业模式书籍
促销价:¥42.25
官方正版 设计的力量PPT设计与制作教程 PPT场景化制作 如何让你的PPT更具说服力 PPT设计思维与技能指导 PPT设计书
促销价:¥48.86
移动开发架构设计实战 移动开发中涉及的多种架构模式基于Android平台对架构模式进行实战 计算机移动开发教程书籍
促销价:¥62.30
程序员修炼之道:通向务实的最高境界 第2版 从小工到专家新 程序员开发架构成长指南 求职宝典 计算机网络编程 软件开发教程书籍
促销价:¥52.00
百度SEO一本通
促销价:¥38.35

官方旗舰店 程序员修炼之道 通向务实的境界 第2版 从小工到专家新 程序员开发架构成长指南 计算机网络编程 软件开发教程书籍
目录

目录

序  XVII

新版前言  XXI

**版前言  XV

提示1:关注你的技艺  XVII

如果你不关心怎么做好,为什么还要花时间去开发软件呢?

提示2:思考!思考你的工作  XVII

关掉辅助驾驶,由自己掌控,持续不断地评估所做的工作。

第1章  务实的哲学  1

1  人生是你的  2

提示3:你有权选择  3

人生是自己的。把握住人生,让它如你所愿。

2  我的源码被猫吃了  3

提示4:提供选择,别找借口  5

提供选择而不是去找理由。不要只说做不到;解释一下都能做些什么。

3  软件的熵  6

提示5:不要放任破窗  7

只要看到不好的设计、错误的决策、糟糕的代码,就赶紧去纠正。

4  石头做的汤和煮熟的青蛙  9

提示6:做推动变革的催化剂  10

你无法强迫人们去改变,但可以展示美好未来,并帮助他们参与创造。

提示7:牢记全景  10

不要过度沉浸于细枝末节,以免察觉不到周围正在发生的事情。

5  够好即可的软件  11

提示8:将质量要求视为需求问题  12

让用户参与对项目真实质量需求的确定。

6  知识组合  14

提示9:对知识组合做定期投资  16

养成学习的习惯。

提示10:批判性地分析你读到和听到的东西  18

不要受供应商、媒体炒作或教条的影响,根据自身和项目的实际情况来分析信息。

7  交流!  20

提示11:英语就是另一门编程语言  20

将英语视作一门编程语言。写文档和编程一样要遵循 DRY 原则、ETC、自动化等。

提示12:说什么和怎么说同样重要  23

如果无法有效交流,任何伟大的想法都是没有意义的。

提示13:把文档嵌进去,而不要栓在表面  24

与代码隔离的文档,很难保持正确并及时更新。

第2章  务实的方法  27

8  优秀设计的精髓  28

提示14:优秀的设计比糟糕的设计更容易变更  28

适合使用者的事物,都已经过良好设计。对代码来说,这意味着必须适应变化。

9  DRY——邪恶的重复  30

提示15:DRY——不要重复自己  31

系统中的每一条知识,都必须有单一且无歧义的**陈述。

提示16:让复用变得更容易  39

只要复用方便,人们就会去做。创建一个支持复用的环境。

10  正交性  40

提示17:消除不相关事物之间的影响  41

设计的组件,需要自成一体、独立自主,有单一的清晰定义的意图。

11  可逆性  48

提示18:不设*终决定  50

不要把决定刻在石头上,而要将其视为写在沙滩上的东西,时刻准备应变。

提示19:放弃追逐时尚  50

尼尔?福特说过:“昨日之*佳实践,即明日之反模式。”要基于基本原则去选择架构,而不应盲从于流行。

12  曳光弹  51

提示20:使用曳光弹找到目标  53

通过不断尝试并看清着弹点,曳光弹可确保你*终击中目标。

13  原型与便签  57

提示21:用原型学习  58

制作原型旨在学习经验,其价值不在于过程中产生的代码,而在于得到的教训。

14  领域语言  60

提示22:靠近问题域编程  61

用问题领域的语言来做设计和编程。

15  估算  67

提示23:通过估算来避免意外  67

开始之前做估算,能提前发现潜在问题。

提示24:根据代码不断迭代进度表  72

利用实施过程中获得的经验来精细化项目的时间尺度。

第3章  基础工具  74

16  纯文本的威力  75

提示25:将知识用纯文本保存  76

纯文本不会过时。它能够让你的工作事半功倍,并能简化调试和测试工作。

17  Shell游戏  79

提示26:发挥 Shell 命令的威力  80

当图形化界面无法胜任时,使用 Shell。

18  加强编辑能力  82

提示27:游刃有余地使用编辑器  82

既然编辑器是至关重要的工具,不妨了解一下如何用它更快更准确地实现需求。

19  版本控制  85

提示28:永远使用版本控制  87

版本控制为你的工作创造了一个时间机器,可以用它重返过去。

20  调试  90

提示29:去解决问题,而不是责备  91

Bug 到底来自你的失误还是别人的失误真的不重要——它终究是你的问题,需要你来修复。

提示30:不要恐慌  91

不管是对银河系搭车客,还是对开发者来说,都应这样。

提示31:修代码前先让代码在测试中失败  93

在你修 Bug 前,先创建一个聚焦于该 Bug 的测试。

提示32:读一下那些该死的出错信息  93

大多数异常都能告诉失败之物与失败之处。如果足够幸运,你甚至能得到具体的参数值。

提示33:“select”没出问题  97

在操作系统或编译器中发现 Bug 非常罕见,甚至在第三方产品或库中也是如此。Bug 大多出现在应用程序中。

提示34:不要假设,要证明  97

在真实环境中证实你的假设——要依赖真实的数据及边界条件。

21  文本处理  99

提示35:学习一门文本处理语言  99

既然每天都要花大量的时间与文本打交道,何不让计算机帮你分担一二?

22  工程日记  101

第4章  务实的偏执  103

提示36:你无法写出完美的软件  103

软件不可能是完美的。对于在所难免的错误,要保护代码和用户免受其影响。

23  契约式设计  104

提示37:通过契约进行设计  107

代码是否不多不少刚好完成它宣称要做的事情,可以使用契约加以校验和文档化。

24  死掉的程序不会说谎  113

提示38:尽早崩溃  114

彻底死掉的程序通常比有缺陷的程序造成的损害要小。

25  断言式编程  115

提示39:使用断言去预防不可能的事情  115

如果一件事情不可能发生,那么就用断言来确保其的确不会发生。断言在校验你的假设,要使用断言在不确定的世界中将你的代码保护起来。

26  如何保持资源的平衡  119

提示40:有始有终  119

只要有可能,对资源进行分配的函数或对象就有责任去释放该资源。


提示41:在局部行动  122

将易变的变量维持在一个范围内,打开资源的过程要短暂且明显可见。

27  不要冲出前灯范围  127

提示42:小步前进——由始至终  127

永远小步前进,不断检查反馈,并且在推进前先做调整。

提示43:避免占卜  129

只在你能看到的范围内做计划。

第5章  宁弯不折  130

28  解耦  131

提示44:解耦代码让改变更容易  132

耦合使事物紧紧绑定在一起,以至于很难只改变其中之一。

提示45:只管命令不要询问  133

不要从对象中取出值,在加以变换后再塞回去,让对象自己来完成这些工作。

提示46:不要链式调用方法  135

当访问某事物时,使用的点号不要超过一个。

提示47:避免全局数据  137

*好给每个方法增加一个额外的参数。

提示48:如果全局**非常重要,那么将它包装到API 中  137

……但是,仅限于你真的非常希望它是全局的。

29  在现实世界中抛球杂耍  139

30  变换式编程  149

提示49:编程讲的是代码,而程序谈的是数据  151

所有的程序都在变换数据——将输入转换为输出。开始用变换式方法来设计吧!

提示50:不要囤积状态,传递下去  156

不要把数据保持在函数或模块的内部,拿出来传递下去。

31  继承税  162

提示51:不要付继承税  165

考虑一下能更好满足需求的替代方案,比如接口、委托或mixin。

提示52:尽量用接口来表达多态  167

无需继承引入的耦合,接口就能明确描述多态性。

提示53:用委托提供服务:“有一个”胜过“是一个”  167

不要从服务中继承,应该包含服务。

提示54:利用 mixin 共享功能  169

mixin 不必承担继承税就可以给类添加功能,而与接口结合可以让多态不再令人痛苦。

32  配置  170

提示55:使用外部配置参数化应用程序  170

如果代码对一些在应用程序发布后还有可能改变的值有所依赖,那么就在应用外部维护这些值。

第6章  并发  174

33  打破时域耦合  175

提示56:通过分析工作流来提高并发性  176

利用用户工作流中的并发性。

34  共享状态是不正确的状态  179

提示57:共享状态是不正确的状态  180

共享状态会带来无穷的麻烦,而且往往只有重启才能解决。

提示58:随机故障通常是并发问题  186

或许时间和上下文的变化能暴露并发Bug,但并发Bug无法始终保持一致,也很难重现。

35  角色与进程  187

提示59:用角色实现并发性时不必共享状态  188

使用角色来管理并发状态,可以避免显式的同步。

36  黑板  193

提示60:使用黑板来协调工作流  195

使用黑板来协调不相关的事实和代理人,能同时保持参与者之间的独立性和孤立性。

第7章  当你编码时  198

37  听从蜥蜴脑  199

提示61:倾听你内心的蜥蜴  201

当编程举步维艰时,其实是潜意识在告诉你有什么地方不对劲。

38  巧合式编程  204

提示62:不要依赖巧合编程  207

只能依赖可靠的事物。注意偶然事件的复杂性,不要混淆快乐的巧合与有目的的计划。

39  算法速度  210

提示63:评估算法的级别  214

在开始编程前,对这件事情大概会花多长时间要有概念。

提示64:对估算做测试  214

针对算法的数学分析无法说明所有问题,尝试在目标环境中测试一下执行代码的耗时。

40  重构  216

提示65:尽早重构,经常重构  219

像除草和翻整花园那样,只要有需要就对代码进行重新编写、修订和架构,以便找到问题的根源并加以修复。

41  为编码测试  220

提示66:测试与找 Bug 无关  221

测试是观察代码的一个视角,可以从中得到针对设计、接口和耦合度的反馈。

提示67:测试是代码的**个用户  222

用测试的反馈来引导工作。

提示68:既非自上而下,也不自下而上,基于端对端构建  225

创建一小块端到端的功能,从中获悉问题之所在。

提示69:为测试做设计  228

写下代码之前先从测试角度思考。

提示70:要对软件做测试,否则只能留给用户去做  230

无情地测试,不要等用户来帮你找 Bug。

42  基于特性测试  231

提示71:使用基于特性的测试来校验假设  231

基于特性的测试将会进行你从未想过的尝试,并会以你不曾打算采用的方式操练你的代码。

43  出门在外注意安全  238

提示72:保持代码简洁,让攻击面*小  241

复杂的代码给 Bug 以滋生之沃土,给攻击者以可趁之机。

提示73:尽早打上安全补丁  243

攻击者会尽可能快地部署攻击,你必须快上加快。

44  事物命名  245

提示74:好好取名;需要时更名  249

用名字向读者表达你的意图,并且在意图改变时及时更名。

第8章  项目启动之前  251

45  需求之坑  252

提示75:无人确切知道自己想要什么  252

他们或许知道大概的方向,但不会了解过程的曲折。

提示76:程序员帮助人们理解他们想要什么  253

软件开发更像是一种由用户和程序员协同创造的行为。

提示77:需求是从反馈循环中学到的  254

理解需求需要探索和反馈,因此决策的结果可以用来完善*初的想法。

提示78:和用户一起工作以便从用户角度思考  255

这是看透系统将如何被真正使用的*佳方法。

提示79:策略即元数据  256

不要将策略硬编码进系统,而应该将其表达为系统的一组元数据。

提示80:使用项目术语表  259

为项目的所有特定词汇创建一张术语表,并且在单一源头维护。

46  处理无法解决的难题  260

提示81:不要跳出框框思考——找到框框  261

在面对无法解决的难题时,识别出真正的约束。可以问自己:“必须这样做才能搞定吗?必须搞定它吗?”

47  携手共建  264

提示82:不要一个人埋头钻进代码中  267

编程往往困难又费力,找个朋友和你一起干。

提示83:敏捷不是一个名词;敏捷有关你如何做事  267

敏捷是一个形容词,有关如何做事情。

48  敏捷的本质  267

第9章  务实的项目  271

49  务实的团队  272

提示84:维持小而稳定的团队  272

团队应保持稳定、小巧,团队中的每个人都应相互信任、互相依赖。

提示85:排上日程以待其成  274

如果你不把事情纳入日程表,它们就不会发生。反思、实验、学习、提高技能,这些事都应放入日程表。

提示86:组织全功能的团队  276

围绕功能而不是工作职能组织团队。不要将 UI/UX 设计者从程序员中分离出去,也不要分开前端和后端;不要区分数据建模者和测试人员,以及开发和设计。构建一个团队,这样你就可以渐进地不断迭代端到端的代码。

50  椰子派不上用场  277

提示87:做能起作用的事,别赶时髦  279

不要仅仅因为别的公司正在那么干就采纳一项技术或采用一个开发方法,而是要采用自己所处环境中对团队有效的东西。

提示88:在用户需要时交付  281

不要卡着流程要求,刻意等到几周甚至几个月后才交付。

51  务实的入门套件  281

提示89:使用版本控制来驱动构建、测试和发布  282

利用提交或推送来触发构建、测试、发布,利用版本控制的标签来进行生产部署。

提示90:尽早测试,经常测试,自动测试  283

每次构建都跑一下的测试,要比束之高阁的测试计划有效得多。

提示91:直到所有的测试都已运行,编码才算完成  283

无须多言。

提示92:使用破坏者检测你的测试  285

在一个单独的源码副本中特意引入 Bug,验证测试能否将其捕获。

提示93:测试状态覆盖率,而非代码覆盖率  286

要识别并测试重要的程序状态,只测试一行行的代码是不够的。

提示94:每个 Bug 只找一次  286

只要人类测试者找到一个 Bug ,就应该是该 Bug *后一次被人类发现。从此之后,自动化测试完全可以发现它。

提示95:不要使用手动程序  287

计算机能一次又一次,按照同样的次序,执行相同的指令。

52  取悦用户  288

提示96:取悦用户,而不要只是交付代码  289

为用户开发能够带来商业价值的解决方案,并让他们每天都感到愉快。

提示97:在作品上签名  290

过去的工匠在为他们的作品签名时非常自豪,你也应该这样。

53  傲慢与偏见  290

跋  292

提示98:先勿伤害  293

犯错在所难免,确保犯错后没人会因此受难。

提示99:不要助纣为虐  294

因为这样做你也有变成纣王的风险。

参考文献  295

练习的参考答案  297

译者跋  312


官方旗舰店 程序员修炼之道 通向务实的境界 第2版 从小工到专家新 程序员开发架构成长指南 计算机网络编程 软件开发教程书籍
作者介绍

译者云风(真名吴云洋),曾任网易杭州研究中心总监,是网易《大话西游》《梦幻西游》等知名游戏的主要开发者;2011 年与前网易 COO 詹钟晖联合创办简悦(EJOY)游戏公司,兼任 CTO,现该公司已被阿里收购;在互联网、游戏界拥有较高技术影响力,常年发表博客文章,并著有《游戏之旅》及《Effective C++(评注版)》。

官方旗舰店 程序员修炼之道 通向务实的境界 第2版 从小工到专家新 程序员开发架构成长指南 计算机网络编程 软件开发教程书籍
  • 商品评价
  • 匿名
  • 书不错,翻译也可以
  • 2023-05-21
好评
  • 匿名
  • 书不错好
  • 2023-05-21
好评
  • 匿名
  • 包装完好
  • 2023-05-21
好评
  • 匿名
  • 买给家人的 他不敢说不好 不然我就不买了 hhh 实话 有点贵
  • 2023-05-21
好评
  • 匿名
  • 挺好
  • 2023-05-21
好评
  • 匿名
  • 包装很好
  • 2023-05-21
好评
  • 匿名
  • 正品,买的放心,价钱也公道,满意!比京东的便宜多了!而且是新版正版书籍!
  • 2023-05-21
好评
  • 匿名
  • 特别特别棒,货比三家才买的,店主人很好,回答问题很有耐心,也很详细,有需要还会再来的
  • 2023-05-21
好评
  • 匿名
  • 很不错的书,值得购买!
  • 2023-05-21
好评
  • 匿名
  • 1
  • 2023-05-21
好评
  • 匿名
  • 还不错,适合做职业生涯指导用
  • 2023-05-21
好评
  • 匿名
  • 非常之差,发过来的书籍根本不一样,客服回消息非常慢,服务态度差!
  • 2023-05-21
好评
  • 匿名
  • 还没看,
  • 2023-05-21
好评
  • 匿名
  • OK
  • 2023-05-21
好评
  • 匿名
  • 很不错
  • 2023-05-21
好评
  • 匿名
  • 很好的书
  • 2023-05-21
好评
  • 匿名
  • 书还不错,虽然没注意名称买错了。
  • 2023-05-21
好评
  • 匿名
  • 某韵物流真的暴力。。。 另外,书本用泡沫裹装不是常态了吗?作为官方旗舰店居然就套了层纸板,这对保护书角有任何实质作用吗?
  • 2023-05-21
好评
  • 匿名
  • 包装严实,边角完整。怒赞????????!!!
  • 2023-05-21
好评
  • 匿名
  • 包装情况:保护到位,一个角落有撞击,可以接受 印刷质量:不错 内容生动性:又多了一本圣经
  • 2023-05-21
好评
  • 匿名
  • 好哲学 大一看有些早了
  • 2023-05-21
好评
  • 匿名
  • 此次购物令我非常满意。商家发货迅速,从订货到收货仅仅只有一天时间。外包装没有丝毫破损,内部商品没有任何瑕疵。一次完美的网上购物。
  • 2023-05-21
好评
  • 匿名
  • 绝对是最开心的一次购物,店家服务态度很好,售后也是
  • 2023-05-21
好评
  • 匿名
  • 很好
  • 2023-05-21
好评
  • 交易规则


  • 发货方式


  • 自动:在特色服务中标有自动发货的商品,拍下后,源码类 软件类 商品会在订单详情页显示来自卖家的商品下载链接,点卡类 商品会在订单详情直接显示卡号密码。

    手动:未标有自动发货的的商品,付款后,商品卖家会收到平台的手机短信、邮件提醒,卖家会尽快为您发货,如卖家长时间未发货,买家也可通过订单上的QQ或电话主动联系卖家。


  • 退款说明


  • 1、源码类:商品详情(含标题)与实际源码不一致的(例:描述PHP实际为ASP、描述的功能实际缺少、功能不能正常使用等)!有演示站时,与实际源码不一致的(但描述中有"不保证完全一样、可能有少许偏差"类似显著公告的除外);

  • 2、营销推广:未达到卖家描述标准的;

    3、点卡软件所售点卡软件无法使用的;

  • 3、发货:手动发货商品,在卖家未发货前就申请了退款的;

    4、服务:卖家不提供承诺的售后服务的;(双方提前有商定和描述中有显著声明的除外)

    5、其他:如商品或服务有质量方面的硬性常规问题的。未符合详情及卖家承诺的。

  • 注:符合上述任一情况的,均支持退款,但卖家予以积极解决问题则除外。交易中的商品,卖家无法修改描述!


  • 注意事项


  • 1、在付款前,双方在QQ上所商定的内容,也是纠纷评判依据(商定与商品描述冲突时,以商定为准);

    2、源码商品,同时有网站演示与商品详情图片演示,且网站演示与商品详情图片演示不一致的,默认按商品详情图片演示作为纠纷评判依据(卖家有特别声明或有额外商定的除外);

  • 3、点卡软件商品,默认按商品详情作为纠纷评判依据(特别声明或有商定除外);

  • 4、营销推广商品,默认按商品详情作为纠纷评判依据(特别声明或有商定除外);

    5、在有"正当退款原因和依据"的前提下,写有"一旦售出,概不支持退款"等类似的声明,视为无效声明;

    6、虽然交易产生纠纷的几率很小,卖家也肯定会给买家最完善的服务!但请买卖双方尽量保留如聊天记录这样的重要信息,以防产生纠纷时便于送码网快速介入处理。


  • 送码声明


  • 1、送码网作为第三方中介平台,依据双方交易合同(商品描述、交易前商定的内容)来保障交易的安全及买卖双方的权益;

  • 2、非平台线上交易的项目,出现任何后果均与送码网无关;无论卖家以何理由要求线下交易的(如:要求买家支付宝转账付款的,微信转账付款的等),请联系管理举报,本平台将清退卖家处理。


热门推荐
浏览记录