成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

前后端分離時(shí)代,Java 程序員的變與不變!

SolomonXie / 2115人閱讀

摘要:前后端分離的開(kāi)發(fā)方式在最近幾年突然火起來(lái),松哥認(rèn)為有兩方面的原因前端的發(fā)展。不變其實(shí)除了前后端交互方式發(fā)生變化之外,其他的地方都是不變的。

事情的起因是這樣的,有個(gè)星球的小伙伴向邀請(qǐng)松哥在知乎上回答一個(gè)問(wèn)題,原題是:

前后端分離的時(shí)代,Java后臺(tái)程序員的技術(shù)建議?

松哥認(rèn)真看了下這個(gè)問(wèn)題,感覺(jué)對(duì)于初次接觸前后端分離的小伙伴來(lái)說(shuō),可能都會(huì)存在這樣的疑問(wèn),于是決定通過(guò)這篇文章和大家聊一聊這個(gè)話題。

我這里還是盡量從一個(gè) Java 程序員的角度來(lái)說(shuō)說(shuō)這個(gè)問(wèn)題,這樣大家可能更好理解。

從一個(gè)題外話開(kāi)始

很多小伙伴可能知道,松哥本科是經(jīng)管學(xué)院的,亞當(dāng)?斯密的《國(guó)富論》多多少少還是了解一點(diǎn)。書(shū)中提到人類(lèi)社會(huì)的本質(zhì)就是分工協(xié)作,亞當(dāng)?斯密認(rèn)為人類(lèi)之間的專(zhuān)業(yè)分工可以極大的提高生產(chǎn)力、創(chuàng)造財(cái)富,專(zhuān)業(yè)分工也是工業(yè)革命的基礎(chǔ)。人類(lèi)社會(huì)的發(fā)展過(guò)程就是一個(gè)專(zhuān)業(yè)分工不斷細(xì)化、不斷深化的過(guò)程,從最早的農(nóng)牧分家到手工業(yè)農(nóng)業(yè)分家再到商人的出現(xiàn),其實(shí)都是專(zhuān)業(yè)分工不斷細(xì)化深化的體現(xiàn)。

我們的開(kāi)發(fā)世界也是一個(gè)小宇宙,專(zhuān)業(yè)分工不斷細(xì)化也是一個(gè)趨勢(shì),從這個(gè)角度來(lái)說(shuō),前后端分離,都是值得積極擁抱的。

前后端分離的開(kāi)發(fā)方式在最近幾年突然火起來(lái),松哥認(rèn)為有兩方面的原因:

前端的發(fā)展。前端經(jīng)過(guò)近幾年的發(fā)展,已經(jīng)不再是我們傳統(tǒng)所說(shuō)的HTML+畫(huà)圖了,各種概念層出不窮,webpack、RxJs、Node、Redux、ssr、NuxtJs等,前端已經(jīng)可以勝任很多事情,也能夠完成更加豐富的用戶交互。

移動(dòng)互聯(lián)網(wǎng)的發(fā)展。前兩年移動(dòng)互聯(lián)網(wǎng)的火爆,很多公司的產(chǎn)品都要在多個(gè)平臺(tái)上線,Android、iOS、小程序、公眾號(hào)、PC 等等各個(gè)平臺(tái)都要展示,不可能針對(duì)不同的設(shè)備開(kāi)發(fā)一套后端,應(yīng)該是多個(gè)前端共用同一個(gè)后端,這是就不能采用傳統(tǒng)的前后端不分的方式來(lái)開(kāi)發(fā)后端程序了。正是這樣的業(yè)務(wù)需求,促進(jìn)了前后端分離的發(fā)展。

變與不變

程序員之間的分工協(xié)作方式有所變化,開(kāi)發(fā)方式當(dāng)然也會(huì)隨著一起變化。但是這種變化其實(shí)是非常細(xì)微的,很容易上手的。

工作內(nèi)容變

老實(shí)說(shuō),前后端分離之后,對(duì) Java 程序員的要求變低了,以前大家大家出去面試 Java 工程師,如果是前后端不分的話,前端基本上也是必問(wèn)的,常見(jiàn)的問(wèn)題就是各種元素選擇器,這也很好理解,因?yàn)樵谇昂蠖瞬环值拈_(kāi)發(fā)方式中,后端工程師多多少少是要寫(xiě)一點(diǎn)前端代碼的,你很難完完全全的只寫(xiě) Java 代碼。但是在這種情況下,你要寫(xiě)的前端代碼其實(shí)都是很簡(jiǎn)單的,不會(huì)是特別難的。

前后端分離之后,Java 程序員只需要專(zhuān)注于后臺(tái)業(yè)務(wù)邏輯,對(duì)外接收前臺(tái)傳來(lái)的參數(shù),根據(jù)參數(shù)給出不同的響應(yīng)即可,基本上不需要寫(xiě)前端代碼。因?yàn)檫@個(gè)時(shí)候的前端不同于前后端不分時(shí)候的前端,前后端分離之后,前端還是有一定的難度,較為常見(jiàn)的是 SPA 應(yīng)用,涉及到 NodeJS、Webpack 等,此時(shí)如果還要讓后端工程師寫(xiě)前端代碼,對(duì)后端工程師的技術(shù)要求就會(huì)比較高。

