还不知道这个原则的程序员,要小心了

陈哥聊测试
• 阅读 21

大家好,我是陈哥,今天聊聊规范优先原则 ~

背景

前几天,和我同事闲谈,聊到我在来禅道之前参与过的一个项目。当时,小团队对代码规范不够重视,结果合并代码时出现大量格式冲突,解决问题费时费力,最终项目的完成时间远远超过我们对项目预估的工时。

“无规矩不成方圆”,来了禅道以后才发现,其实小公司也应该有自己的代码规范。 大家如果对禅道的代码规范感兴趣的话,下篇文章将会详细介绍。

那么,今天的文章先和大家讲讲规范优先原则,希望大家重新认识规范优先原则。

一、 什么是规范优先?

在《国富论》开篇写道:“一个好的经济制度,就是鼓励每个人去创造更多的财富。” 这句话放在规范优先原则中也同样使用,“规范优先原则,就是鼓励每一个程序员去写更优秀的代码。”

规范优先是一种软件开发方法, 其原则是产品需求规范应在实际编码阶段开始之前制定和批准。这意味着开发团队首先定义应用程序界面的外观、哪些端点(方法)可用、应该传输哪些数据以及以何种方式传输,从而促进更结构化和可预测的开发过程。

规范优先方法发挥着重要作用:

(1)主动开发流程管理 规范优先使团队在开始编码之前就能清楚地了解他们需要创建什么,这减少了客户期望和实际结果之间产生误解和差异的可能性。

(2)改善沟通 创建 API 规范可鼓励开发人员、客户和其他利益相关者讨论和完善需求。这有助于更好地理解项目并加速开发过程。这种方法有助于避免客户和开发人员之间的误解,并最大限度地降低开发后期需求变更的风险。

(3)轻松集成和测试 规范优先原则的主要优势之一是能够在代码准备就绪之前轻松开始集成和测试。有了 API 规范,就可以设置模拟服务,并创建自动化测试,从而加快开发过程并确保更高的代码质量。 还不知道这个原则的程序员,要小心了

二、 自动化质量保证的好处

1.早期测试开发 由于 API 规范是在开发开始之前创建的,因此 AQA 部门可以根据规范中已经描述的方法提前开始编写测试。这大大减少了开发测试套件所需的时间,并提高了其完整性和准确性。例如,有了明确的规范,AQA 部门甚至可以在规划阶段开始开发测试场景,从而优化测试流程并减少将来花费的时间。

2.提高效率 根据预定义规范进行测试可简化流程并提高 AQA 部门的工作效率。规范中概述了清晰简洁的需求,测试专家可以专注于验证特定的功能能力和需求,而不必花时间识别界面中的差异或需求中的模糊之处。例如,拥有详细的规范可以帮助 AQA 工程师快速确定要进行哪些测试来验证特定功能,从而大大减少测试场景开发和执行所花费的时间。

三、 集成优势

由于几个重要原因,在软件开发中制定规范对于与其他团队的有效整合至关重要。原因如下:

1.清晰度和一致性 规范从一开始就明确了项目目标和参数。这确保所有参与的团队对需要开发的内容以及不同组件如何交互有统一的理解。共享规范使团队能够更有效地协调他们的努力以实现共同目标。

2.减少误解 规范有助于避免团队、客户和利益相关者之间的误解。通过提前全面记录需求,集成阶段出现误解或沟通不畅的风险显著降低。这可使团队之间的协作和集成更加顺畅。

3.更快的问题解决 当团队按照明确定义的规范工作时,集成过程中出现的任何问题或疑问都可以更快、更果断地得到解决。该规范可作为解决问题、确定根本原因和有效实施解决方案的参考点。

4.加速开发进程 有了规范,集成任务甚至可以在整个系统完全开发之前开始。团队可以根据文档中指定的约定接口和行为开始集成其组件。这种并行工作简化了开发流程并加快了整个项目的时间表。

5.增强质量保证 规范有助于更轻松、更全面地进行测试。可以根据规范中定义的预期行为开发测试场景,让质量保证团队能够尽早验证功能。这样可以减少缺陷和问题,提高软件质量。

6.提高利益相关者的满意度 采用规范驱动的方法通常会产生更好的结果,与利益相关者的期望紧密相关。通过遵守记录的要求,开发团队可以提供满足或超出客户需求的产品,从而提高满意度。 还不知道这个原则的程序员,要小心了

四、 结论

在开发团队中实施规范优先原则是提高软件开发流程效率的关键一步。这种方法可以促进更加结构化和透明的开发流程,提高质量并加快上市时间。

为了成功过渡到规范优先,我们可以先采用这些步骤: 1.选择正确的工具 选择用于创建和存储 API 规范的工具起着重要作用。选择会影响使用 API 的难易程度以及整个团队的规范的可访问性和清晰度。

2.逐步融入和适应 最好逐步实施新方法,从单个项目或模块开始。这样团队就可以熟悉新的方法和工具,学习最佳实践,并优化流程。

3.身份验证和安全的考虑 API 规范还可能包括有关身份验证方法、授权和其他安全方面的信息。这从一开始就确保了所开发应用程序的安全性,并有助于避免将来出现问题。

