原书名《The Clean Coder》 [美]Robert C. Martin 著
- “专业”的意义在于,为自己必然的不完美负起责任。
- 保持每日编程。寻找合作伙伴。分享自己的知识。专业的开发必然需要对业务知识了如指掌。
- 专业人士不能屈从于任何事物,必须有自己的专业判断。没有“试试看”这回事。
- 先定义“完成”概念,再去安排计划。
- 程序员负责管理各种细节,这是职责。
- 测试驱动开发(TDD)
- 试用设计原则和模式,创建灵活可维护的软件结构。
- 如果你希望自己大的软件灵活可变,那就应该时常修改它。每一次查看自己的代码,都应该尝试让它变得更简洁。
- 必须学习的内容:24种设计模式,设计原则,设计案例,工程化理念,各种程序设计工具
- PERT预估方法。德尔菲法预估。大数定律(把内容拆开分析)
- 编程阻塞时,尝试结对编程。
- 不要在心烦意乱时写代码,先解决自己的个人问题。不要在疲惫时写代码。要学会保存精力和创造力。不要熬夜。
- 稍微动一动手工制做或者运动,有助于恢复注意力。
- 客户所要的任何一项功能,一旦写起来,总是远比它开始时所说的要复杂许多。业务方会想当然地认为看文档的人懂得自己的意思。
- 观察者效应,每次输出一个功能,都会造成需求的连锁变化。
- 将自己的职业发展寄希望于雇主的软件开发人员将会很惨。
- 不能铭记过去的人,注定要重蹈覆辙。
- 需求输入糟糕,程序输出也会糟糕
- 如果上级不能出具加班写出的内容失败后的预备方案,就不要同意加班。
- 会议是必须的&会议浪费了大量时间。不妨算算会议成本。
- 站会:昨天做了什么,今天要做什么,有什么问题。每人最多1分钟。
- 迭代计划会议:列出分解过的业务,确定开发时间和业务价值。一周2小时之内。
- 凡是不能在5分钟内解决的争论,都不应该继续争论,而是动手。应该用数据说话。必须解决的争论,可以在5分钟内描述,然后大家投票。