溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java后端程序員需要做什么

發(fā)布時(shí)間:2022-02-23 10:18:04 來源:億速云 閱讀:147 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了Java后端程序員需要做什么,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

1. 前后端的分離

隨著大家對(duì)瀏覽器頁面的視覺和交互要求越來越高,“套模板”的方式漸漸無法滿足要求,這個(gè)所謂的表示層慢慢地遷移到瀏覽器當(dāng)中去了,一大批像 Angular, ReactJS 之類的框架崛起,前后端分離了!

后端的工程師只負(fù)責(zé)提供接口和數(shù)據(jù),專注于業(yè)務(wù)邏輯的實(shí)現(xiàn),前端取到數(shù)據(jù)后在瀏覽器中展示,各司其職。

像 Java 這樣的語言很適合去實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)邏輯,尤其是一些 MIS 系統(tǒng),行業(yè)軟件如稅務(wù)、電力、煙草、金融,通信等等。  所以剝離表示層,只做后端挺合適的。 

但是如果僅僅是實(shí)現(xiàn)業(yè)務(wù)邏輯,那后端也不會(huì)需要這么多技術(shù)了,搞定 SSH/SSM 就行了。 

2. 后端技術(shù)

互聯(lián)網(wǎng),尤其是移動(dòng)互聯(lián)網(wǎng)開始興起以后,海量的用戶呼嘯而來,一個(gè)單機(jī)部署的小小 War 包肯定是撐不住了,必須得做分布式。 

原來的單個(gè) Tomcat 得變成 Tomcat 的集群,前邊弄個(gè) Web 服務(wù)器做請(qǐng)求的負(fù)載均衡,不僅如此,還得考慮狀態(tài)問題,session 的一致性。

業(yè)務(wù)越來越復(fù)雜,我們不得不把某些業(yè)務(wù)放到一個(gè)機(jī)器(或集群)上,把另外一部分業(yè)務(wù)放到另外一個(gè)機(jī)器(或集群)上,雖然系統(tǒng)的計(jì)算能力,處理能力大大增強(qiáng),但是這些系統(tǒng)之間的通信就變成了頭疼的問題,消息隊(duì)列(MQ),RPC框架(如Dubbo)應(yīng)運(yùn)而生,為了提高通信效率,各種序列化的工具(如Protobuf)也爭(zhēng)先空后地問世。

單個(gè)數(shù)據(jù)庫也撐不住了,那就做數(shù)據(jù)庫的讀寫分離,如果還不行,就做分庫和分表,把原有的數(shù)據(jù)庫垂直地切一切,或者水平地切一切, 但不管怎么切,都會(huì)讓應(yīng)用程序的訪問非常麻煩,因?yàn)閿?shù)據(jù)要跨庫做 Join/ 排序,還需要事務(wù),為了解決這個(gè)問題,又有各種各樣“數(shù)據(jù)訪問中間件”的工具和產(chǎn)品誕生。

為了最大程度地提高性能,緩存肯定少不了,可以在本機(jī)做緩存(如Ehcache),也可以做分布式緩存(如Redis),如何搞數(shù)據(jù)分片,數(shù)據(jù)遷移,失效轉(zhuǎn)移,這又是一個(gè)超級(jí)大的主題了。

互聯(lián)網(wǎng)用戶喜歡上傳圖片和文件,還得搞一個(gè)分布式的文件系統(tǒng)(如FastDFS),要求高可用,高可靠。

數(shù)據(jù)量大了,搜索的需求就自然而然地浮出水面,你得弄一個(gè)支持全文索引的搜索引擎(如Elasticsearch ,Solr)出來。

林子大了,什么鳥都有,必須得考慮安全,數(shù)據(jù)的加密/解密,簽名、證書,防止 SQL 注入,XSS/CSRF 等各種攻擊。

3. “大后端”

前面提到了這么多的系統(tǒng),還都是分布式的,每次上線,運(yùn)維的同學(xué)說:把這么多系統(tǒng)協(xié)調(diào)好,把老子都累死了。

