Android程式設計師為什麼要去學Java後臺
作為一個原生Android開發,一路走來經歷了
Java 、 Kotlin
的洗禮;在“原生要涼”的氛圍下學習Cordova
、ReactNative
、Weex
、Flutter
等跨平臺框架;之後又在“大前端”的口號下延伸到React
、Vue
等前端框架的學習;最終面對“全棧”的誘惑,又擼起了SpringBoot
的 Java web 開發。
Android 開發作為“安身立命”的資本,在面對如今“移動要涼”的氛圍,我們在沉住氣“縱向進修”的同時,有時也希望橫向擴充自身的能力,而 Android 開發在這一方面有著先天的優勢,Java 和良好的開放氛圍給予了我們更多可能。
本文主要講述本人在 Java Web 開發上的學習選擇,希望能在一定某些方面幫到大家,這裡也並不是安利轉型,“全棧”並不是一個絕對的褒義詞,每個人都對“全棧”的範疇有著不一樣的定義。但是瞭解過後,至少能在需求上和“後臺”發生爭執時懟得更有力不是?
一、背景
瞭解下有利於消化
這裡快速說下 Java Web 開發的背景,作為Android開發,在學習後臺開發上無疑用 Java 做敲門磚是成本較低的選擇,Java Web 與 Android 之間的相互轉崗也屢見不鮮。
起初的 Java Web 開發並沒有明確的前後端之分,如今也依舊存在前後端不分離的專案,只是隨著時間發展,從專案管理維護、開發職責和效率的考慮下,慢慢的有了前後端職責之分。
對於Android開發而言,後端通俗而言就是寫restful介面的。
Java Web 大致發展歷程如下圖,從 Struts2
開始的 MVC 模式,再到 Spring
的控制反轉(IOC)和切面程式設計(AOP),再到 SpringBoot 全家桶,其門檻也在逐步降低。對於這個歷程感興趣的可以自行了解下,後續主要推崇Spring
大家庭。
事實上對於 Android 開發而言, Spring
並不會是一個陌生的概念,其核心理念之一 IOC (也稱依賴注入) 和使用邏輯與 Dagger
如出一轍,所以在入門時《Spring實戰(第4版)》這本書相信會 Android 開發者是不錯的選擇。
二、框架選擇
Spring Boot 全家桶快到碗裡來
Java Web 的世界同 Android 一樣存在各類框架,也許一些前輩們都建議不要從學習框架開始,但是我個人而言更習慣從實用性切入:選擇一個主流框架學習,挑一個開源專案對照實踐,之後完成一個小專案躺坑,最後才開始深入去學習感興趣的點。畢竟萬事開頭難,如果一開始太過枯燥,難免讓人“把持不住”。
在 Spring 斷斷續續的學習中,主要接觸了 SSH
(曾經) 和 SSM
(如今) 兩種組合開發框架,至於怎麼選擇,你懂的。
- SSH:Struts2 做控制器(controller) + Spring 管理元件 + Hibernate 負責資料庫。
- SSM: SpringMVC 做控制器(controller) + Spring 管理元件 + MyBatis 負責資料庫。
作為 Android 開發者,如果你使用過或瞭解過 Dagger ,那麼理解和使用 Spring
並不難。通過各類註解如 @Contorller
、@Service
、@Configuration
等去標明類的用途,通過 @Autowired
去注入使用的方式,相信會讓你倍感親切。
如果說 Spring
是類似 Dagger
的注入和管理實體的容器框架,那麼SpringMVC
就是基於 Spring
功能之上新增的 Web 框架。
對於 Android 開發而言,MVC
肯定是不會陌生的,實際上後臺開發人員通常就是寫個Controller
提供個 Model
給你。而 Hibernate
和 MyBatis
都是持久層框架,屬於能方便使用如 MySql 等資料庫的 ORM 框架。
如果說 Spring
和 SpringMVC
是 Android 開發者較友好的選擇,那麼 Spring Boot
則是你的“綠色通道”。 Spring Boot
又稱之為全家桶,因為它集齊了各類常用的開發框架,同時降低了 Spring 開發的門檻,更是簡化了各種配置過程,而且 Jetbrains 大家庭支援它!
所以現階段而言,個人認為 Spring
、SpringMVC
、SpringBoot
是 Android 開發者學習入門 Java Web 的不錯選擇。
先理解 Spring 設計模式,再學習 SpringMVC Service/Controller 等的開發,最後使用 SpringBoot 快速搭建 Web 專案。 當前這只是一個開始,後續的路諸如還有:
- 資料庫的學習:mysql、mongodb
- 持久層框架的學習:hibernate 、mybatis
- 快取框架的學習:ehcache、redis
- 安全許可權框架的學習:shiro、spring security
- 分散式框架的學習:dubbo、spring cloud
- 代理服務:Nginx
畢竟學無止境,有一技旁身,至少不至於孤陋寡聞。
三、開發工具選擇
“不用IDE,文字編輯器”一直是大神的標配,但是“懶惰”使我進步,所以一款好的 IDE 可以讓人更舒服的過度到入門。
Android 開發在 IDE 在選擇上其實也很有優勢,因為 Android Studio 本來就是基於 Jetbrains 的 IDEA Commutity Edition 二次開發的。
都是一家子,選擇 Jetbrains 全家桶中的 IntelliJ IDEA 作為開發工具,對於 Android 開發者而言,從快捷鍵、介面UI、除錯方式等都可以實現“無縫切換”和降低了學習成本。至於 eclipse 麼,反正它已經沒有出現在我視野中很久很久很久。
同時,IntelliJ IDEA 對於 SpringBoot 和 Maven 的支援也同樣優秀哦。
四、結語
本人在學習新的東西時,也經常面臨一些選擇的問題,特別是在想學 Web 服務開發時,經歷多年的發展後臺服務生態百花齊放:php、java、golang、phython、nodejs 等容易讓人在臨門一腳時猶豫不決。
除開業務需求和環境限制,我個人是比較推崇低成本擴充的。萬事開頭難,“三過門而不入”的堅持並不是每個人都有,而能把現階段所掌握的去衍生去其他的能力,是比較穩定的技術增值。“貪多嚼不爛”,先有深度,再有寬度,望共勉!
本文或許不是什麼乾貨,更多是提供 Android 開發者,在學習 web 開發時的一種選擇建議。有備無患,畢竟不知道何時就用上了。
五.附錄
Android高階技術大綱,以及系統進階視訊;
附錄一;Android高階技術大綱
附錄二;Android進階系統資料視訊
獲取方式;
加Android進階群;701740775。即可前往免費領取。免費備註一下csdn
相關文章
- Android程式設計師的Java後臺學習建議Android程式設計師Java
- 好程式設計師Java培訓分享Java有什麼優勢 為什麼學的人多程式設計師Java
- 好程式設計師Java培訓分享學Java程式設計要注意什麼程式設計師Java
- 為什麼程式設計師一定要學Linux程式設計師Linux
- 女程式設計師,為什麼比男程式設計師少???程式設計師
- 好程式設計師Java分享為什麼要使用Docker程式設計師JavaDocker
- 為什麼程式設計師在學習程式設計的時候什麼都記不住?程式設計師
- 程式設計師,為什麼如此迷茫?程式設計師
- 為什麼說 Java 程式設計師必須掌握 Spring Boot ?Java程式設計師Spring Boot
- 程式設計師你為什麼這麼累?程式設計師
- Java 程式設計師每天都在做什麼?Java程式設計師
- 【1024程式設計師節】程式設計師,你學程式設計的初衷是什麼?程式設計師
- 1024為什麼是程式設計師日程式設計師
- 為什麼大資料工程師比Java程式設計師工資高大資料工程師Java程式設計師
- 好程式設計師Java培訓分享學Java需要什麼基礎?程式設計師Java
- 【Java併發程式設計】一、為什麼需要學習併發程式設計?Java程式設計
- 好程式設計師:web前端解答為什麼要學JavaScript程式設計師Web前端JavaScript
- 為什麼Python程式設計師需要學習Linux系統?Python程式設計師Linux
- 好程式設計師Java學習路線分享java為什麼不支援泛型陣列程式設計師Java泛型陣列
- Java程式設計師修煉之路(一)我們為什麼選擇JavaJava程式設計師
- 為什麼要成為「無敵」程式設計師?程式設計師
- 為什麼成為一名程式設計師?程式設計師
- 程式設計師程式設計入門一定知道!程式設計師需要學什麼?程式設計師
- 【1024程式設計師節】為什麼有些程式設計師下班比你早?程式設計師
- Java程式設計師工資為什麼這麼高?想要入門Java怎麼辦?Java程式設計師
- 為什麼你學不好程式設計程式設計
- 好程式設計師Java學習路線分享maven是什麼程式設計師JavaMaven
- java程式設計師入門先學什麼開發者工具Java程式設計師
- 好程式設計師Java學習路線Java bean是個什麼概念程式設計師JavaBean
- 中國程式設計師為什麼要跳槽?程式設計師
- 程式設計師為什麼千萬不要瞎努力?程式設計師
- 程式設計師為什麼要持續學習(升級版)程式設計師
- 程式設計師壓力那麼大,為什麼還要選擇做程式設計師程式設計師
- Java程式設計師須知:分散式微服務為什麼很難?Java程式設計師分散式微服務
- 為什麼大批的JAVA程式設計師都是在轉大資料Java程式設計師大資料
- 你為什麼成為一名程式設計師?程式設計師
- 為什麼程式設計師千萬不要重寫程式碼?程式設計師
- 95後為什麼想當程式設計師?難道只是因為掙錢多?程式設計師