我所理解的敏捷开发应该是快速的,而后我发现所谓的敏捷并不仅仅只是在开发上面,还包括其他很多东西。或许是之前对于软件开发没有一个系统的认识,敏捷应该是一个过程。
这样一个开发流程我们可能在不同的书上看到过这样的一个过程,如之前推荐的 Robert,C,Martin的《敏捷软件开发 原则、模式与实践》,英文名《Agile Software Development—Principles,Patterns,and Practices》,似乎这本身将我们之前上过的内容都很好地体现了出来,一本不错的好书,虽然包含了很多书的内容。在有些方面可能不是很具体,但是是个不错的融合性书籍。
传统的开发流程
设计->编码->测试
TDD的开发流程
测试->编码->重构
两周的时间里和两个前辈(暂且这么说,找不到别的合适的词)pair,也就是结对编程,似乎是两个不同的过程。只是TDD在有时候并不是很重要,从理论上来说TDD可能会导致效率降低,但是可以保证程序的功能是正确的。做个小的总结吧,TDD有下面的优点:
敏捷开发很重要的一点就是持续交付,而TDD正是这样一个不错的保证。 TDD的过程就是:红->绿->重构
之所以在这里提到这个是因为感觉这方面很重要,不过如果一开始以设计模式为出发点,可能就变成传统的开发流程,而不是TDD。也就是先设计,再编程 ,这个和TDD有点距离。两者间的好与坏,可能没有办法那么快区分,没有哪一个是完全正确的,都只是相对的。
设计模式是在设计的过程中一点点累积起来的,这些会体现在过程中。
还有很重要的点是,代码是写给人看的。
围观我的Github Idea墙, 也许,你会遇到心仪的项目