资讯专栏INFORMATION COLUMN

前后端分离时代,Java 程序员的变与不变!

SolomonXie / 2101人阅读

摘要:前后端分离的开发方式在最近几年突然火起来,松哥认为有两方面的原因前端的发展。不变其实除了前后端交互方式发生变化之外,其他的地方都是不变的。

事情的起因是这样的,有个星球的小伙伴向邀请松哥在知乎上回答一个问题,原题是:

前后端分离的时代,Java后台程序员的技术建议?

松哥认真看了下这个问题,感觉对于初次接触前后端分离的小伙伴来说,可能都会存在这样的疑问,于是决定通过这篇文章和大家聊一聊这个话题。

我这里还是尽量从一个 Java 程序员的角度来说说这个问题,这样大家可能更好理解。

从一个题外话开始

很多小伙伴可能知道,松哥本科是经管学院的,亚当•斯密的《国富论》多多少少还是了解一点。书中提到人类社会的本质就是分工协作,亚当•斯密认为人类之间的专业分工可以极大的提高生产力、创造财富,专业分工也是工业革命的基础。人类社会的发展过程就是一个专业分工不断细化、不断深化的过程,从最早的农牧分家到手工业农业分家再到商人的出现,其实都是专业分工不断细化深化的体现。

我们的开发世界也是一个小宇宙,专业分工不断细化也是一个趋势,从这个角度来说,前后端分离,都是值得积极拥抱的。

前后端分离的开发方式在最近几年突然火起来,松哥认为有两方面的原因:

前端的发展。前端经过近几年的发展,已经不再是我们传统所说的HTML+画图了,各种概念层出不穷,webpack、RxJs、Node、Redux、ssr、NuxtJs等,前端已经可以胜任很多事情,也能够完成更加丰富的用户交互。

移动互联网的发展。前两年移动互联网的火爆,很多公司的产品都要在多个平台上线,Android、iOS、小程序、公众号、PC 等等各个平台都要展示,不可能针对不同的设备开发一套后端,应该是多个前端共用同一个后端,这是就不能采用传统的前后端不分的方式来开发后端程序了。正是这样的业务需求,促进了前后端分离的发展。

变与不变

程序员之间的分工协作方式有所变化,开发方式当然也会随着一起变化。但是这种变化其实是非常细微的,很容易上手的。

工作内容变

老实说,前后端分离之后,对 Java 程序员的要求变低了,以前大家大家出去面试 Java 工程师,如果是前后端不分的话,前端基本上也是必问的,常见的问题就是各种元素选择器,这也很好理解,因为在前后端不分的开发方式中,后端工程师多多少少是要写一点前端代码的,你很难完完全全的只写 Java 代码。但是在这种情况下,你要写的前端代码其实都是很简单的,不会是特别难的。

前后端分离之后,Java 程序员只需要专注于后台业务逻辑,对外接收前台传来的参数,根据参数给出不同的响应即可,基本上不需要写前端代码。因为这个时候的前端不同于前后端不分时候的前端,前后端分离之后,前端还是有一定的难度,较为常见的是 SPA 应用,涉及到 NodeJS、Webpack 等,此时如果还要让后端工程师写前端代码,对后端工程师的技术要求就会比较高。

不过话说回来,前后端分离后,如果你还能即写前端又写后端,那可以让老板加薪了。

接口变

前后端不分的时候,很少会涉及到接口设计,以 SpringMVC 为例,你可能返回的始终是 ModelAndView 一类的东西,前后端分离之后,我们基本上不需要返回页面了,后端主要是返回 JSON 数据,所以关键是设计好各种接口。

一个比较好的实践方案是设计满足 RESTful 规范的接口,语义明确,简洁明了,看到 URL 就知道你想干嘛!

开发流程变化

前后端分离之后,前端不可能等后端开发好接口之后再去开发,如果这样,原本两个月做完的项目可能就得 4 个月才能完成。

一般在开发之前,整个项目组需要先设计好一个接口文档,一般可以采用 Swagger 来做接口文档(SpringBoot整合Swagger2,再也不用维护接口文档了!),文档中约定了接口的详细信息,前后端分别按照既定的接口规范去开发,在尚未开发完成时,可以借助 Mock 来进行测试。

前端也是使用模拟数据进行测试,开发完成之后,前后端接口联调,完成测试。

不变

其实除了前后端交互方式发生变化之外,其他的地方都是不变的。

前后端分离,一般来说是不会影响后端技术架构的,你使用了 SSM 或者 Spring Boot 或者 Dubbo 或者微服务,无论什么,这些技术架构既可以支撑你前后端不分的项目,也可以支撑你前后端分离的项目。

因此我说后端技术架构不受前后端分离影响。

