『壹』 後端開發都需要那些技術
後端主要是讓伺服器、應用、資料庫能夠彼此交互,需要考慮如何實現功能、數據的存取、平台的穩定性與性能等。常用的腳本語言有php、 java 、 python、C、C++等,以java為例主要用到的技術包括但不限於Struts、spring、springmvc 、Hibernate、Http協議、Servlet、Tomcat伺服器等
第一,Servlet技術。Servlet技術是Java後端的重要技術之一,作為Java Web開發的核心組件,Servlet承擔了Web MVC結構中的核心作用(功能導航)。傳統的Model2結構(Servlet+JavaBean+JSP)雖然在目前已經很少使用了,但是Web開發的基本結構依然沒有改變。Servlet技術的應用涉及到Web容器、會話(HttpSession)、安全、同步、Web應用部署等相關內容。
第二,Java操作資料庫。後端開發免不了與資料庫打交道,所以掌握Java的資料庫操作是一個基本要求。Java操作資料庫涉及到的內容有JDBC、JNDI、RMI、DAO等內容,其中使用RMI+JDBC是構建java資料庫開發的一個常見的解決方案,而JNDI則是對各種資源的定義。
第三,Spring框架。Spring+SpringMVC+MyBatis是目前一個比較常見的後端開發方案,Spring的原理就是構建了一個「業務組件容器」,SpringMVC則是Web MVC的一個具體實現框架,而MyBatis則是一個基於DAO的實現框架。從性能的角度來說,Spring是EJB的輕量級解決方案,得到了廣大Java程序員的歡迎。如果有Servlet以及資料庫操作的基礎,那麼學習這幾個框架的使用是一件非常輕松的過程。雖然基於Spring的編程比較方便,但是Spring也有缺點,比如配置文件過於繁瑣。
第四,結合hadoop構建Java的分布式開發。Java的分布式開發是提高Java後端處理能力的重要內容,RMI是Java分布式開發比較常見的解決方案,學習起來也比較簡單
『貳』 後端都要學習什麼
1、Java基礎語法:Java語法是就相當於英文中的26個字母,你需要將每個關鍵詞都學得很透徹,對於初學者來說,最困難的概念是基本結構,例如循環和分支。這部分沒有過多的技巧,多去做一些相關的練習題,熟能生巧。
2、面向對象編程(OOP):OOP嚴格意義上來說有兩個模塊,一是面向對象的思維,二是面向對象的編程語法。面向對象的思維這個理解起來有點難,因為我們在學Java的基礎語法時,習慣了用面向過程的思維去編程,轉變為面向對象時頭腦中會很混亂。
即使老師舉很多實例去解釋 依舊會產生很多困惑,碰到這種情況不要著急,面向對象的思維需要長期去培養,同基礎語法一樣,思維也需要大量的實踐去培養。
面向對象涉及到的語法主要有:類、繼承、介面、多態、封裝,這是Java編程中另一個重要的組成部分,可以說在工作中,無論用哪種框架,哪種編輯器,面向對象的編程都是重中之重。這個模塊也是在面試中的重點,所以一定要掌握扎實。
3、集合框架:Java為不同的集合提供了一個集合框架。集合基於數據結構,比如常見的:列表、數組、集合、哈希圖等等。因此,在研究集合時,最好了解一點數據結構的相關知識。
學習集合的主要困難在於他們之間的區別,以及何時用到適合的集合類型。同樣的,也是必須實踐出真知。
4、異常處理:異常是在執行程序時可能發生的異常情況。很多人在學習的過程中理解不了異常的作用,在初學的時候也有相同的疑問,編輯器已經有報錯的功能了,為什麼還要自己去編寫一段處理異常的代碼。後來隨著項目使用的異常處理越來越多,對異常處理也會有深刻的了解。
舉個簡單的例子:當你下載文件時,如出現什麼錯誤,用戶希望下載器能告訴他出現了什麼問題,比如硬碟不足等等,當用戶提供了足夠的硬碟空間以後,下載繼續自動進行。而不是說空間一不足,立刻下載器就崩潰,這就是異常技術。
5、輸入/輸出流:Java使用流來執行輸入和輸出的操作。在項目中,需要經常進行讀寫操作。對於初學者來說,這也是一個比較困難的知識點,而且在Java的學習過程中,這一點的重要性並不是很突出,導致很多人在工作後碰到文件的讀寫操作就乾瞪眼了。
6、Java多線程/並發:多線程和並發操作是Java高級編程的核心主題。這部分幾乎所有的同學都理解不了,不過沒有關系,這部分對於初級開發者來說不是很重要。
『叄』 後端工程師需要掌握哪些知識
1 後端開發語言
包括但不限於(php, python, java, scala, go, ruby) 之一。 能夠使用一門或者數門語言構造大型應用。
2 運維
了解 (ansible, salt, puppet)等自動化運維技術, 了解docker, 熟練掌握shell腳本處理線上問題
3 安全
知道各種安全攻擊方式(xss, csrf, sql注入) 代碼實現能夠規避常見的安全漏洞, 處理各種網路攻擊事件
4 資料庫
知道常見的資料庫的優化以及運維,能夠分析sql並且調優使之滿足性能
5 網路編程
了解linux的網路模型epoll, 熟練掌握http, tcp/ip協議,並且能夠通過抓包方式debug。 熟練掌握linux, 能夠在高兵法場景下通過優化內核解決問題。
6 大數據
了解 (hadoop/storn/spark)技術棧, 能夠使用大數據技術棧解決常見的大數據問題
7 演算法和數據結構
知道常規的演算法和數據結構,通過分析代碼能了解架構的計算復雜度和性能,並針對性做出優化
8 機器學習演算法
知道常見的機器學習演算法,能夠使用機器學習和深度學習解決一些人工智慧問題,比如聊天機器人, 反spam, 機器推薦等
9 搜索引擎
掌握elasticsearch solr等開源搜索引擎,能夠搭建搜索引擎實現各種搜索以及排序任務