整理了一下《代码整洁之道–程序员的职业素养》中一些受益匪浅的观点。这本书讲的并非是对技术的指导,而是程序员应该掌握的软技能,实际上它适合任何行业的人阅读,相信读完这本书也都能收获一些启发。

第一章 专业主义

  1. 清楚你想要什么

  2. 承担责任

  3. 了解你的领域

失误率永远不能等于0,但你有责任让它无限接近于零。

每个专业软件开发人员必须了解的技能:

  1. 设计模式。必须能够描述GOF书中的全部24种模式。

  2. 设计原则 必须了解SOLID原则,深刻理解组件设计原则

  3. 结构图 流程图 决策表 状态迁移图表

第二章 说“不”

大多数时间我们都希望能够说“是”。健康的团队都会努力寻找给他人肯定的答复。运作良好的团队经理和开发人员,会相互协商,直到达成共同认可的行动方案。

但是有时候,获取正确决策的唯一途径,便是勇敢无畏的说“不”。这个是比说“是”更负责任,更专业,也更困难的能力。

第三章 说“是”

  1. 遵守承诺

  2. 如果这个事情依赖他人,无法掌控,需要采取一些具体行动来达成目标。比如坐下来讨论一下具体行动,来一步一步接近目标,直至完成目标。

  3. 如果确实无法完成,赶紧去调整别人对你的预期,越快越好

第四章 编码

给他人提供帮助并非说明你更聪明,而是你带来了一个新的视角,对解决问题起到了显著的催化作用。PS:事实上能够提供完善的解决方案,一眼看出问题出在什么地方也是一种可贵的能力和丰富经验的累积。

辅导年轻的程序员是经验丰富程序员的职责所在,向资深的导师寻求帮助也是年轻程序员的专业职责。

第五章 TDD的三项法则

  1. 在编写好失败单元测试之前,不编写任何产品代码

  2. 只要有一个单元测试失败了就不需要再写测试代码;无法通过编译也是一种失败情况

  3. 产品代码恰好能够让当前失败的单元测试通过即可,不要多写。

TDD可以提升代码确定性、降低代码缺陷率,优化文档和设计的原则。

测试先行,会迫使你去思考什么是好的设计。

事后测试只是一种防守,先行编写测试则是进攻。事后编写的测试已经受制于已有代码,已经知道问题是如何解决的。测试先行的防守编写测试代码比起来,后写的测试在深度和捕获错误的灵敏度方面要逊色很多。

第六章 练习-自身经验的扩展

老板的职责不包括避免你的技术落伍,也不包括为你打造一份好看的简历。保持自己的技能不落伍是自己的责任。

第七章 验收测试

做业务和写程序的人都容易陷入一个陷阱:过早进行精细化。

  1. 不确定性原则

东西画在纸上与真正做出来,是不一样的。业务方看到真正运行的情况就会意识到,自己想要的东西根本不是这样。

一看到已经满足的需求,关于到底想要什么,他们就会有更好的想法——通常并不是他们当时想看到的样子。

  1. 预估焦虑

即便拥有全面准确的信息,评估也通常会存在巨大的变数。其次,因为不确定原则的存在,不可能通过反复推敲实现早起的精准性。需求一定会变化的,所以过早追求精确性是徒劳的。

身为专业开发人员,你的职责是协助开发团队开发出最棒的软件。也就是说每个人都需要关心错误和疏忽,并协助改正。

验收测试和单元测试

验收测试是业务方的,是正式的需求文档,描述了业务方认为系统应该如何运行。关心验收测试结果的是业务方和程序员。

单元测试是程序员写给程序员的,它是正式的设计文档,描述了底层结构和代码行为,关心单元测试结果的只是程序员。

它们的主要目的是如实描述系统的设计、结构和行为。当然他们也可以验证设计、结构和行为是否达到了具体指标,但是它们的真正价值不是在测试上,而是在具体指标上。

第八章 测试策略

尽管公司可能设有独立的QA小组专门负责测试软件,但是开发小组仍然要把“QA应该找不到任何错误”作为努力的目标。

对于QA找到的每一个问题,开发团队都应高度重视,认真对待。应该反思为什么出现这种错误,并采取措施避免今后重犯

第九章 时间管理

关于会议,有两条真理

  1. 会议是必需的

  2. 会议浪费了大量的时间

在走入死胡同后可以快速意识到,并且有勇气走回头路。这就是坑法则:如果你掉进了坑里,别挖。

第十章 预估

当发现预估的时间不足时,最重要的是努力解决这个问题,并向外部同步进展。

预估真正的问题在于:业务方认为是承诺,开发方认为是猜测。

不要给出承诺,除非你确切知道可以完成。

第十二章 协作

你需要理解手上正在编写的代码业务价值是什么,了解雇佣你的企业将如何从你的工作中获得回报。

对做的事情充满激情是好的,但是,最好把注意力集中到付我们薪水的老板所追求的目标上。(关注业务和业务目标)

