敏捷软件开发又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方 法,是一种应对快速变化的需求的一种软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也 更注重软件开发中人的作用。

下面分别分析敏捷开发与传统的瀑布开发方式的不同。

1.瀑布式开发流程:

传统的瀑布式开发流程

瀑布式开发流程特征如下:

1.基于阶段(文档)
前一个阶段的输出就是下一个阶段的输入,文档是个阶段衔接的唯一信息。管理人员喜欢瀑布模型的原因是把文档理解为开发的速度,可以方便地界定不同阶段的里程碑,由此量化团队工作效率。
2.基于一次性需求和前期设计
没有迭代与反馈。瀑布模型对反馈没有涉及,所以对变化的客户需求非常不容易适应。瀑布就意味着没有回头路。 

近几年各大公司开始刮起了敏捷风。敏捷软件开发是一个开发软件的管理新模式,用来替代以文件驱动开发的瀑布开发模式。 敏捷开发宣言:

个体的交互    高于   流程与工具
工作的软件    高于   详尽的文档
客户的合作    高于   合同谈判
响应变化      高于   遵循计划

敏捷开发要素:

三个角色:Scrum master(SM),Product Owner(PM),Team(RD,QA,FE)
四个仪式:迭代计划会,每日站立会,Show Case,迭代回顾会
三个工作:产品backlog,迭代backlog,燃尽图

从一张图基本可以理解scrum流程。

scrum示意图

全面理解React,实现自己的React

通过实现一个简单的React, 来理解React的原理 Continue reading

同构渲染的常见风险

Published on October 01, 2017

React16升级避坑指南

Published on September 10, 2017