首页 > 编程语言 >java实际开发中接口文档是自己写还是架构师写?

java实际开发中接口文档是自己写还是架构师写?

时间:2023-06-26 10:33:57浏览次数:64  
标签:java 前端 接口 原型 API 文档 开发 架构师

软件工程的两种方法下,由后端决定接口都是不对的。
第一种软件工程的方法:瀑布模型,自顶而下,逐步细化。
接口会变,但是接口要提前设计。接口不是后端开发完成之后才“自然”产生的,那不是自然,而是无序。
前后端分离的开发,应该是面向“API”的开发。API的设计并不能由前端或后端一方决定或主导,而是需要一个前后端都熟悉的人,这个人叫架构师。
随着最近几年前端技术的高速发展和浏览器性能的提升,前端能够实现的事情越来越多,前后端的分工也在变化。原来必须在后端完成的事情,现在放在前端可能更简单更自然,而且减少了前后端之间的交互。
具体哪些功能放在前端,哪些功能放在后端,Restful API的URL和请求参数、返回体,都应该由架构师根据需求提前设计。然后给前后端一起讲解、讨论、修改。
当然,绝对不奢求API老古不变,因为大家的能力也都在成长,经验也都在累积,肯定有考虑不周全的地方。

第二种软件工程的方法:原型法,先确定需求,然后小步迭代。
如在在没有这样能前后端通盘考虑的架构师在的情况下,我更倾向于由前端决定前后端交互的API接口。
原型法,就是尽快产生可以验证的原型,起到辅助和用户(产品经理)讨论的作用,帮助明确用户的需求。再也没有界面能够让用户直观感受的东西了,因为对于用户来说界面就是一切。而现在的前端完全可以不依赖任何服务器端数据就能开发出界面原型(不是线框图),这个界面原型确定之后,也是后期前端开发的基础。
前端先开发界面原型。在确定界面风格、布局、跳转、交互的过程中,自然会行程需要获取数据的接口。这些接口是前端真实需要的。
如果在没有前端,或者后端开发根本不考虑前端的情况下,自己写完后端代码产生的API,是想象前端需要的API,而且是完全站在后端技术角度想象的。前端调用的时候必然别扭,甚至完全不能满足需要。比如后端可能还按照自己以前写JSP时候的经验去提供API,但是如今已经完全变了。
后端开发完接口才给出接口文档,是旧有开发模式遗留下来的开发方式。在前端没有成长起来之前,甚至没有前端的概念的时候,只有服务器端,当然是后端自己确定自己的借口了,而且确定的是JSP和Controller之间的接口(我仅以Java Web开发举例,其他技术都差不多)。

标签:java,前端,接口,原型,API,文档,开发,架构师
From: https://www.cnblogs.com/mryd/p/17504671.html

相关文章

  • JavaScript program to check if a given year is leap year Javascript判断是否是闰
    Ayearisleapyeariffollowingconditionsaresatisfied:Yearismultipleof400.Yearismultipleof4andnotmultipleof100.Approach: Getthevalueofinputfieldbyusingdocument.getElementById(“year”).valueCheckthegivenyearisleapyear......
  • java反射之-InvocationHandler使用
    InvocationHandler是Java中的一个接口,是Java反射API的一部分。与Proxy类一起使用,用于动态创建接口的代理实例。在Java中使用Proxy类创建代理对象时,需要提供一个InvocationHandler实现来定义代理对象的行为。InvocationHandler接口只有一个方法,即invoke()方法,它......
  • JavaScript1.8.5新特性系列Object.keys
    以前在js-object这个分类里面也写过keys相关的api 在JavaScript1.8.5中,加入了原生的Object.keys这个api  Object.keys(obj);/*简单举例*/Object.keys({"A":"a","B":"b"});//["A","B"]兼容性写法:  if(!Object.keys){Object.keys=......
  • [转]Java如何对一个对象进行深拷贝
    介绍在Java语言里,当我们需要拷贝一个对象时,有两种类型的拷贝:浅拷贝与深拷贝。浅拷贝只是拷贝了源对象的地址,所以源对象的值发生变化时,拷贝对象的值也会发生变化。而深拷贝则是拷贝了源对象的所有值,所以即使源对象的值发生变化时,拷贝对象的值也不会改变。如下图描述:了解了浅拷......
  • Java学习笔记(十六)
    1.什么是线程?线程是指操作系统中的一种执行单元,它是进程中的一部分,可以看作是轻量级的进程。与进程不同的是,线程共享同一进程的地址空间和系统资源,如打开文件和信号处理等,但每个线程都有自己的程序计数器(PC)和栈,用于执行代码和存储局部变量等数据。2。线程和进程有什么区别?线......
  • JAVA方法
    java方法原子性​​publicstaticintmax(intnum1,intnum2){  intresult=0;//初始化  if(num1==num2){    System.out.println("num1==num2");    return0;//终止方法 }  if(num1>num2){    result=num1; }else{   ......
  • 共筑数字化未来金山办公携手华为云完成文档中心和GaussDB适配
    近日,金山办公携手华为云完成金山办公自主研发的“WPS文档中心系统”与华为云GaussDB相互兼容性测试认证,并获得华为云授予的《技术认证书》。作为一家源自中国的科技公司,金山办公秉持“绽放智慧的力量”这一品牌理念,在过去35年持续深耕办公赛道,从开创计算机“中文字处理时代”,到引领......
  • 6月25日java学习日记
    端午节小休息了几天,断开连接了几天,希望快速状态回到吧,今天了解了部分java异常类,Exceptions类为异常类,学习了throw关键字,以及了解了trycatch的用法(基本与C#相同),同时使用HasgMap以及List.of方法实现了斗地主案例。 ......
  • reactRouter6 整理文档
    1.概述ReactRouter以三个不同的包发布到npm上,它们分别为:2.react-router:路由的核心库,提供了很多的:组件、钩子。3.react-router-dom:包含react-router所有内容,并添加一些专门用于DOM的组件,例如<BrowserRouter>等。4.react-router-native:包括react-router所有......
  • 学习Java前的一些介绍
    1.java开发环境搭建卸载:删除Java的安装目录删除JAVA_HOME删除path下关于java的目录java-version验证安装:创建jdk和jre两个目录(还可以创建一个code目录存放代码)百度搜索jdk(建议安装jdk8)同意协议,找到对应版本并且下载双击安装jdk配置环境变量我......