万本电子书0元读

万本电子书0元读

顶部广告

代码整洁之道:程序员的职业素养电子书

1. 汇聚编程大师40余年编程生涯的心得体会 2. 阐释软件工艺中的原理、技术、工具和实践 3. 助力专业软件发人员具备令人敬佩的职业素养 成功的程序员在以往的工作和生活中都曾经历过大大小小的不确定性,承受过永无休止的压力。他们之所以能够成功,是因为拥有一个共同,都深切关注创建软件所需的各项实践。他们将软件发视为一种需要精雕细琢加以修炼的技艺,他们以专业人士的标准要求自己,他们具有职业素养。

售       价:¥

纸质售价:¥32.90购买纸书

2119人正在读 | 0人评论 7.2

作       者:(美)罗伯特 C. 马丁(Robert C. Martin)

出  版  社:人民邮电出版社有限公司

出版时间:2016-09-01

字       数:13.4万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
本书是编程大师“Bob 大叔”40余年编程生涯的心得体会的总结,讲解要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来者引路,助其职业生涯迈上更高台阶。<br/>【推荐语】<br/>1. 汇聚编程大师40余年编程生涯的心得体会 2. 阐释软件工艺中的原理、技术、工具和实践 3. 助力专业软件发人员具备令人敬佩的职业素养 成功的程序员在以往的工作和生活中都曾经历过大大小小的不确定性,承受过永无休止的压力。他们之所以能够成功,是因为拥有一个共同,都深切关注创建软件所需的各项实践。他们将软件发视为一种需要精雕细琢加以修炼的技艺,他们以专业人士的标准要求自己,他们具有职业素养。 软件发大师Robert C. Martin在书中介绍了真实软件技艺中的各项原则、技术、工具和实践,展示了怎么以自豪、自尊和自信的心态行软件发,怎么取得卓越表现和丰硕成果,怎么做到有效沟通和确切估算,怎么以坦诚的心态面对困难,并引导读者认识到专业程序员肩负的责任重大,阐述了什么才是程序员的职业素养。 书中的具体内容包括: ● 成为真正的软件专业人士需要具备哪些条件,如何应对彼此冲突又紧张的度表和不近情理的管理人员; ● 如何做到流畅编程,克服阻塞状态; ● 如何应对无休止的工作压力,避免崩溃; ● 如何培养坚持不懈的态度,如何拥抱新的发范式; ● 如何管理好时间,避免身陷泥潭无法自拔; ● 如何培育有利于程序员和发团队茁壮成长的环境; ● 什么时候应该说“不”,怎么说; ● 什么时候应该说“是”,承诺意味着什么。 软件强大、优雅而实用,让人惊叹不已,不论是发者还是用户都乐于使用这样的软件。它们并非是由机器编写出来的,而是出自那些对软件技艺拥有坚定信念的专业软件发者之手。本书将帮助读者成为专业软件发者中的一员,并赢得只有他们才能拥有的荣誉感和成就感。<br/>【作者】<br/>作者介绍 Robert C. Martin,软件发大师,设计模式和敏捷发先驱,敏捷联盟首任主席,C Report前主编,被后辈程序员尊称为“Bob大叔”。20世纪7 0年代初成为职业程序员,后创办Object Mentor公司并任总裁。Martin还是一名多产的作家,至今已发表数百篇文章、论文和博客文章。除本书外,还著有《代码整洁之道》《敏捷软件发:原则、模式和实践》《UML:Java程序员指南》等。他创办了cleancoders.com网站,专为软件发人员提供教育视频。 译者介绍 余晟,混迹软件发和互联网行业多年,目前在沪江网负责研发和架构管理工作。业余喜爱阅读、思考,关注工程师的全面发展,探索更聪明的技术方案,乐于帮助外界更多理解IT行业的约束、规律和习惯。 章显洲,蚂蚁金服高级项目专家,业余以技术翻译作为个人修炼与回馈软件发社区的途径。自2009年来,翻译和与人合译多本技术管理书籍,偶尔也会出现在技术社区聚会上作一些分享。近年来主要致力于蚂蚁金服基础设施和架构升级方面的项目集管理。<br/>
目录展开

内容提要

版权声明

献辞

译者序1:享受职业素养

译者序2:负阴抱阳,知行合一

关于封面图片

前言

关于本书

参考文献

致谢

必读引言

第1章 专业主义

1.1 清楚你要什么

1.2 担当责任

1.3 首先,不行损害之事

1.3.1 不要破坏软件功能

1.3.2 不要破坏结构

1.4 职业道德

1.4.1 了解你的领域

1.4.2 坚持学习

1.4.3 练习

1.4.4 合作

1.4.5 辅导

1.4.6 了解业务领域

1.4.7 与雇主/客户保持一致

1.4.8 谦逊

1.5 参考文献

第2章 说“不”

2.1 对抗角色

“为什么”重要吗

2.2 高风险时刻

2.3 要有团队精神

2.3.1 试试看

2.3.2 消极对抗

2.4 说“是”的成本

2.5 如何写出好代码

第3章 说“是”

3.1 承诺用语

3.1.1 识别“缺乏承诺”的征兆

