前后端分离时代,Java 程序员的变与不变!
事情的起因是這樣的,有個星球的小伙伴向邀請松哥在知乎上回答一個問題,原題是:
前后端分離的時代,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+微服務以及前后端分離等全棧技術,定期視頻教程分享!
---------------------?
作者:_江南一點雨?
來源:CSDN?
原文:https://blog.csdn.net/u012702547/article/details/94381774?
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
總結
以上是生活随笔為你收集整理的前后端分离时代,Java 程序员的变与不变!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 递推算法之滚动数组思维方式
- 下一篇: java美元兑换,(Java实现) 美元