小灰通过千辛万苦,终于拿到了心仪的offer,
今天小灰上班的第一天......编程
下班后,小灰找到同窗大黄来请教......设计模式
敏捷开发(Agile)是一种以人为核心、迭代、按部就班的开发方法。
在敏捷开发中,软件项目的构建被切分红多个子项目,各个子项目的成果都通过测试,具有集成和可运行的特征。markdown
简单地来讲,敏捷开发并不追求前期完美的设计、完美编码,而是力求在很短的周期内开发出产品的核心功能,尽早发布出可用的版本。而后在后续的生产周期内,按照新需求不断迭代升级,完善产品。框架
这一切正如某人的名言:运维
是谁这么厉害,提出了敏捷开发思想?是一位名叫Martin Fowler的美国大叔。ide
大叔不可是敏捷开发的创始人之一,还在面向对象开发、设计模式、UML建模领域作出了重要贡献。目前担任ThoughtWorks公司的首席科学家。工具
敏捷开发的实现主要包括 SCRUM、XP(极限编程)、Crystal Methods、FDD(特性驱动开发)等等。其中SCRUM与XP最为流行。学习
一样是敏捷开发,XP 极限编程 更侧重于实践,并力求把实践作到极限。这一实践能够是测试先行,也能够是结对编程等,关键要看具体的应用场景。测试
SCRUM则是一种开发流程框架,也能够说是一种套路。SCRUM框架中包含三个角色,三个工件,四个会议,听起来很复杂,其目的是为了有效地完成每一次迭代周期的工做。在这里咱们重点讨论的是SCRUM。编码
学习Scrum以前,咱们先要了解几个基本术语:
Sprint:冲刺周期,通俗的讲就是实现一个“小目标”的周期。通常须要2-6周时间。
User Story:用户的外在业务需求。拿银行系统来举例的话,一个Story能够是用户的存款行为,或者是查询余额等等。也就是所谓的小目标自己。
Task:由User Story 拆分红的具体开发任务。
Backlog:需求列表,能够当作是小目标的清单。分为Sprint Backlog和Product Backlog。
Daily meeting:天天的站会,用于监控项目进度。有些公司直接称其为Scrum。
Sprint Review meeting: 冲刺评审会议,让团队成员们演示成果。
Sprint burn down:冲刺燃尽图,说白了就是记录当前周期的需求完成状况。
Rlease:开发周期完成,项目发布新的可用版本。
如上图所示,在项目启动以前,会由团队的产品负责人(Product owner)按照需求优先级来明确出一份Product Backlog,为项目作出总体排期。
随后在每个小的迭代周期里,团队会根据计划(Sprint Plan Meeting)肯定本周期的Sprint Backlog,再细化成一个个Task,分配给团队成员,进行具体开发工做。每一天,团队成员都会进行Daily meeting,根据状况更新本身的Task状态,整个团队更新Sprint burn down chart。
当这一周期的Sprint backlog所有完成,团队会进行Spring review meeting,也就是评审会议。一切顺利的话,会发布出这一版本的Release,而且进行Sprint回顾会议(Sprint Retrospective Meeting)。
那么,现实中的Scrum是什么样的情景呢?看看下面的照片就知道了:
Devops是Development和Operations的合成词,其目标是要增强开发人员、测试人员、运维人员之间的沟通协调。如何实现这一目标呢?须要咱们的项目作到持续集成、持续交付、持续部署。
时下流行的Jenkins、Bamboo,就是两款优秀的持续集成工具。而Docker容器则为Devops提供了强大而有效的统一环境。
关于Devops以及Docker,在之后的文章中会作出更详细的介绍。
—————END—————
喜欢本文的朋友们,欢迎长按下图关注订阅号梦见,收看更多精彩内容