注册

软件开发者的自身修养

关键词:工作任务、测试开发、孰能生巧、代码优化、团队开发


一、工作任务


会议主题:
一般在日常的工作会议中,要总结和反思:我这周干了什么、我下周打算干什么、我遇到了什么问题


编程是需要持续投入精力和注意力的智力活动。注意力是稀缺资源,类似于魔力点数。如果用光了自己的注意力点数,必须花一个小时或者更多的时间做不需要注意力的事情来补充它


时间拆分:对于每天的工作时间可以参考番茄工作法策略进行时间拆分


④ 专业开发人员评估每个任务的优先级,排除个人的喜好和需要,按照真实紧急程度来执行任务


小步快跑, 以防步履蹒跚


⑥ 专业开发人员会用心管理自己的时间和注意力


需求预估是软件开发人员面对的最简单、也是最可怕的活动之一了


⑧ 业务方觉得预估就是承诺,开发方认为预估就是猜测。两者相差迥异


⑨ 需求承诺是必须做到的,是关于确定性的


⑩ 专业开发人员能够清楚区分预估和承诺。只有在确切知道可以完成的前提下,他们才会给出承诺


① 预估任务:达成共识,把大任务分成许多小任务,分开预估再加总,结果会比单独评估大任务要准确很多?这样做之所以能够提高准确度,是因为小任务的预估错误几乎可以忽略,不会对总得结果产生明显影响


② 对需要妥善对待的预估结果,专业开发人员会与团队的其他人协商,以取得共识


二、测试开发


① 在工作中,有一种现象叫观察者效应,或者不确定原则。每次你向业务方展示一项功能,他们就获得了比之前更多的信息,这些新信息反过来又会影响他们对整个系统的看法


② 专业开发人员,也包括业务方必须确认,需求中没有任何不确定因素


③ 开发人员有责任把验收测试与系统联系起来,然后让这些测试通过


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


单元测试是深入系统内部进行,调用特定类的方法;验收测试则是在系统外部,通常是在API或者UI级别进行


QC:检验产品的质量,保证产品符合客户的需求,是产品质量检查者;QA:审计过程的质量,保证过程被正确执行,是过程质量审计者


⑦ 测试策略:单元测试、组件测试、集成测试、系统测试、探索式测试


⑧ 8小时其实非常短暂,只有480分钟,28800秒。身为专业的开发人员,你肯定希望能在这短暂的时间里尽可能高效的工作,取得尽可能多的成果


⑨ 再说一次,仔细管理自己的时间是你的责任


三、孰能生巧


调试时间和编码时间是一样昂贵的


② 管理延迟的诀窍,便是早期监测和保持透明。要根据目标定期衡量进度


③ 如果可怜的开发人员在压力之下最终屈服,同意尽力赶上截止日期,结局会十分悲惨。那些开发人员会开始抄近路,会额外加班加点工作,抱着创造奇迹的渺茫希望


④ 即使你的技能格外高超,也肯定能从另外一名程序员的思考与想法中获益


测试代码之匹配于产品代码,就如抗体之匹配于抗原一样


⑥ 整洁的代码更易于理解,更易于修改,也更易于扩展。代码更简洁了,缺陷也更少了。整个代码库也会随之稳步改善,杜绝业界常见的放任代码劣化而视若不见的状况


⑦ 任何事情,只要想做得快,都离不开练习!无论是搏斗还是编程,速度都来源于练习!从练习中学到很多东西,深入了解解决问题的过程,进而掌握更多的方法,提升专业技能


关于练习的职业道德职业程序员用自己的时间来练习。老板的职责不包括避免你的技术落伍,也不包括为你打造一份好看的履历


⑨ 东西画在纸上与真正做出来,是不一样的


四、代码优化


① 好代码应该可扩展、易于维护、易于修改、读起来应该有散文的韵味……


② 在经济全球化时代,企业唯利是图,为提升股价而采用裁员、员工过劳和外包等方式,我遇到的这种缩减开发成本的手段,已经消解了高质量程序的存在价值和适宜了。只要一不小心,我们这些开发人员就可能会被要求、被指示或是被欺骗去花一半的时间写出两倍数量的代码


③ 客户所要的任何一项功能,一旦写起来,总是远比它开始时所说的要复杂许多


④ 很少有人会认真对待自己说的话,并且说到做到


言必信,行必果


⑥ 如果感到疲劳或者心烦意乱,千万不要编码


⑦ 专业开发人员善于合理分配个人时间,以确保工作时间段中尽可能富有成效


⑧ 流态区:程序员在编写代码时会进入的一种意识高度专注但思维视野却会收拢到狭窄的状态


创造性输出依赖于创造性输入


五、团队开发


① 我认为自己是团队的一员,而非凌驾于团队之上


② 要勇于承担作为一名手艺人工程师所肩负的重大责任


③ 代码中难免会出现bug,但并不意味着你不用对它们负责;没人能写出完美的软件,但这并不表示你不用对不完美负责


④ 什么样的代码是有缺陷的呢?那些你没把握的代码都是


⑤ 我不是在建议,是在要求!你写的每一行代码都要测试,完毕!


⑥ 作为开发人员,你需要有个相对迅捷可靠的机制,以此判断所写的代码可否正常工作,并且不会干扰系统的其他部分


编程是一种创造性活动,写代码是无中生有的创造过程,我们大胆地从混沌之中创建秩序


⑧ 他们各表异议相互说“不”,然后找到了双方都能接受的解决方案。他们的表现是专业的


⑨ 许诺“尝试”,意味着只要你再加把劲还是可以达成目标的


作者:纯之风
来源:juejin.cn/post/7273051203562143763

0 个评论

要回复文章请先登录注册