一、敏捷开发与MVP
1.mvp
MVP(minimum viable product)概念,意即“最简可行产品”——用最快、最简明的方法建立一个可用的产品原型,这个原型要表达出你产品最终想要的效果,然后经过迭代来完善细节
从现在灵敏开发的角度来讲,这是快速迭代产品的最最好方法之一便是mvp,不求大而全。
2.灵敏开发三部曲:《规划形式》-> 《重构》-> 《重构与形式》。也便是规划->重构->重构出新规划。
《规划形式》首要具体阐明20几种形式,为咱们带来了常见规划问题的经典解决方案,然后改动了整个面向对象开发的相貌。为规划而著。
《重构》改善既有代码的规划,总结了咱们会用到的各种重构方法,为咱们带来了一种改善代码的高效过程,然后彻底改动了面向对象规划的方法。侧重去除坏代码的滋味。
《重构与形式》是规划形式相关的重构。形式不是规划出来的,是重构出来的。好的规划也不是规划出来的,是重构出来的。不要怕改动,只需改动得法,变就不再是灾难,而是前进的良机。侧重规划形式+重构手法。
在阅览重构与形式之前,最好熟读前面两本:《规划形式》和《重构》。
规划形式代表了传统的软件开发思维:好的规划会发生好的软件,因此在实践开发之前,值得花时刻去做一个全面而细致的规划。重构代表了灵敏软件开发的浪潮:软件并不是在一开端就能够规划得白璧无瑕的,因此能够先进行实践开发,然后经过对代码不断的进行小幅度的修正来改善其规划。二者从不同角度阐述了规划的重要性。
有些人在编写任何代码之前,都要很早地为形式做方案,而有些人在编写了很多代码之后才开端增加形式。
第二种运用形式的方法便是重构,由于是要在不增加体系特性或许不改动其外部行为的情况下改动体系的规划。
有些人在程序中参加形式,仅仅由于觉得形式能够使程序更简略修正;更多人这样做仅仅为了简化目前的规划。
如果代码现已编写,这两种景象都是重构,由于前者是经过重构使修正更简略,而后者则是经过重构在修正后进行整理。
尽管形式是在程序中能够看到的东西,可是形式也是一种程序转换。
重构是完成规划形式的一种手法,规划形式往往也是重构的意图。
二、重构与形式的缘由
应该经过重构完成形式、趋向形式和去除形式,而不是在预先规划中运用形式,也不再过早的在代码中参加形式。这技术防止过度规划,又不至于规划缺乏。
1.过度规划
代码的灵活性和复杂性超出所需。有些开端规划的时候,以为某些地方会频频的改动,甚至开端运用了某种规划形式预留扩展,可是后来却没怎么动,也便是导致了废规划和功能.。
2.规划缺乏
发生规划缺乏的原因:
1)程序员没有时刻,没有抽出时刻,或许时刻不允许进行重构
2)程序员在何为好的软件规划方面常识缺乏
3)程序员被要求在既有体系中快速的增加新功能
4)程序员被逼同时进行太多项目
长期的规划缺乏,会使软件开发节奏变成“快,慢,更慢”,可能的后果是:
1.0版别很快就交付了,可是代码质量很差
2.0版别也交付了,但质量低劣的代码使咱们慢下来
在妄图交付未来版别时,随着残次代码的倍增,开发速度也越来越慢,最终人们对体系、程序员乃至使大家陷入这种境地的整个过程都失去了信心
到了4.0版别时或许之后,咱们意识到这样必定不行,开端考虑推倒重来。
3.测验驱动开发和继续重构
测验驱动开发和继续重构供给了一种精益、迭代和训练有素的编程风格,能够最大程度的有张有弛,提高生产率。“迅速而又从容不迫”
运用测验驱动开发和继续重构的益处:
1)坚持较低的缺陷数量
2)斗胆的进行重构
3)得到愈加简略、愈加优异的代码
4)编程时没有压力
形式和重构之间存在着天然联络,形式是你想到达的意图地,而重构则是从其他地方抵达这个意图地的条条路途。
4.演进式规划
演进式规划即趋向性规划,首要是防止过度规划。
经过重构发生规划结构,也便是经过重构完成形式或许重构趋向形式。为规划而规划的思路并不适合大项目,按部就班从重构到规划形式才是规划形式的王道。
灵敏开发中经常采用的演进式架构规划:
很多程序员可能都遇见过这种事:某块代码亟待修正,却没有人愿意接手。为什么会这样?这段代码正巧是两个组件间的接口,修正工作过分困难。而在演进式规划中,咱们常常会做这种修正。代码应当是"活的"并且是"可生长"的,决不能无视强烈的变化需求 而坚持一成不变。正由于如此,演进式规划能够提高规划质量,从而提高整个体系的质量。
来源:oschina
链接:https://my.oschina.net/u/4386695/blog/4527856