结对编程第一阶段
1.查阅相关资料加深对敏捷开发和结对编程的理解
敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态,是一种能应对快速变化需求的软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于”非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重做为软件开发中人的作用。敏捷最大的特色是迭代式开发。
敏捷开发的优势:(1)敏捷开发属于增量式开发,对于需求范围不明确,需求变更较多的项目而言,可以很大程度上响应及拥抱变化;(2)对于互联网产品而言,市场风向转变很快,需要一种及时快速的交付形式,而敏捷开发则能更好地适用于此;(3)敏捷开发可最大程度体现80/20法则的价值,通过增量迭代,每次都优先交付那能产生80%价值效益的20%功能。能最大化单位成本收益。
敏捷开发的特点:(1)个体和交互胜过过程和工具;(2)可以工作的软件胜过面面俱到的文档;(3)客户合作胜过合同谈判;(4)响应变化胜过遵循计划。
敏捷开发的核心原则:主张简单;拥抱变化;第二个目标是可持续性;递增的变化;令投资最大化;有目的的建模;多种模型;高质量的工作;快速反馈;软件是你的主要目标;轻装前进。
敏捷方法很多,包括 Scrum、极限编程、功能驱动开发以及统一过程(RUP)等多种法,这些方法本质实际上是一样的,敏捷开发小组主要的工作方式可以归纳为:作为一个整体工作; 按短迭代周期工作; 每次迭代交付一些成果; 关注业务优先级; 检查与调整。(参考敏捷软件开发——百度百科https://baike.baidu.com/item/敏捷软件开发/7108658?fr=aladdin,博客什么是敏捷开发https://www.cnblogs.com/itbuyixiaogong/p/9056918.html)
结对编程是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员)。两个程序员经常互换角色。在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理。这样使得驾驶者可以集中全部注意力在完成当前任务的“战术”方面。观察员当作安全网和指南。结对编程对开发程序有很多好处。比如增加纪律性,写出更好的代码等。
结对编程的优势:其实结对编程做起来很简单也很有趣,找个水平差的不太远的程序员和自己配成一对。只用一台计算机,大家选一个人坐在键盘前面负责输入,另一个人坐在后面口述。两个人要不断的交流,频率不应低于一分钟一次。整个的设计思想由后面只动口不动手的人主导,而由操键盘的人做实现。由于人的思维速度是快于输入代码的速度的。那么观看的人可以有空闲的时间做额外的思考,观察代码写的有没有问题,结构有没有问题。首先,它可以促进参与项目的程序员自身的提高,一对程序员工作的时候,水平较低的一方会潜移默化地受水平略高的程序员影响,学到一些新的东西。而水平高的一方同样因为不断地把自己的想法说出来而整理了自己的思路。其次,一定时间周期地打乱配对,让参与项目的人员相互转换位置,使得维护繁杂的文档变得不那么重要。大家分组打乱后,口头的交流很容易让所有人都熟悉每个模块,这样对于公司也很有好处,项目中万一有人离开,也不至于影响到整个项目。最后,开发过程变得更为有趣,任何人的交流变得很多,大家关系更为融洽。还有一点,结对编程使得程序员被迫提高了工作效率,结对编程有一种相互督促的作用,在一边工作疲惫状态不好时,另一边会起一个鼓励和激发斗志的作用。
一些研究发现程序员结对工作与单独工作相比,会写出更短的程序,更好的设计,以及更少的缺陷。研究发现缺陷率降低15%到50%,会由于程序员的经验以及任务的复杂度而不同。结对编程比单独编程相比,通常会考虑更多的设计选项,达成更简单,更易维护的设计;程序员们也会更早地捕捉到设计的缺陷。结对编程与一个程序员承担同一个任务相比工作会完成的更快。结对的程序员经常发现当他们一同工作时表面上“不可能”的问题变得容易,或更加快速,或至少有可能解决。(参考结对编程——百度百科https://baike.baidu.com/item/结对编程/7526152?fr=aladdin)
2.组队情况
组队名称:freunde
组队成员名/博客地址:刘莹 / https://www.cnblogs.com/lldkla/
纪超超 / https://www.cnblogs.com/aspic/
仓库地址:https://github.com/DKLA5/software-test.git
课题名称:生命游戏
3.针对课题查阅的资料,对课题的理解
(2)当前细胞为存活状态时,当周围有2个或3个活细胞时, 该细胞保持原样;
(3)当前细胞为存活状态时,当周围有3个以上活细胞时,该细胞因资源匮乏而死亡;
(4)当前细胞为死亡状态时,当周围有3个活细胞时,该细胞变成存活状态(模拟繁殖)