本书是编程大师“Bob 大叔”40余年编程生涯的心得体会的总结,讲解要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来者引路,助其职业生涯迈上更高台阶。
本书适合所有程序员阅读,也可供所有想成为具备职业素养的职场人士参考。
第一章:专业主义
在开启阅读此书之前,不免先问一下自己一个问题,根据这个问题的回答来决定对此书阅读的态度。
你想成为一名“专业人士”吗?你确实是想成为专业的软件工程师,对吗?
如果坚定地回答道---“是-----!”,那么调整好状态聆听Bob大叔对他40多年的编程经历的娓娓道来吧~
1.1 清楚你要什么
如果你想成为一名专业人士,必须要承担责任。
“专业主义”不仅仅象征着荣誉与骄傲,而且明确意味着责任与义务。
从你无法负责的事情上不可能获得荣誉和骄傲。
1.2 承担责任
没有对例行程序进行测试就交付软件是不负责任的。
Bob大叔担任一款控制软件的“负责工程师”,所负责的软件控制一个测量电话线路质量的小型机系统和危机系统,程序是用汇编语言编写的。该系统每天晚上都会运行“夜间例行程序”来对线路进行检测,而bob为了使新功能如期发布,未经测试直接将新系统程序交付给用户,结果接连修复程序bug。给用户和经理造成损失。
如何承担责任?
1.3 首先,不行损害之事
1.3.1 不要破坏软件功能
无法开发出完美的程序,那么要对自己的不完美负责。
所谓专业人士,就是能对自己犯下的错误负责的人,哪怕那些错误实际上在所难免。
所以我们要练习的第一件事情就是“道歉”,尽管是必要的,但是仅仅如此还不够。不能一而再,再而三地犯相同的错误。
职业经验多了之后,你的失误率应该快速减少,甚至渐近于零。失误率永远不可能等于零,但你有责任让它无限接近零。
这里给出具体的表现:
-
让QA找不出任何问题
-
要确信代码正常运行
对所写的代码内容要做到100%的测试,但是有些代码不是很难测试吗?是的,但之所以很难测试,是因为设计时就没考虑如何测试。唯一的解决办法就是要设计易于测试的代码,最好是先写测试,再写要测的代码,这一方法叫做 测试驱动开发(TDD) 。
-
自动化QA
作为开发人员,你需要有个相对迅捷可靠的机制,以此判断所写的代码可否正常工作,并且不会干扰系统的其他部分。因此,你的自动化测试至少要能够让你知道,你的系统很有可能通过QA的测试。