1. 程式人生 > >前後端分離時代,Java 程式設計師的變與不變!

前後端分離時代,Java 程式設計師的變與不變!

事情的起因是這樣的,有個星球的小夥伴向邀請鬆哥在知乎上回答一個問題,原題是:

  • 前後端分離的時代,Java後臺程式設計師的技術建議?

鬆哥認真看了下這個問題,感覺對於初次接觸前後端分離的小夥伴來說,可能都會存在這樣的疑問,於是決定通過這篇文章和大家聊一聊這個話題。

我這裡還是儘量從一個 Java 程式設計師的角度來說說這個問題,這樣大家可能更好理解。

從一個題外話開始

很多小夥伴可能知道,鬆哥本科是經管學院的,亞當•斯密的《國富論》多多少少還是瞭解一點。書中提到人類社會的本質就是分工協作,亞當•斯密認為人類之間的專業分工可以極大的提高生產力、創造財富,專業分工也是工業革命的基礎。人類社會的發展過程就是一個專業分工不斷細化、不斷深化的過程,從最早的農牧分家到手工業農業分家再到商人的出現,其實都是專業分工不斷細化深化的體現。

我們的開發世界也是一個小宇宙,專業分工不斷細化也是一個趨勢,從這個角度來說,前後端分離,都是值得積極擁抱的。

前後端分離的開發方式在最近幾年突然火起來,鬆哥認為有兩方面的原因:

  1. 前端的發展。前端經過近幾年的發展,已經不再是我們傳統所說的HTML+畫圖了,各種概念層出不窮,webpack、RxJs、Node、Redux、ssr、NuxtJs等,前端已經可以勝任很多事情,也能夠完成更加豐富的使用者互動。
  2. 移動網際網路的發展。前兩年移動網際網路的火爆,很多公司的產品都要在多個平臺上線,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 程式設計師,可以讓我們專注於後端的工作,不用再去寫前端程式碼,術業有專攻,可以寫出更優質的後端程式碼。不過話說回來,如果想保持一個良好的競爭力,還是有必要去了解一下目前流行的前端開發方式。

前後端分離不是終點,只是軟體開發方式演變大潮下的一個點而已,未來的路還很長,還有很多東西需要我們去學習,這只是一個其中一個而已。

最後再給大家推薦幾篇鬆哥之前寫的前後端分離的文章:

  1. 一個Java程式猿眼中的前後端分離以及Vue.js入門
  2. Spring Boot + Vue 前後端分離,兩種檔案上傳方式總結!
  3. Spring Boot + Vue 前後端分離開發,前端網路請求封裝與配置
  4. Spring Boot + Vue 前後端分離開發,許可權管理的一點思路

再推薦兩個入門專案:

  1. 微人事
  2. V部落

好了,本文就說到這裡,有問題歡迎留言討論。

關注公眾號【江南一點雨】,專注於 Spring Boot+微服務以及前後端分離等全棧技術,定期視訊教程分享,關注後回覆 Java ,領取鬆哥為你精心準備的 Java 乾貨!

相關推薦

前後分離時代Java 程式設計師

事情的起因是這樣的,有個星球的小夥伴向邀請鬆哥在知乎上回答一個問題,原題是: 前後端分離的時代,Java後臺程式設計師的技術建議? 鬆哥認真看了下這個問題,感覺對於初次接觸前後端分離的小夥伴來說,可能都會存在這樣的疑問,於是決定通過這篇文章和大家聊一聊這個話題。 我這裡還是儘量從一個 Java 程式設計

技術變化那麼快Java程式設計師如何做到被淘汰?

寫了這麼久的程式碼,你是否曾經有過這樣的迷茫和困惑:技術發展日新月異,奮力追趕的我們,究竟是技術的主人還是技術的奴隸? 技術人真的挺辛苦,除了在辦公室高強度、高壓力搬磚外,還要時刻關注最新的市場資訊、技術動態、行業資訊等等。一不小心,就擔心自己的技能、知識跟不上行業的變化。 在快節奏的

Spring Boot + Vue 前後分離開發前端網路請求封裝配置

前端網路訪問,主流方案就是 Ajax,Vue 也不例外,在 Vue2.0 之前,網路訪問較多的採用 vue-resources,Vue2.0 之後,官方不再建議使用 vue-resources ,這個專案本身也停止維護,目前建議使用的方案是 axios。今天鬆哥就帶大家來看看 axios 的使用。 axios

前後分離師傅們應該知道的一些基本前端知識

跨域問題 分類 port 什麽是 格式 url 就會 是否 option 寫下此文,是因為本人作為前端小白,經常遇到同樣小白的後端,常常不得不三番五次科普一些前端的基礎知識,特此做些總結,也方便有下次的話,直接拿出來給對方看。 1. 什麽是ajax 對

為什麽前後分離你比從前更痛苦?

技術 book 設計 機制 需求 返回 痛苦 頁面 更改 ? 你有沒有遇到過: 前端代碼剛寫完,後端的接口又變了。 接口文檔永遠都是不對的。 測試工作永遠只能臨近上線才能開始。 為什麽前後端分離了,你比從前更痛苦? 前後端分離早已經不是新聞,當真正分離之

前後分離獲取到session

在前後端分離的springboot專案中,進行圖片驗證時,第一次獲取驗證圖片後,我將code值加密後存放到了session中,打算在下一個請求進行圖片驗證時直接從session中獲取code值,然後進行對比。結果除錯時,在第二步過程中獲取的session一直為null。因此匹配結果一直false。當

