第3课:开发模式

想成为一个好的程序猿,一个有格调的攻城狮,不仅要有好的技术,还要有好的方法论与编程思想
下面介绍几种常用的开发模式

迭代式开发['推荐模式']:
所谓迭代开发,不要求每一个阶段的任务做的都是最完美的,而是明明知道还有很多不足的地方,却偏偏不去完善它,先把主要功能搭建起来为目的,以最短的时间,最少的人力先完成一个'不完美的产品'直至提交。然后再通过客户或用户的反馈信息,在这个'不完美的产品'上逐步进行完善。
每一次迭代都包括了需求分析、设计、实现与测试

瀑布流开发:
从需求到设计,从设计到编码,从编码到测试,从测试到提交大概这样的流程,'要求每一个开发阶段都要做到最好'。特别是前期阶段,设计的越完美,提交后的成本损失就越少

螺旋开发:
它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,'特别适合于大型复杂的系统'。
螺旋模型刚开始规模很小,当项目被定义得更好、更稳定时,逐渐展开
螺旋模型很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估

敏捷开发:
是一种应对快速变化的需求的一种软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用。比迭代式开发两者都强调在较短的开发周期提交软件,但是,敏捷开发的周期可能更短,并且更加强调队伍中的高度协作。
敏捷方法有时候被误认为是无计划性和纪律性的方法,实际上更确切的说法是敏捷方法强调适应性而非预见性

'实际应用中,根据需求来选择,或者混合使用,不能生搬硬套'

#为什么推荐迭代开发模式?
源自于项目的不确定性。有一种人叫做产品,他们总是有各种奇怪的想法,然后来找程序猿实现。今天做的东西,可能过不了多久就会推翻
当然了,不能把过错都推到产品身上,还有可能是老板的旨意,产品只是给项目化妆的化妆师而已,或者是因为公司流动性太大,产品经理频繁更换,下一任看不起上一任,推翻上一任的设计也是常有的事
总之,因为种种原因需求永远都不要奢望是稳定的,迭代模式是最符合实际的一种做法
而针对自己设计自己开发的个人项目,还是建议瀑布式和迭代式结合,毕竟自己做什么还是清楚的,如果自己都不知道自己要做什么,还是早点睡觉吧,程序员一般睡眠都不够
对于螺旋开发,敏捷开发,虽然也很好,但是有时候,简单就是美,不简单的方法本身就是一种痛苦,还是简单的项目居多,没有那么多大项目来做,地球不是总要被拯救的

Godeye网站开发的时候就是用的迭代开发,感觉不错,有了好的编程思想,程序猿崛起只是时间问题


试着做做下面的题目吧

    1:开发模式与设计模式有什么不同
    2:以下哪个不属于开发模式
    3:如果一个项目需求很确定,不经常变,适用什么开发模式
打赏  如对你有帮助,请我喝杯咖啡吧!