感谢阅读!欢迎关注微信公众号”混沌前端“,获取推送更新。

【必读推荐】程序员的职业素养相关推荐

  1. 代码整洁之道:程序员的职业素养 读书笔记

    代码整洁之道:程序员的职业素养 作者:(美)罗伯特 C. 马丁(Robert C. Martin) 译者:余晟,章显洲 这是一本风趣幽默的关于程序员的故事书,这本书让我在专业技术之外,了解了更多程序员 ...

  2. 程序员的职业素养:向世界宣告“我是专业人士”

    点击关注 异步图书,置顶公众号 每天与你分享 IT好书 技术干货 职场知识 Tips参与文末话题讨论,即有机会获得异步图书一本. "噢,笑吧,科廷,老伙计.这是上帝,或者也可以说是命运或自然 ...

  3. 不能跳过的《程序员的职业素养》(The Clean Coder)中的一个章节

    我猜,你之所以拿起这本书,因为你是程序员,"职业素养"这个说法吸引了你.你应该如此.我们这种专业人士迫切渴求的,正是"职业素养". 我也是程序员.我编了42年 ...

  4. 程序员的职业素养(读书笔记)-- 第一章

    程序员的职业素养(读书笔记) 第1 章 专业主义 1.1 清楚你要什么 "专业主义"有很深的含义,它不但象征着荣誉与骄傲,而且明确意味着责任 与义务.这两者密切相关,因为从你无法负 ...

  5. 《代码整洁之道:程序员的职业素养》一一1.5 参考文献

    本节书摘来自异步社区出版社<代码整洁之道:程序员的职业素养>一书中的第1章,第1.5节,作者:[美]Robert C. Martin(罗伯特 C. 马丁),更多章节内容可以访问云栖社区&q ...

  6. 程序员的职业素养(一)

    最近拜读了Bob大叔的经典书籍<代码整洁之道-程序员的职业素养>,真的从程序员日常工作入手,其中有很多问题也是我在工作中遇到的,如果当时看了这本书,现在应该会成长更快.不过现在也不晚,毕竟 ...

  7. 从插图看《代码整洁之道——程序员的职业素养》

    <代码整洁之道--程序员的职业素养>是<代码整洁之道>的作者Bob大叔的第二部作品,笔者读完2016年再版的本书后有感而发写下本文,本书2012年的版本叫<程序员的职业素 ...

  8. 《程序员的职业素养》——总结

    <程序员的职业素养>--总结 前言 在Bob大叔的整本书中,重点传达了一种精神,就是专业精神.解释出来会有很多种精神,但是我觉得概括下来,就是工匠精神,就是责任感.要对项目负责,对代码负责 ...

  9. 程序员的职业素养_心得体会

    <程序员的职业素养>--总结 前言 在Bob大叔的整本书中,重点传达了一种精神,就是专业精神.解释出来会有很多种精神,但是我觉得概括下来,就是工匠精神,就是责任感.要对项目负责,对代码负责 ...

最新文章

  1. java内存模型 年轻代/年老代 持久区
  2. 第十六周程序阅读(7)
  3. 十年,我的计算机生涯
  4. asp.net 二级域名(路由方式实现)
  5. 静态连接库、动态链接库
  6. 关于流水线中剪裁的疑问
  7. BeautifulSoup 返回网页标签的名称、父标签名称、行号、完整路径
  8. 在Visual Studio 2013里使用 Microsoft SQL Server Compact Edition
  9. Elasticsearch常用工具清单
  10. 蚂蚁算法求解tsp问题matlab,蚁群算法解决TSP问题的MATLAB程序
  11. 卷积神经网络如何解释和预测图像
  12. 小程序与UC浏览器打通
  13. 机器学习做自动聊天机器人_聊天机器人业务领袖指南
  14. 使用JavaMail发送普通邮件(纯文本邮件)
  15. 渗透测试报告模板_渗透测试报告编写的几个小技巧
  16. Spring JdbcTemplate声明式事务
  17. mysql sending data_MySQL:sending data状态包含了什么
  18. 从建立技能库到培养良好习惯,这里有给职场年轻人的10条建议。
  19. 我为什么不愿意买衣服
  20. 为什么oracle打不开,oracle-Ora-01081_数据库打不开_错误解决方法

热门文章

  1. flink连接kafka报错
  2. spark-streaming从入门到精通
  3. 利用python爬取网易云歌手top50歌曲歌词
  4. 用浏览器的油猴子脚本调用IDM下载百度云盘中的资料
  5. 今日头条粉丝如何引流微信?免费教你今日头条引流微信加粉方法
  6. New UWP Community Toolkit - DeveloperTools
  7. 【正则表达式】去除首尾空格
  8. Grbl limit.c代码分析
  9. java 补齐字符串_使用String.format()格式化字符串,java自动补全自增长字符串
  10. java第三方类库Guava开源组件使用