Blog

Blog

PHODAL

ThoughtWorks实习两周——我所理解的敏捷开发

我所理解的敏捷开发应该是快速的,而后我发现所谓的敏捷并不仅仅只是在开发上面,还包括其他很多东西。或许是之前对于软件开发没有一个系统的认识,敏捷应该是一个过程。

开发流程

这样一个开发流程我们可能在不同的书上看到过这样的一个过程,如之前推荐的 Robert,C,Martin的《敏捷软件开发 原则、模式与实践》,英文名《Agile Software Development—Principles,Patterns,and Practices》,似乎这本身将我们之前上过的内容都很好地体现了出来,一本不错的好书,虽然包含了很多书的内容。在有些方面可能不是很具体,但是是个不错的融合性书籍。

开发流程

传统的开发流程

设计->编码->测试

TDD的开发流程

测试->编码->重构

两周的时间里和两个前辈(暂且这么说,找不到别的合适的词)pair,也就是结对编程,似乎是两个不同的过程。只是TDD在有时候并不是很重要,从理论上来说TDD可能会导致效率降低,但是可以保证程序的功能是正确的。做个小的总结吧,TDD有下面的优点:

  • 可以保证程序是正确的
  • 是重构的基础保证
  • 及时交付,即使现有的程序很ugly

敏捷开发很重要的一点就是持续交付,而TDD正是这样一个不错的保证。 TDD的过程就是:红->绿->重构

  • 编写测试
  • 写出符合功能要求的程序,虽然是臭的
  • 通过测试
  • 重构代码

设计模式

之所以在这里提到这个是因为感觉这方面很重要,不过如果一开始以设计模式为出发点,可能就变成传统的开发流程,而不是TDD。也就是先设计,再编程 ,这个和TDD有点距离。两者间的好与坏,可能没有办法那么快区分,没有哪一个是完全正确的,都只是相对的。

设计模式是在设计的过程中一点点累积起来的,这些会体现在过程中。

还有很重要的点是,代码是写给人看的

关于我

Github: @phodal     微博:@phodal     知乎:@phodal    

微信公众号(Phodal)

围观我的Github Idea墙, 也许,你会遇到心仪的项目

QQ技术交流群: 321689806
comment

Feeds

RSS / Atom

最近文章

关于作者

Phodal Huang

Engineer, Consultant, Writer, Designer

ThoughtWorks 技术专家

工程师 / 咨询师 / 作家 / 设计学徒

开源深度爱好者

出版有《前端架构:从入门到微前端》、《自己动手设计物联网》、《全栈应用开发:精益实践》

联系我: h@phodal.com

微信公众号: 最新技术分享

标签