《程序员的职业素养有感》

    最近读了Bob大叔《程序员的职业素养》,文章讨论了专业这个词,程序员如何让别人感觉到专业,对里面的论点很有同感,所以记录下看书的心得。

    序

    文章提到了面试常常问这样的面试的问题,工作时遇到了哪些困难以及是如何解决的?其实这个问题很多面试官根本不care你的困难到底有多难,更多的是关注你解决问题的过程以及对这个问题的挖掘深度。通过这些可以解读出你对问题思考深度以及对工作的问题是否保持了足够的好奇心。

    专业

责任感,未测试的功能绝不交付

产品质量,把0 bug作为永恒的追求,单元化测试率达到90%, 不断的重构代码

职业道德,工作时间高效为雇主工作,每周20小时为自己工作

专业领域,设计模式、设计原则、方法、实践和图表

业务领域

     说不

专业人士敢于说明真相而不屈从权势,专业人士有勇气对他们的经理说NO!

如果工期很紧,可以确定哪些功能可以按期提供。

有时候提供太多细节,只会招致更多的微观管理。

许诺尝试,其实是在确保能够成功,如果没有达到预期,那么你就失败了。

快就是慢,打破这些纪律和原则,如果不好好设计代码,后面会越来越慢,直至项目失败

     说是

识别缺乏承诺的征兆,需要、应当、希望、但愿

真正的承诺要有具体的日期,xxx天完成, 周几完成

承诺不能完成的原因,依赖其他的模块,任务太多真的搞不完(只能尽力达到自己的目标),不受控制的风险

(越早抛出越好,可以用另一个承诺代替现在的承诺)

    编码

第一点是实现你需要解决的问题

第二点与现有系统的关系,不破坏现有系统的功能

第三点让其他程序员读懂你的程序

软件开发是一场马拉松,而不是短跑冲刺,需要保存体力和稳定节奏感来取胜

    

    TDD 测试驱动开发

第一点在编好失败单元测试之前,不要编写任何产品代码

第二点只要一个单元测试失败,就不再编写任何单元测试代码,无法编译也是一种失败情况

第三点产品代码恰好能够让失败的单元测试成功通过即可,不要多写

TDD优势,功能正常,易于重构,设计解耦

    练习

    验收测试

    测试策略

    时间管理

拒绝不必要的会议

没有意义的会议选择合适的时机离席

紧跟会议的议程和目标

站立会议,昨天干了啥,今天准备干啥,遇到啥问题

时间拆分和番茄工作法

避免优先级错乱

    预估

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

过于乐观的项目评估,它们最终花的时间是预估的3到5倍。

不管尝试加班的进度的压力有多大,专业开发人员都应该谨慎的设置合理的预估值。

大任务拆分小任务进行预估,可以忽略小任务的预估错误率。

    压力

 避免压力,不过没有把握的承诺、代码保持整洁、遵循开发纪律

应对压力,保持平静放松、寻找团队帮助、坚持开发纪律、结对编程

猜你喜欢

转载自labreeze.iteye.com/blog/2319298
今日推荐