两次 Joomla! 代码冲刺:马德里和蒙塔伯
不定期地,Joomla 项目会组织一次 代码冲刺。冲刺的目的是改善 Joomla 生态系统的特定区域,这可以是对代码、文档或其它方面的改进。在冲刺期间,一群对该特定领域有专长的人聚集在一起。不是在线,而是在现实生活中见面。如果你想要做成事情,面对面的会议是任何其他方式都无法比拟的。
马德里
2014年10月11日和12日,在西班牙马德里举办了一次代码风格冲刺。这次冲刺的目标是将 Joomla 代码清理到我们为自己设定的代码风格。干净、一致的代码使代码更容易维护,更不容易出现错误,我们可以对新贡献的代码实施干净代码的规则,以确保代码保持干净。如果我们自己的代码不干净,我们无法强制执行干净代码。
我们一组6个人坐下来,决定的目标是检查 Joomla 代码中的每个文件,看它是否遵循代码风格规则。这是一个大胆的目标,考虑到 Joomla 有一个庞大的代码库,但我们相信这是可以完成的。
我们把自己锁在地下室里(字面意义上,除了锁以外)开始工作。不知道是否是缺乏日光的影響,我们从我们的住所中出现后,意识到我们已经完成了一部分代码库。为了庆祝我们的胜利,为了保持我们新的传统,我们出去在地下室吃了一顿饭。我们应该保持我们新发现的魔法。
接下来的两天,我们继续清理代码库中每个文件的任务。随着时间的推移,我们在这新的工作场所对时间的感知已经不再清晰,我们开始处理文件。慢慢地但稳步地,每当清理完一个文件,我们就感到更加兴奋。跟踪每个需要完成的文件夹,一旦完成就勾掉清单,清单在我们不断缩小的眼前变得越来越短。我们粘在屏幕前,争取到达终点线。
随着最后一天的临近,我们连地下室都不再出去了,订购了披萨,我们看到了希望。最后的文件正在检查,第一个pull requests正在提交。是时候摆脱不一致代码的地下室,进入一致代码的光明中,看看我们的魔法创造了什么。数字让我们所有人都印象深刻。看看这个图表。请注意,这个图表不仅是我们的工作,也是那些定期帮助Joomla的人的工作。
尽管与Git的斗争,但我们所有人都对所做的大量工作感到非常兴奋。我们都有时候因为Git而想要把某种设备,通常是笔记本电脑,扔出窗外。在Roberto的帮助和坚持下,我们承受了Git的打击。我们来了,我们看到了,我们征服了。
我想感谢以下参与代码风格冲刺的人
与这样专业的团队合作非常愉快,我感到很荣幸能够帮助Joomla项目。
此外,我还想感谢2014年在同一周末和同一城市举行的JoomlaDay Madrid Spain 2014的所有组织者。特别感谢Alberto Gomez-chacon,Pedro Vidal和Irene López在代码冲刺的物流方面的帮助。
蒙塔鲍尔
每个由Joomla发布的版本都需要是一个稳定且经过良好测试的版本。尽管Joomla Bug Squad团队和自动化测试的努力,我们仍然需要更多的和更好的测试。更多的和更好的自动化测试可以带来很多好处。Robert Deutz发起了一项组织代码测试冲刺的倡议。
10月15日星期三,在德国蒙塔鲍尔举行代码测试冲刺的时刻到来了。共有八人聚集在一起,与PHPUnit的作者Sebastian Bergmann见面,以提高我们编写单元测试的知识,并改进Joomla测试套件。为了确保没有人离开,我们驻扎在山顶上。下山意味着又要长时间爬上来。
我们从Sebastian对单元测试的介绍开始。不仅有单元测试,还有系统测试,简单来说,单元测试是对代码(用户看不到的东西)的测试,系统测试是对界面的测试(用户可以看到的东西)。为了维护这两种测试,有一个单元测试工作组和一个系统测试工作组。那天晚些时候,我们列出我们希望在未来3天内涵盖的所有主题,并逐一解决它们。
编写测试并非易事,我们尽力进行了彻底的测试。我们发现编写测试并不难,但编写有意义的测试需要技巧。由于国际Pizza,Bugs和Fun活动与我们冲刺的那天在同一天举行,我们那天也靠披萨度过了,一直工作到深夜。以下是一个简短的概述,概述了每个人都做了什么,这不是一个完整的列表,只是为了给你一个我们工作领域的概念。
Michael Babker
- 改进了Joomla单元测试的基础
- 重新组织了一些“支持”文件(DDL模式与包含测试所需模拟内容的文件)在文件夹结构中,以实现更合理的组织
- 审查了数据库测试和许多覆盖库/cms中类的测试,并将它们修改为使用更具体的测试断言,以反映实际测试的内容
- 重构JDocument类测试,使其更符合单元测试而不是功能测试。在框架中对\Joomla\Language\Text类进行了重构,以不使用任何静态方法,并对该类的测试用例进行了重构,以更好地进行单元测试。
维克托·福格尔
- 创建了包装类以消除静态方法。有关详细信息,请参阅此拉取请求:https://github.com/joomla/joomla-cms/pull/4717
罗伯特·德特茨
- 提高了JArchive的代码覆盖率,提高了7%的代码覆盖率
- Codeception设置(这仍然是正在进行的工作)
- 测试文档
大卫·贾丁
- 将JModel遗留类的代码覆盖率从9%提高到40%
- 检查现有文档,添加了“最佳实践”和“使用数据库连接进行测试”的文档
- 修复了与当前测试套件中的舍入问题相关的一个错误
普内特·卡拉
- 重构了代码,并删除了不必要或不维护的Selenium RC测试
- 在Joomla暂存分支中识别了两个问题,这些问题是由于错误的提交而产生的
- 在Codeception框架上工作,使测试可以并行运行
尼尔·布拉策克
- 进行了大量的清理。据PHPUnit在严格模式下运行所述,大约有700个测试是不完整或危险的。在冲刺结束时,它们要么被删除,要么提供了有意义的断言。
- 在移除用下划线前缀变量以指示私有变量的古老方法上进行了工作。如何在保持向后兼容性的同时去除下划线可能是一个单独文章的主题。
哈维埃尔·戈麦斯
- 在为JLayout创建测试上进行了工作
- 在Codeception框架上工作,使测试可以并行运行
罗兰·达尔穆勒德
- 在为JLayout创建测试上进行了工作
- 在为多语言创建测试上进行了工作
不仅仅是Joomla
我们不仅改进了Joomla,还改进了其他开源项目,因为我们识别了以下项目的错误:
- PHPUnit
- de-legacy-fy
- PHP 7
继续前进
为了确保我们的代码测试工作不会停止,我们创建了一个包含需要审查的不同文档页面的链接的文档。这将帮助我们让其他人参与测试。此外,我们还制定了继续对单元测试进行工作并对其进行清理的计划,以便我们可以有一套最新的测试套件,可以对其进行改进。
愿意帮忙吗?
如果您有兴趣帮助我们改进测试基础,请随时联系工作组之一。我们将非常高兴欢迎您加入。
这个活动如果没有1und1的赞助是无法实现的。
在Joomla社区杂志上发表的一些文章代表了作者对特定主题的个人观点或经验,可能不符合Joomla项目的官方立场。
通过接受,您将访问由 https://magazine.joomla.net.cn/ 外部的第三方提供的服务
评论