系列文章目录
前言
这里开始记录Bob大叔《代码整洁之道:程序员自我修养》第一章 专业主义,个人比较感兴趣的内容,分享给大家。
1.1 清楚自己要什么
“专业主义”不但象征着荣誉与骄傲,而且意味着责任与义务。
非专业人士不需要为自己所做的工作负责,他们大可把责任推给雇主。
专业人士如果犯了错,只能自己收拾残局。
专业人士的脊髓就在于将公司利益视为个人利益。
“专业主义”意味着担当责任。
1.2 担当责任
Bob大叔曾因为不负责任尝尽苦头,所以明白尽职尽责的重要意义。
Bob大叔为了按时交付软件,没有测试例行程序,结果程序重大bug,被客户投诉,造成不必要的损失,尤其是公司信誉方面的损失。
Bob大叔经过反省,意识到没有对例行程序进行测试就交付软件是不负责任的。
(这就告诉我们,不能为了赶进度而提交不负责任的代码,即没有测试完全的代码,存在已知bug的代码)
1.3 首先,不行损害之事
1.3.1 不要破坏软件功能
要做的专业,就不能留下bug。
软件开发太复杂,不可能没什么bug,这是我们的想法。
人体复杂了,不可能尽知其全部,但医生仍要发誓不伤害病人。
Bob大叔告诉我们,要对自己的不完美负责。
没人能写出完美的软件,但这并不表示我们不用对不完美负责。
专业人士,就是能对自己犯下的错误负责的人,哪怕那些错误实际上在所难免。
失误率永远不可能等于零,但我们有责任让它无限接近零。
1. 让QA找不出任何问题
发布软件时,我们应该明确保证QA找不出任何问题。
什么样的代码是有缺陷的呢?那些我们没有代码的都是!
QA发现bug后,要准备好道歉,然后反思那些bug是怎么逃过我们注意的,想办法防止它再次出现
2. 要确信代码正常运行
要实行自动化测试,写一些随时都能运行的单元测试,然后尽可能多地执行这些测试。
Bob要求进行百分百测试覆盖,即我们写的每一行代码都要测试。
设计易于测试的代码,最好先写测试,再写要测的代码
测试驱动开发(TDD)
1.3.2 不要破坏结构
聪明人不会为了发布新功能而破坏结构。
所有软件项目的根本指导原则:软件要易于修改
让修改不必花太高代价就可以完成。
如果你希望自己的软件灵活可变,那就应该视场修改它。
要想证明软件易于修改,唯一的办法就是做些实际的修改。
该在什么时候做些简单的小修改呢?随时!关注哪个模块,就对它做点简单的修改来改进结构。每次通读代码的时候,也可以不时调整一下结构。
让软件保持固定不变才是危险的!如果一直不重构代码,等到最后不得不重构时,就会发现代码已经“僵化了”。
如果你有一套覆盖了全部代码的自动化测试,如果那套测试可以随时快速执行,那么你根本不会害怕修改代码。怎样才能证明你不怕修改代码呢?那就是,你一直在该。
对待代码,就如同雕塑家对待泥巴那样,要对它进行不断的变形与塑造。
1.4 职业道德
用一周工作40小时的美国标准来做参照,这40小时应该用来解决雇主的问题,而不是你自己的问题。
您应该计划每周工作60小时。前40小时是给雇主的,后20小时是给自己的,应该看书、练习、学习或者其他能提升职业能力的事情。
1.4.1 了解你的领域
每个专业软件开发人员必须精通的事项:
- 设计模式。
- 设计原则。
- 方法。
- 实践。
- 工件。
1.4.2 坚持学习
读书,看相关文章,关注博客和微博,参加技术大会,访问用户群,多参与读书与学习小组。不懂就学,不要畏难。
1.4.3 练习
练习,指的是在日常工作之余专门练习技能,以期自我提升。
1.4.4 合作
与他人一起编程、一起练习、一起设计、一起计划、可以从彼此身上学到很多东西,能在更短时间内更高质量完成更多工作。
1.4.5 辅导
想迅速牢固掌握某些事实和观念,最好的办法就是与你负责指导的人交流这些内容。这样,传道受业的同时,导师也会从中受益。
1.4.6 了解业务领域
你应该对这一领域有所了解,能辨别、质疑规格说明书中的错误。
1.4.7 与雇主/客户保持一致
每次开发系统,应该站在雇主的角度来思考,确保开发的功能能真正满足雇主的需要。
1.4.8 谦逊
在发现自己成为笑柄时,专业人士会第一个发笑。
专业人士不会因别人犯错就对之横加贬损,因为他知道,自己有可能就是下一个犯错的人。
|