首页 > 编程语言 >还不知道这个原则的程序员,要小心了

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

时间:2024-10-08 10:13:45浏览次数:5  
标签:API 优先 原则 小心 规范 程序员 开发 测试 团队

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

 

背景

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

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

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

 

一、 什么是规范优先?

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

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

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

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

标签:API,优先,原则,小心,规范,程序员,开发,测试,团队
From: https://www.cnblogs.com/chenqiAaron/p/18451109

相关文章

  • 程序员必备生活技能之——破损鞋帮内衬修复
    程序员的护城河程序员的护城河是什么。是解决问题的能力?是学习最新技术的速度?都不是,是命!代码写不出来歇会再写,技术学不会大不了不用,人没了什么都没了。47岁技术传奇陈皓(左耳朵耗子)去世_澎湃号·湃客_澎湃新闻-ThePaperhttps://www.thepaper.cn/newsDetail_forward_23087736......
  • 生信软件开发原则与未来方向
    分享一篇Y叔(余光创)联合同行老师近期在TheInnovationLife上发表的综述文章:Bioinformaticssoftwaredevelopment:Principlesandfuturedirections。文章主要讨论了生物信息学软件开发的原则和未来的发展方向,强调了人工智能(AI)在加速和增强生物信息学软件开发过程中的重要性,并展......
  • 实验1:UML与面向对象程序设计原则
    [实验任务一]:UML复习阅读教材第一章复习UML,回答下述问题:面向对象程序设计中类与类的关系都有哪几种?分别用类图实例说明。1、关联关系   2、聚合关系  3、依赖关系  4、组合关系     [实验任务二]:单一职责原则登录模块在实际项目开发中很常见,......
  • 程序员级别鉴定书(.NET 面试问答集锦)
    程序员级别鉴定书(.NET面试问答集锦)原创葡萄城技术团队.NET技术2014/06/1112:00阅读数724作为一个.NET程序员,应该知道的不仅仅是拖拽一个控件到设计时窗口中。就像一个赛车手,一定要了解他的爱车�能做什么不能做什么。本文参考ScottHanselman给出的.NET问......
  • 卫生间装修之前,一定要检查开发商做的防水,小心有坑
     去一个工地水电交底,在卫生间定位的时候发现墙面上有点鼓,  随手找了个东西在墙上划了几下,墙皮就掉下来了,露出来的是红色的防水,这应该是开发商给做的,摸上去非常的光滑。  这应该是开发商做完防水之后,在防水的表面又挂上了一层粘合剂,就这样交房了。  这套房子从......
  • DRF请求的生命周期:三年程序员的实战感悟
    前言:作为工作一个3年左右的码农,在各种框架的摸爬滚打中,我也接触了不少前端后端的技术栈,其中DjangoRESTFramework(DRF)算是我后端日常工作中的用得最多的框架。今天就简单聊聊DRF请求的生命周期。从请求的发起,到数据的处理,再到最终的响应返回,每一步都有着很多的细节和挑战,由于篇幅......
  • 一个程序员炒股后的心酸历程
        我今年四十多岁,在世纪初拿到了一个不入流的本科学历。毕业那年,仍心有不甘,尝试参加了当年全国研究生统一考试,虽然初试成绩有361分,是当年所报考学校所报考学院的第四名,但仍在复试中以微弱劣势,低于0.5分的综合成绩在三十二名选手中惨糟淘汰。值得炫耀的是,这次研究生......
  • 程序员世界大冒险d22
    今天上了Java课,老师让生成对话框,不怎么会,该学学的,下面是代码:importjava.util.Random;importjavax.swing.;importjava.awt.;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;classMethod{publicString[][]generateQuestions(){Randomran......
  • 分享C++程序员面试八股文(十五)
    以下是C++常见八股文(十五):一、C++中的高级文件操作(AdvancedFileOperations)解释文件随机访问的方法及应用场景方法:在C++中,可以使用文件流对象(如std::ifstream、std::ofstream、std::fstream)的seekg(设置输入位置)和seekp(设置输出位置)成员函数来实现文件的随机访问。这......
  • 分享C++程序员面试八股文(十四)
    以下是C++常见八股文(十四):一、C++中的智能指针高级用法(AdvancedUsageofSmartPointers)解释unique_ptr、shared_ptr和weak_ptr的循环引用问题及解决方法循环引用问题:当使用shared_ptr进行相互引用时,可能会导致循环引用问题。例如,两个对象相互持有对方的shared_pt......