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

news/2024/10/8 10:12:16/文章来源:https://www.cnblogs.com/chenqiAaron/p/18451109

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

 

背景

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

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

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

 

一、 什么是规范优先?

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

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

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

(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.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/809826.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

phpinfo函数的作用

phpinfo() 函数是 PHP 中的一个内置函数,主要用于显示关于 PHP 配置的各种信息。这些信息包括 PHP 版本、已加载的扩展、环境变量、HTTP 头信息、目录路径设置等。这对于调试和了解当前 PHP 运行环境非常有用。作用包括:显示 PHP 的版本号。 列出所有已启用的扩展及其版本信息…

宝塔面板打不开怎么办

如果遇到宝塔面板无法打开的问题,可以尝试以下几个步骤来排查和解决问题:检查网络连接确保服务器与客户端之间的网络连接正常,尝试访问其他网站或服务以确认网络状况。查看端口是否开放宝塔面板默认使用的端口号为8888(或自定义端口),确保该端口在服务器防火墙中已经开放…

[Markdown] Markdown 及文档格式转换

1 概述 : Markdown Markdown 的诞生什么是 Markdown? Markdown 的诞生初衷Markdown 是一种用于编写结构化文档的纯文本格式,基于在电子邮件和 usenet 帖子中指示格式的约定。 它由 John Gruber 开发(在 Aaron Swartz 的帮助下),并于 2004 年以 语法描述 和用于将 Markdown…

如果 表名 拼写错误或表不存在,你会看到 #1146 - Table ecms.表名 doesnt exist 的错误

<?php $servername = "localhost"; $username = "your_username"; $password = "your_password"; $dbname = "ecms";// 创建连接 $conn = new mysqli($servername, $username, $password, $dbname);// 检查连接 if ($conn->con…

错误消息:#2002 - Cant connect to local MySQL server through socket /tmp/mysql.sock (2)

错误消息:#2002 - Cant connect to local MySQL server through socket /tmp/mysql.sock (2) 原因:数据库服务未启动。 连接参数错误。解决方法:检查数据库服务:确认 MySQL 服务是否正常运行。sudo service mysql status检查连接参数:确认连接参数(主机名、用户名、密码、…

请问想登录宝塔面板但是忘记密码_宝塔密码忘记了怎么办

通过邮箱找回:如果你在设置宝塔面板时绑定了邮箱,可以通过绑定的邮箱来找回密码。 访问宝塔面板登录页面,找到“忘记密码”选项并点击,按照提示输入已绑定的邮箱地址。 登录邮箱查看收到的重置链接或验证码,按照邮件中的指引完成密码重置。通过SSH命令行重置:首先通过SSH…

网站数据库配置失败怎么办

解决网站数据库配置失败的问题,可以按照以下步骤进行排查和修复:检查配置文件确认数据库连接信息是否正确,包括数据库地址、端口、用户名和密码。 检查数据库名称是否正确。验证数据库服务状态确认数据库服务是否正在运行。 使用命令行工具尝试连接数据库,确认连接是否成功…

公司网站预留电话修改不了

如果公司网站预留电话修改不了,可以尝试以下几种方法来解决问题:检查权限:确认当前登录的账号是否具有足够的权限来修改网站设置。 如果不是管理员账号,尝试联系公司的网站管理员或IT部门获取更高权限的账号。查看错误提示:在尝试修改时,注意查看是否有任何错误提示信息。…

图像数据增强库综述:10个强大图像增强工具对比与分析

在深度学习和计算机视觉领域,数据增强已成为提高模型性能和泛化能力的关键技术。本文旨在全面介绍当前广泛使用的图像数据增强库,分析其特点和适用场景,以辅助研究人员和开发者选择最适合其需求的工具。数据增强在深度学习模型训练中扮演着至关重要的角色,其重要性主要体现…

TEN Framework 入坑记

TEN Framework 是一个开源的多模态实时音视频和AI框架,很好用,很强大。最近,我们使用XSwitch打通了跟TEN的对接,在折腾的过程中有不少汗水也有不少收获,小记一下备忘。如果对大家有帮助,也很欣慰。TL;DR TEN Framework 最初叫 Astra,后改为 TEN,即 Transformative Exte…

SRC漏洞挖掘----信息搜集

信息搜集插件推荐:shodan,findsomething,retire.js,hacktool,FoFa Pro view SRC漏洞挖掘之信息搜集 资产搜集的网站:zoomeye,fofa(收费),360 网络空间测绘系统-360数字安全(免费) 1.FOFA语法学习 介绍: FOFA(Fingerprinting Organizations with Advanced Tools)是…