3.1.2 真正的承诺听起来是怎样的

3.1.3 总结

3.2 学习如何说“是”

3.2.1 “试试”的另一面

3.2.2 坚守原则

3.3 结论

第4章 编码

4.1 做好准备

4.1.1 凌晨3点写出的代码

4.1.2 焦虑时写下的代码

4.2 流态区

4.2.1 音乐

4.2.2 中断

4.3 阻塞

创造性输入

4.4 调试

调试时间

4.5 保持节奏

4.5.1 知道何时应该离开一会

4.5.2 开车回家路上

4.5.3 洗澡

4.6 进度延迟

4.6.1 期望

4.6.2 盲目冲刺

4.6.3 加班加点

4.6.4 交付失误

4.6.5 定义“完成”

4.7 帮助

4.7.1 帮助他人

4.7.2 接受他人的帮助

4.7.3 辅导

4.8 参考文献

第5章 测试驱动开发

5.1 此事已有定论

5.2 TDD的三项法则

5.3 TDD的优势

5.3.1 确定性

5.3.2 缺陷注入率

5.3.3 勇气

5.3.4 文档

5.3.5 设计

5.3.6 专业人士的选择

5.4 TDD的局限

5.5 参考文献

第6章 练习

6.1 引子

6.1.1 10的22次方

6.1.2 转变

6.2 编程柔道场

6.2.1 卡塔

6.2.2 瓦萨

6.2.3 自由练习

6.3 自身经验的拓展

6.3.1 开源

6.3.2 关于练习的职业道德

6.4 结论

6.5 参考文献

第7章 验收测试

7.1 需求的沟通

7.1.1 过早精细化

7.1.2 迟来的模糊性

7.2 验收测试

7.2.1 “完成”的定义

7.2.2 沟通

7.2.3 自动化

7.2.4 额外工作

7.2.5 验收测试什么时候写,由谁来写

7.2.6 开发人员的角色

7.2.7 测试的协商与被动推进

7.2.8 验收测试和单元测试

7.2.9 图形界面及其他复杂因素

7.2.10 持续集成

7.3 结论

第8章 测试策略

8.1 QA应该找不到任何错误

8.1.1 QA也是团队的一部分

8.1.2 需求规约定义者

8.1.3 特性描述者

8.2 自动化测试金字塔

8.2.1 单元测试

8.2.2 组件测试

8.2.3 集成测试

8.2.4 系统测试

8.2.5 人工探索式测试

8.3 结论

8.4 参考文献

第9章 时间管理

9.1 会议

9.1.1 拒绝

9.1.2 离席

9.1.3 确定议程与目标

9.1.4 立会

9.1.5 迭代计划会议

9.1.6 迭代回顾和DEMO展示

9.1.7 争论/反对

9.2 注意力点数[1]

9.2.1 睡眠

9.2.2 咖啡因

9.2.3 恢复

9.2.4 肌肉注意力

9.2.5 输入与输出

9.3 时间拆分和番茄工作法

9.4 要避免的行为

优先级错乱

9.5 死胡同

9.6 泥潭

9.7 结论

第10章 预估

10.1 什么是预估

10.1.1 承诺

10.1.2 预估

10.1.3 暗示性承诺

10.2 PERT

10.3 预估任务

德尔菲法

10.4 大数定律

10.5 结论

10.6 参考文献

第11章 压力

11.1 避免压力

11.1.1 承诺

11.1.2 保持整洁

11.1.3 危机中的纪律

11.2 应对压力

11.2.1 不要惊慌失措

11.2.2 沟通

11.2.3 依靠你的纪律原则

11.2.4 寻求帮助

11.3 结论

第12章 协作

12.1 程序员与人

12.1.1 程序员与雇主

12.1.2 程序员与程序员

12.2 小脑

12.3 结论

第13章 团队与项目

13.1 只是简单混合吗

13.1.1 有凝聚力的团队

13.1.2 如何管理有凝聚力的团队

13.1.3 项目承包人的困境

13.2 结论

13.3 参考文献

第14章 辅导、学徒期与技艺

14.1 失败的学位教育

14.2 辅导

14.2.1 DIGI-COMP I,我的第一台计算机

14.2.2 高中时代的ECP-18

14.2.3 非常规辅导

14.2.4 艰难的锤炼

14.3 学徒期

14.3.1 软件学徒期

14.3.2 现实情况

14.4 技艺

觉者觉人

14.5 结论

附录 工具

A.1 工具

A.2 源代码控制

A.2.1 “企业级”源代码控制系统

A.2.2 悲观锁与乐观锁

A.2.3 CVS/SVN

A.3 集成开发环境/编辑器

A.3.1 vi

A.3.2 Emacs

A.3.3 Eclipse/IntelliJ

A.3.4 TextMate

A.4 问题跟踪

bug数量

A.5 持续构建

A.6 单元测试工具

A.7 组件测试工具

A.7.1 “完成”的定义

A.7.2 FitNesse

A.7.3 其他工具

A.8 集成测试工具

A.9 UML/MDA

A.9.1 细节

A.9.2 没有希望,没有改变

A.10 结论

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部