4.团队培训与准备 过渡到新方法需要整个团队的理解和支持。培训团队成员了解规范优先的基础知识、其优势和实施方法是成功采用的第一步。

一旦团队在一个项目中成功采用了 规范优先原则,就可以将这种方法扩展到所有后续项目和团队。随着时间的推移,规范优先将成为企业文化的一部分,并成为组织内软件开发的标准方法。过渡到规范优先可以优化团队内部的流程,并有助于实现更高的质量标准和客户满意度。

希望我的分享可以帮助到你,也欢迎给我留言和我讨论。

  • 参考文章:Ilia Ivankin: Boosting Development Efficiency With the Specification-First Principle.
点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
NO.66 禅道使用经验分享第四期:产品经理的禅道管理分享
关于禅道使用经验分享禅道使用经验分享,欢迎大家一起来探讨关于禅道项目管理软件使用方面的问题。我们广泛的收集对禅道的看法和建议,充分了解广大用户使用禅道的具体情况和要求,进而不断完善禅道的功能和服务。本期禅道使用经验分享来自于某互联网研发公司的黄俊光先生。该公司主要从事“三网融合”项目软、硬件产品的技术开发、平台建设以及提供增值业务运营等方面的服务。非
Wesley13 Wesley13
3年前
NO.161 如何做禅道二次开发(2):找到要修改的文件
要想对禅道(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.zentao.net%2F%3Fu%3Dpxz)进行修改,就必须知道对应的代码在什么地方。在了解了禅道的目录结构之后,我们来看下禅道的请求是如何对应到代码的。一、control方法的定位control方法是
Wesley13 Wesley13
3年前
MO.84 禅道PHP框架开发指南线上视频公开课 开始报名啦~
禅道PHP(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.zentao.net%3Fu%3Dlixiao)框架开发指南线上视频公开课将于5月31日(本周五)晚上19点开课,欢迎大家报名参加。禅道PHP框架是禅道项目管理软件的基础。本次视频公开课旨在给大家介绍框
Wesley13 Wesley13
3年前
NO.100 【CSDN开源专访】禅道创始人王春生:覆盖项目全周期,回归管理的本质
摘要:禅道是一款优秀的国产开源项目管理软件,集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体。CSDN记者采访了禅道项目创始人王春生,请他来介绍禅道项目的方方面面,以及开源项目商业化的经验。禅道(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.ze
Stella981 Stella981
3年前
NO.159 集成禅道和git
禅道(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.zentao.net%2F%3Fu%3Dpxz%26f%3Dosc%26a%3Dblog)从5.0版本开始内置了git集成功能,把禅道的任务、Bug等与代码进行关联,方便用户查看。下面向大家讲解如何配置禅道集成git。
Wesley13 Wesley13
3年前
NO.73 禅道使用经验分享第七期:游戏团队的敏捷开发与禅道
关于禅道使用经验分享禅道使用经验分享,欢迎大家一起来探讨关于禅道项目管理软件使用方面的问题。我们广泛的收集对禅道的看法和建议,充分了解广大用户使用禅道的具体情况和要求,进而不断完善禅道的功能和服务。本期禅道使用经验分享来自于某游戏工作室的Kathy。该游戏工作室正在开发一款游戏产品。非常感谢她在百忙之中接受禅道的采访,分享她和游戏工作室使用禅道的经验
Wesley13 Wesley13
3年前
NO.80 禅道使用分享第九期:测试部门缺陷管理的新需求
关于禅道(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.zentao.net%3Fu%3Dlixiao)使用经验分享禅道使用经验分享,欢迎大家一起来探讨关于禅道项目管理软件使用方面的问题。我们广泛的收集对禅道的看法和建议,充分了解广大用户使用禅道的具体情况和要求,进而不断完善
Wesley13 Wesley13
3年前
NO.88 禅道使用分享第十一期:敏捷开发团队的项目管理。
关于禅道使用经验分享禅道使用经验分享,欢迎大家一起来探讨关于禅道项目管理软件使用方面的问题。我们广泛的收集对禅道的看法和建议,充分了解广大用户使用禅道的具体情况和要求,进而不断完善禅道的功能和服务。本期禅道使用经验分享来自于深圳同洲电子负责互联网机顶盒开发的工作团队(以下简称开发团队)。非常感谢他们在百忙之中接受禅道的采访,分享团队使用禅道的经验和心
Wesley13 Wesley13
3年前
NO.112 禅道使用分享第十八期:工作效率明显提高。
关于禅道使用经验分享禅道使用经验分享,欢迎大家一起来探讨关于禅道项目管理软件(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.zentao.net%2F%3Fu%3Dpanxianzhi%26f%3Dos%26a%3Dblog)使用方面的问题。我们广泛的收集对禅
Wesley13 Wesley13
3年前
NO.147 维护禅道:初始化管理脚本。
禅道底层的zentaoPHP框架提供了命令行的操作入口,通过这个功能,可以通过命令行实现对禅道的各种配置或者维护工作。在继续阅读下面文章之前,请大家了解这篇文档:http://devel.cnezsoft.com/book/extension/34\_cli.html(https://www.oschina.net/action/GoToLink?url
陈哥聊测试
陈哥聊测试
Lv1
资深敏捷测试顾问,致力于测试自动化和DevOps等的实践和研究。
文章
40
粉丝
0
获赞
2