展开全部

主编推荐语

这是一本成为高手程序员的清单手册,颠覆了无数程序员的软件生涯。时隔20年全新再版。

内容简介

《程序员修炼之道》之所以在全球范围内广泛传播,被一代代开发者奉为圭臬,是因为它可以创造出真正的价值:或编写出更好的软件,或探究出编程的本质,而所有收获均不依赖于特定语言、框架和方法。

时隔20年的新版,经过全面的重新选材、组织和编写,覆盖哲学、方法、工具、设计、解耦、并发、重构、需求、团队等务实话题的最佳实践及重大陷阱,以及易于改造、复用的架构技术。本书极具洞察力与趣味性,适合从初学者到架构师的各阶层读者潜心研读或增广见闻。

目录

  • 版权信息
  • 内容简介
  • 本书赞誉
  • 新版前言
  • 第一版前言
  • 提示1 关注你的技艺
  • 提示2 思考!思考你的工作
  • 第1章 务实的哲学
  • 1 人生是你的
  • 提示3 你有权选择
  • 2 我的源码被猫吃了
  • 提示4 提供选择,别找借口
  • 3 软件的熵
  • 提示5 不要放任破窗
  • 4 石头做的汤和煮熟的青蛙
  • 提示6 做推动变革的催化剂
  • 提示7 牢记全景
  • 5 够好即可的软件
  • 提示8 将质量要求视为需求问题
  • 6 知识组合
  • 提示9 对知识组合做定期投资
  • 提示10 批判性地分析你读到和听到的东西
  • 7 交流!
  • 提示11 英语就是另一门编程语言
  • 提示12 说什么和怎么说同样重要
  • 提示13 把文档嵌进去,而不要栓在表面
  • 第2章 务实的方法
  • 8 优秀设计的精髓
  • 提示14 优秀的设计比糟糕的设计更容易变更
  • 9 DRY ——邪恶的重复
  • 提示15 DRY——不要重复自己
  • 提示16 让复用变得更容易
  • 10 正交性
  • 提示17 消除不相关事物之间的影响
  • 11 可逆性
  • 提示18 不设最终决定
  • 提示19 放弃追逐时尚
  • 12 曳光弹
  • 提示20 使用曳光弹找到目标
  • 13 原型与便签
  • 提示21 用原型学习
  • 14 领域语言
  • 提示22 靠近问题域编程
  • 15 估算
  • 提示23 通过估算来避免意外
  • 提示24 根据代码不断迭代进度表
  • 第3章 基础工具
  • 16 纯文本的威力
  • 提示25 将知识用纯文本保存
  • 17 Shell游戏
  • 提示26 发挥 Shell 命令的威力
  • 18 加强编辑能力
  • 提示27 游刃有余地使用编辑器
  • 19 版本控制
  • 提示28 永远使用版本控制
  • 20 调试
  • 提示29 去解决问题,而不是责备
  • 提示30 不要恐慌
  • 提示31 修代码前先让代码在测试中失败
  • 提示32 读一下那些该死的出错信息
  • 提示33 “select”没出问题
  • 提示34 不要假设,要证明
  • 21 文本处理
  • 提示35 学习一门文本处理语言
  • 22 工程日记
  • 第4章 务实的偏执
  • 提示36 你无法写出完美的软件
  • 23 契约式设计
  • 提示37 通过契约进行设计
  • 24 死掉的程序不会说谎
  • 提示38 尽早崩溃
  • 25 断言式编程
  • 提示39 使用断言去预防不可能的事情
  • 26 如何保持资源的平衡
  • 提示40 有始有终
  • 提示41 在局部行动
  • 27 不要冲出前灯范围
  • 提示42 小步前进——由始至终
  • 提示43 避免占卜
  • 第5章 宁弯不折
  • 28 解耦
  • 提示44 解耦代码让改变更容易
  • 提示45 只管命令不要询问
  • 提示46 不要链式调用方法
  • 提示47 避免全局数据
  • 提示48 如果全局唯一非常重要,那么将它包装到API 中
  • 29 在现实世界中抛球杂耍
  • 30 变换式编程
  • 提示49 编程讲的是代码,而程序谈的是数据
  • 提示50 不要囤积状态,传递下去
  • 31 继承税
  • 提示51 不要付继承税
  • 提示52 尽量用接口来表达多态
  • 提示53 用委托提供服务:“有一个”胜过“是一个”
  • 提示54 利用 mixin 共享功能
  • 32 配置
  • 提示55 使用外部配置参数化应用程序
  • 第6章 并发
  • 33 打破时域耦合
  • 提示56 通过分析工作流来提高并发性
  • 34 共享状态是不正确的状态
  • 提示57 共享状态是不正确的状态
  • 提示58 随机故障通常是并发问题
  • 35 角色与进程
  • 提示59 用角色实现并发性时不必共享状态
  • 36 黑板
  • 提示60 使用黑板来协调工作流
  • 第7章 当你编码时
  • 37 听从蜥蜴脑
  • 提示61 倾听你内心的蜥蜴
  • 38 巧合式编程
  • 提示62 不要依赖巧合编程
  • 39 算法速度
  • 提示63 评估算法的级别
  • 提示64 对估算做测试
  • 40 重构
  • 提示65 尽早重构,经常重构
  • 41 为编码测试
  • 提示66 测试与找 Bug 无关
  • 提示67 测试是代码的第一个用户
  • 提示68 既非自上而下,也不自下而上,基于端对端构建
  • 提示69 为测试做设计
  • 提示70 要对软件做测试,否则只能留给用户去做
  • 42 基于特性测试
  • 提示71 使用基于特性的测试来校验假设
  • 43 出门在外注意安全
  • 提示72 保持代码简洁,让攻击面最小
  • 提示73 尽早打上安全补丁
  • 44 事物命名
  • 提示74 好好取名;需要时更名
  • 第8章 项目启动之前
  • 45 需求之坑
  • 提示75 无人确切知道自己想要什么
  • 提示76 程序员帮助人们理解他们想要什么
  • 提示77 需求是从反馈循环中学到的
  • 提示78 和用户一起工作以便从用户角度思考
  • 提示79 策略即元数据
  • 提示80 使用项目术语表
  • 46 处理无法解决的难题
  • 提示81 不要跳出框框思考——找到框框
  • 47 携手共建
  • 提示82 不要一个人埋头钻进代码中
  • 48 敏捷的本质
  • 提示83 敏捷不是一个名词;敏捷有关你如何做事
  • 第9章 务实的项目
  • 49 务实的团队
  • 提示84 维持小而稳定的团队
  • 提示85 排上日程以待其成
  • 提示86 组织全功能的团队
  • 50 椰子派不上用场
  • 提示87 做能起作用的事,别赶时髦
  • 提示88 在用户需要时交付
  • 51 务实的入门套件
  • 提示89 使用版本控制来驱动构建、测试和发布
  • 提示90 尽早测试,经常测试,自动测试
  • 提示91 直到所有的测试都已运行,编码才算完成
  • 提示92 使用破坏者检测你的测试
  • 提示93 测试状态覆盖率,而非代码覆盖率
  • 提示94 每个 Bug 只找一次
  • 提示95 不要使用手动程序
  • 52 取悦用户
  • 提示96 取悦用户,而不要只是交付代码
  • 53 傲慢与偏见
  • 提示97 在作品上签名
  • 提示98 先勿伤害
  • 提示99 不要助纣为虐
  • 参考文献
  • 练习的参考答案
  • 译者跋