臥底阿里、京東、美團Java程式設計師為大家帶回來的面試題

面試,難還是不難?最終結果好還是不好?取決於面試者的底蘊(氣場+技能)、心態和認知以及溝通技巧。而一些主流的大型網際網路公司面試(阿里巴巴、京東、美團、滴滴)更是需要你在面試時展現出自己的能力,從而獲得面試官的欣賞和肯定。   而程式設計師在應聘時更是需要經歷層層面試。俗話說,磨刀

CSDN 蔣濤:AI 時代為什麼程式設計師這麼貴?

11月8日,由中國專業IT社群CSDN與矽谷AI社群AICamp聯合出品的2018中國 AI 開發者大會(AI NEXTCon) 在北京拉開帷幕,近百位中美頂尖AI專家、知名企業代表、逾千名AI開發者,就人工智慧的最新技術及深度實踐,進行為期兩天的全方位解讀及論證。 今日上午,CSDN創始

CSDN蔣濤:AI時代為什麼程式設計師這麼貴?

11月8日,由中國專業IT社群CSDN與矽谷AI社群AICamp聯合出品的2018中國 AI 開發者大會(AI NEXTCon) 在北京拉開帷幕,近百位中美頂尖AI專家、知名企業代表、逾千名AI開發者,就人工智慧的最新技術及深度實踐,進行為期兩天的全方位解讀及論證。 今日上午,CS

人工智慧撲面而來java程式設計師就業前景如何?看下資料你就知道了

就在幾年前java在程式語言幾乎位於無敵的姿態,有人就曾說過java碾壓一切,未來前景絕對大好。但是經歷了幾年的沉澱,java依然是處於一超多強的局面,但是如今人工智慧的大火,會不會影響java未來的前景呢? 如果有想要學習java的小夥伴,可來我們的java

switch語句三種迴圈語句JAVA程式設計師程式設計新手入門基礎學習筆記

Java是一種可以撰寫跨平臺應用軟體的面向物件的程式設計語言。Java 技術具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用於PC、資料中心、遊戲控制檯、科學超級計算機、行動電話和網際網路,同時擁有全球最大的開發者專業社群。 自己整理了-份201 8最全面前端學習資料,從最基礎的HTML+

這個時代作為程式設計師可能要學習小程式

最近想搞搞後臺開發,話說注意力就轉移到了公司用的golang。用Go做微服務比較方便,或許是因為golang強悍的語法吧,看到go的語法,自己已被深深的吸引。關於學習後臺如何選擇可以參考《做後臺是選擇Java 、Go ,還是 PHP?》 來我們一起感受下Go的風

Java11新特性java程式設計師必看哦

Java 11 2018年9月26日,Oracle 官方宣佈 Java 11 正式釋出。這是 Java 大版本週期變化後的第一個長期支援版本(LTS版本,Long-Term-Support,持續支援到2026年9月),非常值得關注。Java11 帶來了 ZGC、Http Client 等重

vue前後分離專案解決跨域問題

最近公司新開發專案是前後端分離專案,前端用的是vue框架,在和前端除錯介面時存在拒絕跨域訪問403的情況。我這裡主要將解決的過程記錄一下。 什麼是跨域 跨域是瀏覽器的同源策略造成的,只要是域名、埠、協議有一不同,就會被當做是不同的域,之間的請求就被當做跨域操作。 設定同

前後分離專案使用session作為使用者狀態記錄

在使用前後端分離的專案中,我們一般選擇無狀態的請求方式,即web token;或者搭建快取伺服器,來準們儲存使用者的登入狀態。一般不會使用servlet的session來儲存使用者狀態,因為這種方式不太安全,而且前後端分離的專案中每次訪問的時候,所攜帶的sessionId也是不相同的,所以是

2018年Java程式設計師轉型大資料開發是一個好選擇?

近日網上有一篇關於Java程式設計師職場生存現狀的文章“2017年 Java 程式設計師,風光背後的危機”,在Java程式設計師圈子裡引起了廣泛關注和熱議。 2017年,Java 程式設計師面臨更加激烈的競爭。 不得不承認,經歷過行業的飛速發展期,網際網路的整體發展趨於平

shiro配置 在springboot中前後分離整合shiro認證授權框架

一:介紹     Apache Shiro是Java的一個安全框架。由於它相對小而簡單,現在使用的人越來越多。     Authentication:身份認證/登入,驗證使用者是不是擁有相應的身份。     Authorization:授權,即許可權驗證,驗證某個已認證

Django2.x前後分離開發跨域解決辦法

安裝django-cors-headers pip3 install django-cors-headers # 安裝django-cors-headers 在專案目錄裡面的settings.py新增下面的程式碼 INSTALLED_APPS = [ ... 'corsh

面試技巧分享Java程式設計師的的通病錯過必定後悔

會做不會說,是大部分程式設計師的通病,即將入行的初學者也有類似的問題。 要在面試中表現好,不僅僅是技巧問題,也有心態問題,這篇文章在這方面做了不錯的講解。值得大家花時間閱讀和學習。 在面試時,經過寒暄後,一般面試官會讓介紹專案經驗 。常見的問法是,說下你最近的(或最拿得出手的)一個專案。

Maven多模組Dubbo分散式服務框架SpringMVC前後分離專案基礎搭建搭建過程出現的問題

1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2 xsi:schemaLocation="http://maven.apac