另一方面,技术的根本不变,例如你做 Java 开发,该会的 SSM/SpringBoot/Redis/Nginx/Dubbo/SpringCloud/MySQL/MyCat/ELK/...等等,都还得会。

所以,还是去老老实实撸代码吧!

结语

如果仅仅从一个 Java 程序员的角度来说,前后端分离开发这种方式,其实是解放了 Java 程序员,可以让我们专注于后端的工作,不用再去写前端代码,术业有专攻,可以写出更优质的后端代码。不过话说回来,如果想保持一个良好的竞争力,还是有必要去了解一下目前流行的前端开发方式。

前后端分离不是终点,只是软件开发方式演变大潮下的一个点而已,未来的路还很长,还有很多东西需要我们去学习,这只是一个其中一个而已。

最后再给大家推荐几篇松哥之前写的前后端分离的文章:

一个Java程序猿眼中的前后端分离以及Vue.js入门

Spring Boot + Vue 前后端分离,两种文件上传方式总结!

Spring Boot + Vue 前后端分离开发,前端网络请求封装与配置

Spring Boot + Vue 前后端分离开发,权限管理的一点思路

再推荐两个入门项目:

微人事

V部落

好了,本文就说到这里,有问题欢迎留言讨论。

关注公众号【江南一点雨】,专注于 Spring Boot+微服务以及前后端分离等全栈技术,定期视频教程分享,关注后回复 Java ,领取松哥为你精心准备的 Java 干货!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75081.html

相关文章

  • 4月8日云栖精选夜读 | 阿里云、蚂蚁区块链医疗解决方案首次应用于未来医院电子处方

    摘要:点击订阅云栖夜读周刊月日,首届世界大健康博览会举行期间,阿里云宣布其联合支付宝共同研发的区块链医疗解决方案已经正式应用于武汉中心医院的电子处方,武汉市中心医院也成为首家应用该技术方案的未来医院。【点击订阅云栖夜读周刊】 4月8日,首届世界大健康博览会举行期间,阿里云宣布其联合支付宝共同研发的区块链医疗解决方案已经正式应用于武汉中心医院的电子处方,武汉市中心医院也成为首家应用该技术方案的未来...

    cheng10 评论0 收藏0
  • 《从零构建前后分离web项目》:开篇 - 纵观WEB历史演变

    摘要:更详细的内容下一章开篇深入聊聊前后分离讲述关于我目前在写从零构建前后分离项目系列,修正和补充以此为准不断更新的项目实践地址彩蛋提前预览下一章传送门 开篇 : 纵观WEB历史演变 在校学习和几年工作工作中不知不觉经历了一半的 WEB 历史演变、对近几年的发展比较了解,结合经验聊聊 WEB 发展历史。 演变不易,但也是必然,因为为人始终要进步。 WEB 的发展史 一、开山鼻祖 - 石器时代...

    tracy 评论0 收藏0
  • 《从零构建前后分离web项目》:开篇 - 纵观WEB历史演变

    摘要:更详细的内容下一章开篇深入聊聊前后分离讲述关于我目前在写从零构建前后分离项目系列,修正和补充以此为准不断更新的项目实践地址彩蛋提前预览下一章传送门 开篇 : 纵观WEB历史演变 在校学习和几年工作工作中不知不觉经历了一半的 WEB 历史演变、对近几年的发展比较了解,结合经验聊聊 WEB 发展历史。 演变不易,但也是必然,因为为人始终要进步。 WEB 的发展史 一、开山鼻祖 - 石器时代...

    songjz 评论0 收藏0
  • [转] 再论 java 中的 final 变量

    摘要:的内存分配方式修饰变量通常情况下,变量有个地方可以赋值直接赋值,构造函数中,或是初始化块中。如就是对于变量,在声明时,如果你没有赋值,系统默认这是一个空白域,在构造函数进行初始化,如果是静态的,则可以在初始化块。 【java中为什么会有final变量】: final这个关键字的含义是这是无法改变的或者终态的; 那么为什么要阻止改变呢? java语言的发明者可能由于两个目的而阻止改变: ...

    soasme 评论0 收藏0
  • Node中间层实践(一)——基于NodeJS的全栈式开发

    摘要:总结我觉得,以后基于的全栈式开发的模式将会越来越流行,这也会引领前端步入工程化时代。欢迎继续关注本博的更新中间层实践一基于的全栈式开发中间层实践二搭建项目框架中间层实践三配置中间层实践四模板引擎中间层实践五中间层的逻辑处理 版权声明:更多文章请访问我的个人站Keyon Y,转载请注明出处。 前言 近期公司有个新项目,由于后端人手不足,我果断的提议用node中间层的方案,得到了老大的支持...

    warkiz 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<