不過(guò)話說(shuō)回來(lái),前后端分離后,如果你還能即寫(xiě)前端又寫(xiě)后端,那可以讓老板加薪了。

接口變

前后端不分的時(shí)候,很少會(huì)涉及到接口設(shè)計(jì),以 SpringMVC 為例,你可能返回的始終是 ModelAndView 一類(lèi)的東西,前后端分離之后,我們基本上不需要返回頁(yè)面了,后端主要是返回 JSON 數(shù)據(jù),所以關(guān)鍵是設(shè)計(jì)好各種接口。

一個(gè)比較好的實(shí)踐方案是設(shè)計(jì)滿足 RESTful 規(guī)范的接口,語(yǔ)義明確,簡(jiǎn)潔明了,看到 URL 就知道你想干嘛!

開(kāi)發(fā)流程變化

前后端分離之后,前端不可能等后端開(kāi)發(fā)好接口之后再去開(kāi)發(fā),如果這樣,原本兩個(gè)月做完的項(xiàng)目可能就得 4 個(gè)月才能完成。

一般在開(kāi)發(fā)之前,整個(gè)項(xiàng)目組需要先設(shè)計(jì)好一個(gè)接口文檔,一般可以采用 Swagger 來(lái)做接口文檔(SpringBoot整合Swagger2,再也不用維護(hù)接口文檔了!),文檔中約定了接口的詳細(xì)信息,前后端分別按照既定的接口規(guī)范去開(kāi)發(fā),在尚未開(kāi)發(fā)完成時(shí),可以借助 Mock 來(lái)進(jìn)行測(cè)試。

前端也是使用模擬數(shù)據(jù)進(jìn)行測(cè)試,開(kāi)發(fā)完成之后,前后端接口聯(lián)調(diào),完成測(cè)試。

不變

其實(shí)除了前后端交互方式發(fā)生變化之外,其他的地方都是不變的。

前后端分離,一般來(lái)說(shuō)是不會(huì)影響后端技術(shù)架構(gòu)的,你使用了 SSM 或者 Spring Boot 或者 Dubbo 或者微服務(wù),無(wú)論什么,這些技術(shù)架構(gòu)既可以支撐你前后端不分的項(xiàng)目,也可以支撐你前后端分離的項(xiàng)目。

因此我說(shuō)后端技術(shù)架構(gòu)不受前后端分離影響。

另一方面,技術(shù)的根本不變,例如你做 Java 開(kāi)發(fā),該會(huì)的 SSM/SpringBoot/Redis/Nginx/Dubbo/SpringCloud/MySQL/MyCat/ELK/...等等,都還得會(huì)。

所以,還是去老老實(shí)實(shí)擼代碼吧!

結(jié)語(yǔ)

如果僅僅從一個(gè) Java 程序員的角度來(lái)說(shuō),前后端分離開(kāi)發(fā)這種方式,其實(shí)是解放了 Java 程序員,可以讓我們專(zhuān)注于后端的工作,不用再去寫(xiě)前端代碼,術(shù)業(yè)有專(zhuān)攻,可以寫(xiě)出更優(yōu)質(zhì)的后端代碼。不過(guò)話說(shuō)回來(lái),如果想保持一個(gè)良好的競(jìng)爭(zhēng)力,還是有必要去了解一下目前流行的前端開(kāi)發(fā)方式。

前后端分離不是終點(diǎn),只是軟件開(kāi)發(fā)方式演變大潮下的一個(gè)點(diǎn)而已,未來(lái)的路還很長(zhǎng),還有很多東西需要我們?nèi)W(xué)習(xí),這只是一個(gè)其中一個(gè)而已。

最后再給大家推薦幾篇松哥之前寫(xiě)的前后端分離的文章:

一個(gè)Java程序猿眼中的前后端分離以及Vue.js入門(mén)

Spring Boot + Vue 前后端分離,兩種文件上傳方式總結(jié)!

Spring Boot + Vue 前后端分離開(kāi)發(fā),前端網(wǎng)絡(luò)請(qǐng)求封裝與配置

Spring Boot + Vue 前后端分離開(kāi)發(fā),權(quán)限管理的一點(diǎn)思路

再推薦兩個(gè)入門(mén)項(xiàng)目:

微人事

V部落

好了,本文就說(shuō)到這里,有問(wèn)題歡迎留言討論。

關(guān)注公眾號(hào)【江南一點(diǎn)雨】,專(zhuān)注于 Spring Boot+微服務(wù)以及前后端分離等全棧技術(shù),定期視頻教程分享,關(guān)注后回復(fù) Java ,領(lǐng)取松哥為你精心準(zhǔn)備的 Java 干貨!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/75081.html