展开全部

评分及书评

4.5
161个评分
  • 用户头像
    给这本书评了
    5.0
    程序员提升编码思维的首选图书。5星推荐

    本书给你描绘了一个务实的程序员应该是什么样的。你只需要按照书中的方式进行修炼即可。很多人觉得这本书难啃,因为里面太多行业术语,但难啃意味着如果啃下来,好处也是巨大的。说说我心目中务实程序员的特征:首先,在面对问题上,务实的程序员会越过问题的表面,基于整体来分析,找到问题背后的原因。如果你不了解需求的目的,你也不会知道为什么当初会这样做。更不知道如何来解决问题。其次,就是对自己做的事情负责,一件事情出问题,可能有多种原因。以我们开发中最常见的上线延期为例,延期了是谁的问题?肯定有多方面问题,需求时间评估不足、需求理解错误、需求有变更、其他人的计划延期以及一些意外情况等等。但细想一下,哪些问题是你能做好却没做好的?我们要直面问题,才能解决问题。最后,就是要多学习,你需要大量的基础知识和经验,才可能实现以上这些。很多程序员是有完美情结的,但记住一句话,完成好过完美。我们只能在有限资源里完成某个任务,永远达不到完美。但我们每一次迭代都是在接近完美。

      转发
      评论
      用户头像
      给这本书评了
      5.0

      这本书有可能颠覆你的技术生涯

        转发
        评论
        用户头像
        给这本书评了
        2.0
        非程序员不值得阅读

        如果不是程序员这本书不必读,因为编程这一行发展太快,可以说日新月异,我 40 年前开始编程,从打孔机开始应该经历了计算机发展的整个过程。原本翻译的书就很难流畅,再加上夹杂一些代码,找人生哲理也不必在这本书里找,如果是程序员为了怀旧,感慨,教学老师可以当闲书翻翻多些谈资,编程慢慢也如同数学进入通识教育范畴,编程建立在科学基础上的逻辑推导,有编程思维不会相信怪力乱神,相信双盲实验,相信结果和错误都可复现,相信小步迭代,相信大处着眼小处着手,相信人工智能只是个工具。本书没有开创性的思路,程序员还是勤劳的工蜂。

          1
          5
        • 查看全部71条书评

        出版方

        电子工业出版社

        电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。