北京pk10精准杀号 北京赛车定位胆技巧 北京赛车投资技巧 北京pk10技巧规律9码 北京pk10开奖视频直播 pk10冠亚和值小是多少 北京赛车pk官网走势图 pk10冠亚和小1.96网站 北京赛车官方投注规则 北京赛车系统苹果手机版下载 北京pk10彩票平台漏洞 互联网北京pk10微信群 北京赛车pk10五码计划 北京pk10冠军计算一码 北京赛车可以玩吗
  • Android程序员的Java后台学习建议

    发布:51Code 时间: 2019-01-21 10:45

  • 作为一个原生Android开发,一路走来经历了Java 、 Kotlin的洗礼;在*原生要凉的氛围下学习Cordova、ReactNative、Weex、Flutter 等跨平台框架;之后又在大前端的口号下延伸到React、Vue 等前端框...

  • 作为一个原生Android开发,一路走来经历了Java 、 Kotlin的洗礼;在*“原生要凉”的氛围下学习Cordova、ReactNative、Weex、Flutter 等跨平台框架;之后又在“大前端”的口号下延伸到React、Vue 等前端框架的学习;最终面对“全栈”*的?#26632;螅?#21448;撸起了 SpringBoot的 Java web 开发。 具体可见 Android 程序员的 2018总结

    Android 开发作为“安身立命”的?#26102;荊?#22312;面对如今“移动要凉”的氛围,我们在沉住气 “纵向进修” 的同时,有时也希望 横向拓展 自身的能力,而 Android 开发在这一方面有着先天的优势,Java 和良好的开放氛围给予了我们更多可能。

    本文主要讲述本人在 Java Web 开发上的学习选择,希望能在一定某些方面帮到大家,这里也并不?#21069;?#21033;转型,“全栈”并不是一个绝对的褒义词,每个人都对“全栈”的范畴有着不一样的定义。但是了解过后, 至少能在需求上和“后台”发生争执时怼得更有力不是?

    一、背景

    了解下有利于消化

    这里快速说下 Java Web 开发的背景,作为Android开发,在学习后台开发上无疑用 Java 做敲门砖是成本较低的选择,Java Web 与 Android 之间的相互转岗也屡见不鲜。

    起初的 Java Web 开发并没有明确的前后端之分,如今也依旧存在前后端不分离的项目,只是随着时间发展,从项目管理维护、开发职责和效率的考虑下,慢慢的有了前后端职责之分。

    对于Android开发而言,后端通俗而言就是写restful接口的。

    Java Web 大致发展历程如下图,从 Struts2 开始的 MVC 模式,再到 Spring的 控制反转(IOC)和切面编程(AOP) ,再到 SpringBoot 全家桶,其门槛也在逐步降低。对于这个历程感兴趣的可以自行了解下,后续主要推崇Spring 大家庭。

    ?#29575;?#19978;对于 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 开发?#25784;?#22914;果你使用过或了解过 Dagger ,?#25970;?#29702;解和使用 Spring 并不?#36873;?#36890;过各类注解如 @Contorller、@Service、@Configuration 等去标明类的用途,通过 @Autowired 去注入使用的方式,相信会让你倍感亲切。

    如果说 Spring 是类似 Dagger 的注入和管理实体的容器框架,?#25970;碨pringMVC 就是基于 Spring 功能之上添加的 Web 框架。

    对于 Android 开发而言,MVC 肯定是不会陌生的,实际上后台开发人员通常就是写个Controller 提供个 Model 给你。而 Hibernate 和  MyBatis 都是持久层框架,属于能方便使用如 MySql 等数据库的 ORM 框架。

    如果说  Spring 和 SpringMVC 是 Android 开发者较友好的选择,?#25970;?Spring Boot  则是你的“?#36538;?#36890;道”。 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

    毕竟学无止?#24120;?#26377;一技旁身,至少不至于孤陋寡闻。

    三、开发工具选择

    “不用IDE,文本编辑器”  一直是大神的标配,但是“懒惰”使我进步,所以一款好的 IDE 可以让人更舒服的过度到入门。

    Android 开发在 IDE 在选择上其实也很有优势,因为 Android Studio 本来就是基于 Jetbrains  的 IDEA Commutity Edition 二次开发的。

    都是一家子,选择 Jetbrains 全家桶中的 IntelliJ IDEA 作为开发工?#25784;?#23545;于 Android 开发者而言,从快捷键、界面UI、调试方式等都可以实现“无缝切换”和降低了学习成本。至于 eclipse 么,反正它已经没有出现在我视野中很久很久很久。

    同时,IntelliJ IDEA 对于 SpringBoot 和 Maven 的支持也同样优秀哦

    四、最后

    本人在学习新的东西时,也经常面临一些选择的问题,特别是在想学 Web 服务开发时,经历多年的发展后台服务生态百花齐放:php、java、golang、phython、nodejs 等容易让人在临门一脚时犹豫不决。(毕竟 php 天下第一)

    除开业务需求和环境限制,我个人是比较推崇低成本拓展的。 万事开头难,“三过门而不入”的坚持并不是每个人都有,而能把现阶段所掌握的去衍生去其他的能力,是比较稳定的?#38469;?#22686;值。“贪多嚼不烂”,先有深度,再有宽度,望共勉!

    本文或许不是什么干货,更多是提供 Android 开发?#25784;?#22312;学习 web 开发时的一种选择建议。 有备无患,毕竟不知道何时就用上了。
     

    文章来源?#21644;?#32476;
    上文内容不用于商?#30340;?#30340;,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8103),我们将立即处?#24636;?/span>

  • 上一篇:身处小公司如何在2年内快速突破拿到大厂offer

    下一篇:Android开发中的面向切面编程AOP

网站导航
Copyright(C)51Code软件开发网 2003-2019 , 沪ICP备05003035号-6
pk10直播视频直播
北京pk10精准杀号 北京赛车定位胆技巧 北京赛车投资技巧 北京pk10技巧规律9码 北京pk10开奖视频直播 pk10冠亚和值小是多少 北京赛车pk官网走势图 pk10冠亚和小1.96网站 北京赛车官方投注规则 北京赛车系统苹果手机版下载 北京pk10彩票平台漏洞 互联网北京pk10微信群 北京赛车pk10五码计划 北京pk10冠军计算一码 北京赛车可以玩吗