我们项目的极限编程记录

研究极限编程

团队成员

项目指导:王帅

项目成员:孙奇帆、童宙杰、丁晗

理论学习部分

时间记录:2018/11/21 周三

学习目标:了解极限编程原理并掌握技能

今日目标:了解现在流行的极限编程有哪些说法

具体内容:以博客发文形式记录知识点

tip:敏捷开发本身在程序员间的定义还不是很统一,很少有行之有效的敏捷开发模式分享,更何况有效的极限开发模式了

极限编程是什么?

极限编程(Extreme Programing,简称XP)即是敏捷软件开发方法的代表。2000年,美国软件工程专家Kent Beck对极限编程这一创新软件过程方法论进行了解释 :“XP是一种轻量、高效、低风险、柔性、可预测,科学而充满乐趣的软件开发方式。”

为什么使用极限编程?

传统的软件工程中一个普遍的假定是:更改程序的成本会随时间的推移而以指数方式上升。这使得软件开发的前期必须进行慎密的分析,编写详细的文档,尽可能的将问题在分析阶段解决,避免留到生产阶段,否则花费将会极其昂贵。

如果变化的成本随时间的推移缓慢上升,那么软件开发的工作方式就可以与假定变化成本以 指数方式上升时完全不同。XP提倡项目组在开发过程中尽可能迟地做出重大决定,从而推迟支付作决定的成本,并使得做出正确决定的可能性最大。

极限编程怎么做?

XP的核心准则

Kent Beck为XP定义了四个核心准则:沟通、简单、反馈和勇气。

XP的基本原则

XP的四个核心准则提供了成功解决方案的标准,从这四个核心准则又衍生出了基本原则用以规范XP的开发:1.快速反馈、2.假设简单性、3.提倡更改、4.递增更改、5.优质工作。

XP的基本活动

有了指导性的准则,接下来就是如何进行软件开发。XP开发中的基本活动包括四项:编码、测试、倾听和设计。

XP的十二大原则

转自:https://bbs.csdn.net/topics/260006450

计划制定

      主要针对的是项目的开发模块划分、模块优先级划分、事前成本预计、时间节点规划、与甲方或者项目出资方的沟通等

小版本

      项目开发过程中对其进行高度迭代,快速向客户展现开发进度,小版本可以让交流更快速与顺畅。但是小版本的规模不能小到影响整体设计思路。

简单设计

      通过所有测试,没有重复和费解的逻辑代码,保证代码的简单。考虑程序功能时不要为了20%的少数场景去花80%的时间争论,不要为了特殊情况把目前不需要的功能加入进来

测试

     测试原则在敏捷开发中是最重要的原则,同理在极限编程中也是极为重要的,因为极限开发欢迎快速的变化,意味着频繁的修改,而这种变化如果没有测试做保证,最后剩下的只能是一堆错误百出的垃圾。

强调:极限开发中,测试是最不应该被忽视的原则。

     极限编程中总结了7中测试类型:

     自动化回归测试

           运行自动化测试代码验证当前的修改没有破坏已有结构

     单元测试

           验证单元级别的代码工作正常

     公共API测试

           验证被第三方开发人员调用的API可正常工作,并且得以文档化

     私有API测试

           验证内部使用的API正常

     命令行测试

           验证在命令行输入的命令工作正常

     用户界面测试

           验证用户界面的功能正常

     “狗粮”测试

           在企业内部使用自己开发的产品,通过实际的使用来确保功能正确,满足使用要求

持续整合

重构

      确保加入新功能后代码仍旧足够的简单,保证简单的代码仍然能够运行所有的测试。重构就是要在代码复杂度变高之后对既有代码进行结构上的改善

配对编程

      配对编程不是一个人简单地看着另一个在做什么,在比较高效的配对工作里,这两个伙伴常常工作在不同的抽象层次,一个人关注实现眼前目标而编写代码细节,另一个考虑的是更大前景和下一步要做的事情,角色频繁更换使得这一项原则是高强度和严密的,而且会令人疲劳,相对的会创造出经过深思熟虑的高质量代码。

每周只工作40小时

      关键点:充分利用时间

代码共享

      代码共享是要在代码通过测试的前提下进行共享。而且需要任何一个人对该共享的代码都能进行修改,目的是一种知识的共享。但是要能实现任何人都能进行修改,需要很多前提:代码编写规范一致、代码可阅读性、熟悉代码对内对外接口的定义、人员开发技能有交集

隐喻

      普通语言和术语的集合,用来预见项目中的功能。隐喻是一个全局视角,是系统未来的景象。当模块的设计与整个系统格格不入的时候,那么就知道这个模块是错的

现场客户

      使用程序员和客户都能够理解的语言描述功能。

代码标准

      遵守编码标准,让其他程序员明白代码,减少不必要的沟通,减少沟通成本。

总结

极限编程其实就是跳出传统的思路,打破一些传统项目管理方法中的固有思维,从而形成的一种源于传统超脱传统的开发方式。

 

项目实践部分

时间记录:2018/11/21 周三

项目目标:配合区块链梳理研究开发项目制作相关团队工具

今日任务

丁:搭建一个以太坊节点,然后用php对以太坊节点进行rpc操作

童:梳理以太坊应用层源码(geth部分指令实现),开发工具的文件传输实现

孙:梳理以太坊数据层源码(链数据结构相关源码部分),开发工具的小数据传输实现

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值