得把持續(xù)集成做好,能自動(dòng)化地部署,自動(dòng)化測(cè)試(其實(shí)前端也是如此),后來出現(xiàn)了一個(gè)革命化的技術(shù) docker, 能夠讓開發(fā)、測(cè)試、生成環(huán)境保持一致,系統(tǒng)原來只是在環(huán)境(如Ngnix, JVM,Tomcat,MySQL等)上部署代碼,現(xiàn)在把代碼和環(huán)境一并打包, 運(yùn)維的工作一下子就簡(jiǎn)化了。

公司自己購買服務(wù)器比較貴,維護(hù)也很麻煩,又難于彈性地增長,那就搞點(diǎn)虛擬的服務(wù)器吧,硬盤、內(nèi)存都可以動(dòng)態(tài)擴(kuò)展(反正是虛擬的), 訪問量大的時(shí)候多用點(diǎn),沒啥訪問量了就釋放一點(diǎn),按需分配,很方便,這就是云計(jì)算的一個(gè)場(chǎng)景。

隨著時(shí)間的推移,各個(gè)公司和系統(tǒng)收集的數(shù)據(jù)越來越多,都堆成一座大山了,難道就放在那里白白地浪費(fèi)硬盤空間嗎?

有人就驚奇地發(fā)現(xiàn),咦,我們利用這些數(shù)據(jù)搞點(diǎn)事情啊, 比如把數(shù)據(jù)好好分析一下,預(yù)測(cè)一下這個(gè)用戶的購買/閱讀/瀏覽習(xí)慣,給他推薦一點(diǎn)東西嘛。

可是這么多數(shù)據(jù),用傳統(tǒng)的方式計(jì)算好幾天甚至好幾個(gè)月才能出個(gè)結(jié)果,到時(shí)候黃花菜都涼了,所以也得利用分布式的技術(shù),想辦法把計(jì)算分到各個(gè)計(jì)算機(jī)去,然后再把計(jì)算結(jié)果收回來, 時(shí)勢(shì)造英雄,Hadoop 及其生態(tài)系統(tǒng)就應(yīng)運(yùn)而生了。

之前聽說過一個(gè)大前端的概念,把移動(dòng)端和網(wǎng)頁端都?xì)w結(jié)為“前端”,我這里造個(gè)詞“大后端”,把那些用戶直接接觸不到的、發(fā)生在服務(wù)器端的都?xì)w結(jié)進(jìn)來。

4. 怎么學(xué)?

現(xiàn)在無論是前端還是后端,技術(shù)領(lǐng)域多如牛毛,都嚴(yán)重地細(xì)分了,所以我認(rèn)為真正的全棧工程師根本不存在,因?yàn)橐粋€(gè)人精力有限,不可能搞定這么多技術(shù)領(lǐng)域,太難了。

培訓(xùn)機(jī)構(gòu)所說的“全棧”,我認(rèn)為就是前后端還在拉拉扯扯,藕斷絲連,沒有徹底分離的時(shí)候的“全?!惫こ處?。

那么問題來了, 后端這么多東西,我該怎么學(xué)?

往深度挖掘,可以成為某個(gè)技術(shù)領(lǐng)域的專家,如搜索方面的專家、安全方面的專家,分布式文件的專家等等,不管是哪個(gè)領(lǐng)域,重點(diǎn)都不是學(xué)會(huì)使用某個(gè)工具和框架, 而是保證你可以自己的知識(shí)和技術(shù)去搞定這個(gè)領(lǐng)域的頂尖問題。

往廣度發(fā)展,各個(gè)技術(shù)領(lǐng)域都要了解,對(duì)于某種需求,能夠選取合適的軟件和技術(shù)架構(gòu)來實(shí)現(xiàn)它,把需求轉(zhuǎn)化成合適的技術(shù)組件,讓這些組件以合適的方式連接、部署、運(yùn)行,這也需要持續(xù)地學(xué)習(xí)和不斷的經(jīng)驗(yàn)積累。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Java后端程序員需要做什么”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI