Android程序員的Java後臺學習建議

做爲一個原生Android開發,一路走來經歷了Java 、 Kotlin的洗禮;在*「原生要涼」的氛圍下學習CordovaReactNativeWeexFlutter 等跨平臺框架;以後又在「大前端」的口號下延伸ReactVue 等前端框架的學習;最終面對「全棧」*的誘惑,又擼起了 SpringBoot的 Java web 開發。 具體可見 Android 程序員的 2018總結php

Android 開發做爲「安身立命」的資本,在面對現在「移動要涼」的氛圍,咱們在沉住氣 「縱向進修」 的同時,有時也但願 橫向拓展 自身的能力,而 Android 開發在這一方面有着先天的優點,Java 和良好的開放氛圍給予了咱們更多可能。前端

本文主要講述本人在 Java Web 開發上的學習選擇,但願能在必定某些方面幫到你們,這裏也並非安利轉型,「全棧」並非一個絕對的褒義詞,每一個人都對「全棧」的範疇有着不同的定義。可是瞭解事後, 至少能在需求上和「後臺」發生爭執時懟得更有力不是?🌹🐔java

趕忙進入主題吧

1、背景

瞭解下有利於消化node

這裏快速說下 Java Web 開發的背景,做爲Android開發,在學習後臺開發上無疑用 Java 作敲門磚是成本較低的選擇,Java Web 與 Android 之間的相互轉崗也家常便飯。mysql

起初的 Java Web 開發並無明確的先後端之分,現在也依舊存在先後端不分離的項目,只是隨着時間發展,從項目管理維護、開發職責和效率的考慮下,慢慢的有了先後端職責之分。程序員

對於Android開發而言,後端通俗而言就是寫restful接口的。golang

Java Web 大體發展歷程以下圖,從 Struts2 開始的 MVC 模式,再到 Spring控制反轉(IOC)和切面編程(AOP) ,再到 SpringBoot 全家桶,其門檻也在逐步下降。對於這個歷程感興趣的能夠自行了解下,後續主要推崇Spring 你們庭。web

發展歷程

事實上對於 Android 開發而言, Spring 並不會是一個陌生的概念,其 核心理念之一 IOC (也稱依賴注入) 和使用邏輯與 Dagger 一模一樣,因此在入門時 《Spring實戰(第4版)》 這本書相信會 Android 開發者是不錯的選擇。redis

2、框架選擇

Spring Boot 全家桶快到碗裏來spring

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 給你。而 HibernateMyBatis 都是持久層框架,屬於能方便使用如 MySql 等數據庫的 ORM 框架。

MVC

若是說 SpringSpringMVC 是 Android 開發者較友好的選擇,那麼 Spring Boot 則是你的「綠色通道」。 Spring Boot 又稱之爲全家桶,由於它集齊了各種經常使用的開發框架,同時下降了 Spring 開發的門檻,更是簡化了各類配置過程,並且 Jetbrains 你們庭支持它!

因此現階段而言,我的認爲 SpringSpringMVCSpringBoot 是 Android 開發者學習入門 Java Web 的不錯選擇。

先理解 Spring 設計模式,再學習 SpringMVC Service/Controller 等的開發,最後使用 SpringBoot 快速搭建 Web 項目。 當前這只是一個開始,後續的路諸如還有:

  • 數據庫的學習:mysql、mongodb
  • 持久層框架的學習:hibernate 、mybatis
  • 緩存框架的學習:ehcache、redis
  • 安全權限框架的學習:shiro、spring security
  • 分佈式框架的學習:dubbo、spring cloud
  • 代理服務:Nginx

畢竟學無止境,有一技旁身,至少不至於孤陋寡聞。

3、開發工具選擇

「不用IDE,文本編輯器」 一直是大神的標配,可是「懶惰」使我進步,因此一款好的 IDE 可讓人更舒服的過分到入門。

Android 開發在 IDE 在選擇上其實也頗有優點,由於 Android Studio 原本就是基於 Jetbrains 的 IDEA Commutity Edition 二次開發的。

都是一家子,選擇 Jetbrains 全家桶中的 IntelliJ IDEA 做爲開發工具,對於 Android 開發者而言,從快捷鍵、界面UI、調試方式等均可以實現「無縫切換」和下降了學習成本。至於 eclipse 麼,反正它已經沒有出如今我視野中好久好久好久。

同時,IntelliJ IDEA 對於 SpringBoot 和 Maven 的支持也一樣優秀哦。

全家桶之部分Show

4、最後

本人在學習新的東西時,也常常面臨一些選擇的問題,特別是在想學 Web 服務開發時,經歷多年的發展後臺服務生態百花齊放:php、java、golang、phython、nodejs 等容易讓人在臨門一腳時猶豫不決。(畢竟 php 天下第一)

除開業務需求和環境限制,我我的是比較推崇低成本拓展的。 萬事開頭難,「三過門而不入」的堅持並非每一個人都有,而能把現階段所掌握的去衍生去其餘的能力,是比較穩定的技術增值。「貪多嚼不爛」,先有深度,再有寬度,望共勉!

本文或許不是什麼乾貨,更可能是提供 Android 開發者,在學習 web 開發時的一種選擇建議。 有備無患,畢竟不知道什麼時候就用上了。

Android 程序員的 2018總結

相關文章
相關標籤/搜索