读《程序员的职业素养》Robert C Martin

“身为一名工程师,你比任何管理者可能都了解得更透彻,了解这些也意味着你肩负着要敢于行动的重大责任”

半年前,读到Robert C Martin的《程序员的职业素养》整理的一些有感的地方,如今整理在这里…

要点

  1. 首先要意识到,每一个职业都有要职业素养的概念,应该认真对待,不能因为其他原因,影响专业性

  2. 专业主义,意味着要对写出的代码负责,担当责任。不能为了赶工期而偷工减料,缩小测试时间和测试用例.

  3. 不让QA找不出任何问题。在发布软件时,把自己没有把握的代码发送给QA,本身就是不专业的行为。

  4. 确信代码正常运行,写单元测试。作为专业的开发人士,你要有个性对迅捷可靠的机制,以此判断所写的代码可否正常工作,并且不会干扰系统的其他部分。

  5. 软件项目的根本之道原则是,软件要易于修改

  6. 职业发展是你自己的事,将自己的职业发展寄希望于雇主的软件开发人员将会很惨。

  7. 不可能或者很少可能,找到一个职业目标或者生活方式就从一而终,人都是不断变化的,环境变化的更快,因此对于当下最实用,最保守的策略就是,努力去做,做想做的事,找想要找的人,更多的事,则更多的收获,人生也更加幸福。

  8. 每周40小时是替雇主解决问题的,剩余20小时是留给自己的。一周有168小时,56小时睡眠,剩下52小时可做其他的事。

  9. 专业软件开发人员必须精通的事项:
    · 设计模式,必须能够描述GOF中24种设计模式,同时还要有POSA书中多数模式的实战经验
    · 设计原则,必须来及SOLID原则
    · 方法,必须理解XP,scrum,敬意,看板,瀑布,结构化分析和结构化设计
    · 实践,必须掌握测试驱动开发,面对像设计,结构化编程,持续集成和结对编程
    · 工件,必须了解如何使用UML,DFD图,结构图,Petri网络图,状态迁移图表,流程图和决策表

  10. 保持练习,建议每天都做寄到kata

  11. 敢于说不

  12. 为什么远不如事实重要。

  13. 越是高风险时刻,说不得重要性越大。

#关于承诺的三点谨记

  1. 学会从他人的言语中分辨哪些是缺乏承诺的言辞,比如,需要、应当、但愿、希望、让我们等,并从中规避,自己也要避免需要缺乏承诺

    承诺的三要素:
    a) 口头上表达承诺
    b) 心里认同承诺,并认真对待
    c) 真正付出行动

  2. 你没能成功履行承诺的三个可能因素以及如何应对:
    a) 寄希望于某某其他人去完成承诺 —— 你的目标需要依赖其他人完成,你需要采取尽可能的具体行动去接近目标
    b) 不太确信自己是否能够真正完成目标,你更应该采取具体的行动,能接近多少完成多少
    c) 有时真的是无能为力。这个时候,你需要尽快调整别人对你的期望,越快越好。

    最后,最重要的一条是:如果你无法兑现承诺,最重要的就是尽早向你的承诺对象发出预警,越快越好,越早越好。 如果你不尽早的告诉他人可能的问题,就错失了让他们帮助你达成目标,兑现承诺的机会

    作为专业人士必须代码必须测试,必须有测试代码,在测试上偷工减料必然会拖慢工期