极限编程XP的关键实践 极限编程的核心实践


极限编程XP的关键实践 极限编程的核心实践

文章插图
【极限编程XP的关键实践 极限编程的核心实践】提到 XP 的关键实践,就不得不拿出下面这张图 。
看着眼熟不?是不是很多内容我们在上篇文章中其实都已经讲过了 。没错,可能有些概念你很清楚,但有些概念你就完全没听说过了 。今天,我们就来一次性地好好学习一下 。
看到图中的每一环了吗?最里面的是编程方法相关的,中间的是小组实践相关的,最外面的是交付和管理相关的,我们就从内到外逐一学习 。
编程方法(一):结对编程一提到结对编程,估计写代码的人都会很感兴趣 。但是转念一想:俩人一台电脑,一个写一个看,这个画风是不是有点儿暧昧...咳,这个如果是写代码还好,要是看一些别的什么不好的东西就真的很容易出事了,毕竟我们码农的口味是不好拿捏的 。好吧,说正事,两个人一起写一份代码,感觉是很大的浪费呀!确实,也有很多人质疑,而且你在国内不管大小公司,很少能见到真正地实现结对编程的公司 。为什么呢?主要就是因为这种做法不太适合我们现在越来越卷的国内的互联网行业,毕竟我们是需要通过不停地加班 996 来实现一个人当两个人用的,怎么可能让两个人去干一件事,这明显违背老板的价值观呀 。
不过,敏捷实践者们既然提出了这个做法,那么也一定是有它的可取之处的 。比如:
  • 所有的决定都不是一个人做出的
  • 至少有两个人熟悉系统的每一部分
  • 几乎不可能有 2 个人都忽视的测试或其它任务
  • 改变组合对象(也就是换不同的人结对)可以让知识在组织内更好地传播
  • 代码总在被审查
  • 结对编程的效率比单独编程更高
其它还有一些优点就不一一列举了 。咋眼一看,貌似还不错呀,不过就像前面所说的,在国内,或许有一些极限编程爱好者开的公司会用到,但大部分公司,或者说 99% 的公司中你都见不到 。
编程方法(二):测试驱动开发(TDD)想必这个对各位码农来说也不陌生吧,从我们写代码的角度来说,就是先写测试再写代码,然后让我们的代码通过测试之后才算是完成开发 。典型的框架就是各种单元测试框架,什么 JUnit、PHPUnit 之类的 。这个吧,说实话,我这些年的开发之路上,也没用到过 。为什么呢?还是一点,效率略低 。不过,这种开发方式最后做出来的产品的质量的确是没话说的 。
当然,要使用 TDD 也是有前提的,第一当然是领导和团队的支持,第二就是团队的编码规范完善,第三就是整体水平还不能太次 。因为如果你一开始就把测试写错了,那么写出来的代码也不可能对 。另外,如果滥用这些单元测试的话,还会让人走向极端,追求完美的 100% 的测试覆盖率,这也是不可取的 。大部分情况下,从 60 分到 80 分,我们可能付出 100 分的努力就可以达到,而从 80 分到 95 分,可能需要付出 500 分的努力 。但是从 95 分到 99 分,可能就需要 100000 分的努力,而 99 到 100,则有可能是 10 的 N 次方的努力了 。当我们陷入到这种情况的时候,往往就会得不偿失 。
TDD 最核心的是去测什么东西呢?在 单元测试 阶段,最需要测的是核心的算法,比如电商项目中的折扣金额之类的计算,返点优惠的计算等 。在代码架构中,这些往往是服务层要解决的问题,所以,我们主要测试的目标应该是服务层的代码 。
再从分层架构上来说,控制层分发请求,接收参数,做好效验方面的测试即可 。模型层处理数据持久化,一定要注意入库数据的安全性和完整性,做好这方面的测试即可 。而服务层,也就是我们公共的计算部分,承担着整个系统的核心,这些才是单元测试真正需要关心的地方 。因此,和上方的结论一致,我们最重要的测试内容就是服务层的核心算法或核心逻辑 。


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: