Java开发八年来总结的知识脑图,以及我的进阶线路规划。

  1. 云栖社区>
  2. 博客>
  3. 正文

Java开发八年来总结的知识脑图,以及我的进阶线路规划。

欧阳愠斐 2018-10-24 13:40:57 浏览732
展开阅读全文

学习一个新的技术时,其实不在于跟着某个教程敲出了几行、几百行代码,这样你最多只能知其然而不知其所以然,进步缓慢且深度有限,最重要的是一开始就对整个学习路线有宏观、简洁的认识,确定大的学习方向,这样才能事半功倍。

我们经常会遇到这样的情况:一开始学习一门新技术的时候,面对着很多很多陌生的名词,无从下手,一度想要放弃。本文首先会给出关于java后台开发的一些建议学习路线,接着简单解释一些应用到的高频技术,帮助大家理解和学习。

2.Java后台开发知识一览

1、后端

WEB服务器:Weblogic、Tomcat、WebSphere、JBoss、Jetty

核心框架:Spring Framework

分布式服务框架Dubbo

安全框架:Apache Shiro

视图框架:Spring MVC

服务端验证:Hibernate + Validator

布局框架:SiteMesh

工作流引擎:Activiti

任务调度:Spring Task + Quartz

持久层框架:MyBatis + MyBatis-Plus

数据库连接池:Alibaba Druid

缓存框架:Ehcache 、Redis

日志管理:SLF4J 、Log4j

会话管理:Spring-Session

工具类:Apache Commons、Jackson 、Xstream、Dozer 、POI

消息队列:ActiveMQ

云存储:阿里云 OSS 腾讯云 COS 七牛云

版本管理: git(推荐)svn

2.高频技术(可大致浏览,作为目录查看)

Spring

每个模块的功能如下:

核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是BeanFactory,它是工厂模式的实现。

Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。

Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。

Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理。

Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。

Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。

Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。

 

RESTful风格

** Mybatis**

MyBatis

是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

Hibernate

Redis

Redis

是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。特点:

1.Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

2.Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

3.Redis支持数据的备份,即master-slave模式的数据备份。

 

Zookeeper

Zookeeper 分布式服务框架是 Apache

    Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等等。

 

DUBBO

DUBBO

是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

一到五年经验,应该怎么走,学习方向路线是什么,需要掌握什么技术呢?请看下方:

阅读源码

程序员每天都和代码打交道。经过数年的基础教育和职业培训,大部分程序员都会「写」代码,或者至少会抄代码和改代码。但是,会读代码的并不在多数,会读代码又真正读懂一些大项目的源码的,少之又少。这也造成了很多错误看源码的方式。

那要如何正确的分析源码呢?

分布式架构

随着我们的业务量越来越大和越重要,单体的架构模式已经无法对应大规模的应用场景,而且系统中决不能存在单点故障导致整体不可用,所以只有垂直或是水平拆分业务系统,使其形成一个分布式的架构,利用分布式架构来冗余系统消除单点的故障,从而提高整个系统的可用性。同时分布式系统的模块重用度更高,速度更快,扩展性更高是大型的项目必不可少的环节。

微服务

关于微服务架构的取舍

1、在合适的项目,合适的团队,采用微服务架构收益会大于成本。

2、微服务架构有很多吸引人的地方,但在拥抱微服务之前,也需要认清它所带来的挑战。

3、需要避免为了“微服务”而“微服务”。

4、微服务架构引入策略 – 对传统企业而言,开始时可以考虑引入部分合适的微服务架构原则对已有系统进行改造或新建微服务应用,逐步探索及积累微服务架构经验,而非全盘实施微服务架构。

性能优化

我们不仅仅对项目要运筹帷幄,还要能解决一切性能问题。只有深入学习JVM底层原理,Mysql底层优化以及Tomcat调优,才能达到知其然,知其所以然的效果。除了性能优化之外,也能提供通用的常见思路以及方案选型的考虑点,帮助大家培养在方案选型时的意识、思维以及做各种权衡的能力。

并发编程

主要培养编程者深入了解最底层的运作原理,加强编程者逻辑思维,这样才能写出高效、安全、可靠的多线程并发程序。

下方还有架构师精讲的2018架构资料。获取思维脑图和架构资料方式:

加群:878249276,即可获取!

 

加群:878249276,即可获取!

网友评论

登录后评论
0/500
评论
欧阳愠斐
+ 关注