相關(guān)文章

  • 4月8日云棲精選夜讀 | 阿里云、螞蟻區(qū)塊鏈醫(yī)療解決方案首次應(yīng)用于未來(lái)醫(yī)院電子處方

    摘要:點(diǎn)擊訂閱云棲夜讀周刊月日,首屆世界大健康博覽會(huì)舉行期間,阿里云宣布其聯(lián)合支付寶共同研發(fā)的區(qū)塊鏈醫(yī)療解決方案已經(jīng)正式應(yīng)用于武漢中心醫(yī)院的電子處方,武漢市中心醫(yī)院也成為首家應(yīng)用該技術(shù)方案的未來(lái)醫(yī)院?!军c(diǎn)擊訂閱云棲夜讀周刊】 4月8日,首屆世界大健康博覽會(huì)舉行期間,阿里云宣布其聯(lián)合支付寶共同研發(fā)的區(qū)塊鏈醫(yī)療解決方案已經(jīng)正式應(yīng)用于武漢中心醫(yī)院的電子處方,武漢市中心醫(yī)院也成為首家應(yīng)用該技術(shù)方案的未來(lái)...

    cheng10 評(píng)論0 收藏0
  • 《從零構(gòu)建前后分離web項(xiàng)目》:開(kāi)篇 - 縱觀WEB歷史演變

    摘要:更詳細(xì)的內(nèi)容下一章開(kāi)篇深入聊聊前后分離講述關(guān)于我目前在寫(xiě)從零構(gòu)建前后分離項(xiàng)目系列,修正和補(bǔ)充以此為準(zhǔn)不斷更新的項(xiàng)目實(shí)踐地址彩蛋提前預(yù)覽下一章傳送門(mén) 開(kāi)篇 : 縱觀WEB歷史演變 在校學(xué)習(xí)和幾年工作工作中不知不覺(jué)經(jīng)歷了一半的 WEB 歷史演變、對(duì)近幾年的發(fā)展比較了解,結(jié)合經(jīng)驗(yàn)聊聊 WEB 發(fā)展歷史。 演變不易,但也是必然,因?yàn)闉槿耸冀K要進(jìn)步。 WEB 的發(fā)展史 一、開(kāi)山鼻祖 - 石器時(shí)代...

    tracy 評(píng)論0 收藏0
  • 《從零構(gòu)建前后分離web項(xiàng)目》:開(kāi)篇 - 縱觀WEB歷史演變

    摘要:更詳細(xì)的內(nèi)容下一章開(kāi)篇深入聊聊前后分離講述關(guān)于我目前在寫(xiě)從零構(gòu)建前后分離項(xiàng)目系列,修正和補(bǔ)充以此為準(zhǔn)不斷更新的項(xiàng)目實(shí)踐地址彩蛋提前預(yù)覽下一章傳送門(mén) 開(kāi)篇 : 縱觀WEB歷史演變 在校學(xué)習(xí)和幾年工作工作中不知不覺(jué)經(jīng)歷了一半的 WEB 歷史演變、對(duì)近幾年的發(fā)展比較了解,結(jié)合經(jīng)驗(yàn)聊聊 WEB 發(fā)展歷史。 演變不易,但也是必然,因?yàn)闉槿耸冀K要進(jìn)步。 WEB 的發(fā)展史 一、開(kāi)山鼻祖 - 石器時(shí)代...

    songjz 評(píng)論0 收藏0
  • [轉(zhuǎn)] 再論 java 中的 final 變量

    摘要:的內(nèi)存分配方式修飾變量通常情況下,變量有個(gè)地方可以賦值直接賦值,構(gòu)造函數(shù)中,或是初始化塊中。如就是對(duì)于變量,在聲明時(shí),如果你沒(méi)有賦值,系統(tǒng)默認(rèn)這是一個(gè)空白域,在構(gòu)造函數(shù)進(jìn)行初始化,如果是靜態(tài)的,則可以在初始化塊。 【java中為什么會(huì)有final變量】: final這個(gè)關(guān)鍵字的含義是這是無(wú)法改變的或者終態(tài)的; 那么為什么要阻止改變呢? java語(yǔ)言的發(fā)明者可能由于兩個(gè)目的而阻止改變: ...

    soasme 評(píng)論0 收藏0
  • Node中間層實(shí)踐(一)——基于NodeJS的全棧式開(kāi)發(fā)

    摘要:總結(jié)我覺(jué)得,以后基于的全棧式開(kāi)發(fā)的模式將會(huì)越來(lái)越流行,這也會(huì)引領(lǐng)前端步入工程化時(shí)代。歡迎繼續(xù)關(guān)注本博的更新中間層實(shí)踐一基于的全棧式開(kāi)發(fā)中間層實(shí)踐二搭建項(xiàng)目框架中間層實(shí)踐三配置中間層實(shí)踐四模板引擎中間層實(shí)踐五中間層的邏輯處理 版權(quán)聲明:更多文章請(qǐng)?jiān)L問(wèn)我的個(gè)人站Keyon Y,轉(zhuǎn)載請(qǐng)注明出處。 前言 近期公司有個(gè)新項(xiàng)目,由于后端人手不足,我果斷的提議用node中間層的方案,得到了老大的支持...

    warkiz 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<