程序员的职业素养(读书笔记)-- 第一章 - xinglu31 - 博客园
1.1 清楚你要什么
"专业主义"有很深的含义,它不但象征着荣誉与骄傲,而且明确意味着责任 与义务。这两者密切相关,因为从你无法负责的事情上不可能获得荣誉与骄傲。 做个非专业人士可轻松多了。非专业人士不需要为自己所做的工作负责,他 们大可把责任推给雇主。如果非专业人士把事情搞砸了,收拾摊子的往往是雇主; 而专业人士如果犯了错,只好自己收拾残局。
1.2 担当责任
经过反省,我意识到未对"例程"进行测试就交付软件是不负责任的。为了 如期交付产品,我忽略了测试环节,整个过程中只考虑要如何保全自己的颜面, 却没顾及客户和雇主的声誉。我本该早点儿担起责任,告诉Tom 测试还未完成、 自己不能按时交付产品。那么做绝非易事,Tom 一定会不高兴,但客户不会丢失 数据,客服经理也不会打电话来轰炸。
1.3 首先,不行损害之事
1.3.1 不要破坏软件功能
软件开发太复杂了,不可能没什么bug。但很不幸,这 并不能为你开脱。人体太复杂了,不可能尽知其全部,但医生仍誓言不伤害病人。 如果他们都不拿"人体的复杂性"作托辞,我们又怎么能开脱自己的责任呢?所谓专业人士,就是能对自己犯下的错误负责的人,哪怕那些错误实际上在 所难免。所以,雄心勃勃的专业人士们,你们要练习的第一件事就是"道歉"。 道歉是必要的,但还不够。你不能一而再、再而三地犯相同的错误。职业经验多 了之后,你的失误率应该快速减少,甚至渐近于零。失误率永远不可能等于零, 但你有责任让它无限接近零。
1. 让QA 找不出任何问题
发布软件时,你应该确保QA 找不出任何问题。故意发送明知有缺陷 的代码,这种做法是极其不专业的。什么样的代码是有缺陷的呢?那些你没把握 的代码都是!
2. 要确信代码正常运行
你怎么知道代码能否常运行呢?很简单,测试!一遍遍地测,翻来覆去、颠 来倒去地测,使出浑身解数来测!你或许会担心这么狂测代码会占用很多时间,毕竟,你还要赶进度,要在截 止日期前完工。如果不停地花时间做测试,你就没时间写别的代码了。言之有理! 所以要实行自动化测试。写一些随时都能运行的单元测试,然后尽可能多地执行 这些测试。
要用这些自动化单元测试去测多少代码呢?还要说吗?全部!全部都要测! 我是在建议进行百分百测试覆盖吗?不,我不是在建议,我是在要求!你写 的每一行代码都要测试。完毕!我是开源项目FitNesse 的主要贡献者和代码提交者。在写作本书的时候, FitNesse 的代码有6 万多行。在这6 万行代码中有2000 多个单元测试,共2.6 万 多行。Emma 的报告显示,这2000 多个测试对代码的覆盖率约为90%。
Read full article from 程序员的职业素养(读书笔记)-- 第一章 - xinglu31 - 博客园
No comments:
Post a Comment