高效程序员的45个习惯简短有力,对敏捷开发中遇到的问题做了原则上的指导,刚工作的程序员可以获得新知形成良好习惯,有经验的开发也可以对照着纠正自己的一些固有习惯。

虽然有些习惯纯属凑字用,还有些重复,对照着依然可以从中发现自己缺失的习惯:
  • 打破砂锅问到底:不满足于解决问题,而是要从解决问题过程中深究问题根源,不要解第二次

  • 使用单元测试:从现在开始使用

  • 记录解决问题的日志:记录下来,才能印象深刻,吸取教训

  • 做代码复查:写完代码后不要马上提交

  • 及时通报进展与问题:主动通报,不要等别人来问

    以下是书摘:

    译者对本书的总结如下:

`迭代开发,价值优先 分解任务,真实进度

站立会议,交流畅通 用户参与,调整方向

结对编程,代码质量 测试驱动,安全可靠

持续集成,尽早反馈 自动部署,一键安装

定期回顾,持续改进 不断学习,提高能力`

敏捷开发宣言:

`- 个体和交互胜过过程和工具

  • 可工作的软件胜过面面俱到的文档

  • 客户协作胜过合同谈判

  • 响应开发胜过遵循计划`

    虽然右项也有价值,但左项有更大的价值

    敏捷开发就是在一个高度协作的环境中,不断地使用反馈进行自我调整和完善

    首先要解决困难的问题,把简单的问题留到最好

    敏捷开发的45个习惯

  • 把矛头对准解决问题的方法,而不是人

  • 不要急于修复一段没有真正理解的代码

  • 对事不对人

  • 做正确的事。要诚实,要有勇气去说出实情

  • 跟踪技术变化。你不需要精通所有技术,但需要清楚知道行业的动向,从而规划你的项目和职业生涯

搞明白为什么需要这项技术,它试图解决什么问题,它可以用在什么地方

  • 迭代和增量式学习:每天学习一点,技术更好一点

  • 对团队投资

多分享,不局限与技术

  • 午餐会议

  • 懂得丢弃

拥抱变化

  • 学习新的东西,丢弃旧的东西

  • 打破砂锅问到底

不停问为什么,不要满足别人告诉你的表面现象,要不断提问知道你找到问题根源

  • 把握开发节奏

站立会议

  • 庆祝每一次难忘的成功

  • 不要经常加班

  • 让客户做决定

  • 软件设计满足实现即可,无须过细

  • 合理使用技术

根据需要选择技术

  • 不重复开发已有的东西

  • 保持你的项目随时可以发布

  • 提早集成,频繁集成

  • 提早实现自动部署

  • 使用演示获得频繁反馈

  • 使用短迭代,增量开发

  • 基于真实工作做评估

  • 代码守护天使:使用单元测试

  • 测试驱动开发

  • 不同环境,就有不同问题

  • 自动验收测试

  • 度量真实的进度

  • 倾听用户的声音

每一个抱怨的背后都隐藏了一个事实

  • 代码要清晰地表达意图

  • 用代码沟通:选择有意义的命名,用注释描述代码意图和约束

  • 动态评估取舍

  • 增量式编程

  • 保持代码简单可读性高

  • 编写内聚代码:类功能尽量集中,让组件尽量小

  • 将命令与查询分离开

  • 根据契约进行替换:多用委托少用继承

  • 记录解决问题的日志

不要在同一处跌倒两次

  • 把警告当错误处理

  • 对问题各个击破

  • 报告所有异常:不要压制异常

  • 给用户提供有用的错误信息

  • 定期安排团队成员会面时间:每日立会

  • 架构师必须写代码

程序员在拒绝设计的同时,也就放弃了思考

  • 强调代码的集体所有制:让开发人员轮换完成系统不同领域中的不同模块的不同任务

  • 成为指导者:分享自己的知识,教学相长

  • 给别人解决问题的机会

  • 准备好后再提交代码

  • 做代码复查

代码是否可以被读懂和理解

  • 是否有明显的缺陷

  • 代码是否会对应用其它部分产生不良影响

  • 是否存在重复代码

  • 是否存在可以改进或重构的部分

  • 及时通报进展与问题:不要等着别人来问题项目状态如何