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总结

相关文章
相关标签/搜索