Java高级开发工程师课程大纲

程序员需要掌握的是一门技术,而并不只是一种编程语言

高洛峰

发布时间:2021-06-15

当前版本

  • 文件状态:
  • [    ] 草稿
  • [ √ ] 正式发布
  • [    ] 正在修改
文件标识:学习猿地-Java高级开发工程师-01
当前版本: V6.0
作       者: 高洛峰
完成日期: 2021-06-14

历史版本

版本/状态 作        者 参    与    者 起止日期 备        注
V4.0 高洛峰 孙健魁,徐枭雄
刘万涛、吴健
2019-01-05
2020-05-20
学习猿地-PHP开发工程师-01
学习猿地-Web前端开发工程师-01
学习猿地-Linux运维工程师-01
V5.0 高洛峰 孙健魁,徐枭雄
刘万涛、吴健
2020-05-20
2021-03-20
学习猿地-Web全栈工程师-01
V6.0 高洛峰 孙健魁,徐枭雄
刘万涛、吴健
2021-03-20
至今
学习猿地-Java高级开发工程师-01
版本/状态 起止日期 备        注
V5.0 2019-01-05
2020-05-20
学习猿地-PHP开发工程师-01
学习猿地-Web前端开发工程师-01
学习猿地-Linux运维工程师-01
V6.0 2020-05-20
至今
学习猿地-Web全栈工程师-01

学习目标

  • ☆ 掌握所有Java、数据库、前端、JavaEE开发的高级技能,积累大型项目的开发经验。
  • ☆ 通过Oracle、MySQL、MongoDB、Redis等数据库服务器的学习,熟悉维护、优化、安全设置的使用,精通SQL编写和数据库设计,掌握数据库端PL/SQL开发的能力。
  • ☆ 通过JavaScript、jQuery、BootStrap、Vue和H5/CSS3等技术的学习,可以承担前端工程师的工作、制作出精美的、用户体验度高的网页。
  • ☆ 通过SSM、SSH等框架技术的学习,可以提高开发效率和软件质量。
  • ☆ 通过SpringBoot、SpringCloud等集成框架的学习,可以快速搭建稳定性高、功能强的软件。
  • ☆ 通过Lucene/ ElasticSearch、Dubbo、Zookeeper、Kafka、Activiti等技术的学习,完全可以胜任当前各种互联网应用的开发。
  • ☆ 培养出具有职业素养和能力的、符合企业需求的Java开发工程师和架构师。
  • ☆ 使用Java常用互联网技术可以独立完成系统开发工作,对现有的成熟产品进行二次开发,团队合作完成大型项目的设计与开发,以及产品的测试与维护。
  • ☆ 通过企业项目和解决方案实战掌握目前企业一流技术和常见问题的解决方法。

学习方式

  • ✔ 采用“迭代式”学习方式, 前一阶段都是在为下一阶段做基础铺垫。学习步骤是先从面向过程的编程思想开始,再到面向对象的编程思想, 再到面向组件的编程思想, 再到面向架构的编程思想,最后再到企业实习。从编程思想和技术应用上,都能达到逐级提升。进阶式教学方法,不仅适合技术的成长,更适合编程思想的成长,是从小白到大牛的最有效的程序员成长方法。
  • ✔ 采用“全栈式”授课方法, 每个阶段学习的并只不是一种编程语言,而学习的是一门技术。所以每学完一个阶段都可以完成一个Java项目,包括前端页面、后端业务处理、数据库操作,以及服务器的管理与应用。
  • ✔ 采用“浸入式”学习方式,不仅有一个专门的企业实习阶段,浸入到项目中和总监一起开发商业项目, 而且在每一阶段的教学中也是以项目实战贯穿技术点的方式。 每个阶段都会先梳理项目需求,进行项目设计, 学习部分前端技术就为项目编写页面,学点数据库技术就为项目设计表和编写SQL语句,学习一部分后端技能就为项目编写业务逻辑和架构设计,每个阶段最后再整体对项目进行优化、升级、测试、上线和总结。

阶段一:夯实基础

掌握 JAVA 基本语法,常用工具类,集合 (List,Set,Map),IO 流,网络编程,多线程,注解反射等。学完这些内容,是我们作为后续高级课程学习的基础。一些控制台程序均可以独立完成。

模块 技术点 学习目标 实战/寓学于练
Java基础 JAVA环境搭建
JAVA基础语法
流程控制
数组
方法
熟悉Java环境的搭建;
掌握Java中八大数据类型定义变量;循环的使用情况;数组的定义及多维数组
按照项目原型完成:
1.搭建Java的运行环境
2.类的设计
3.数组的插入、删除
Java面向对象 面向对象基础
面向对象进阶
面向对象高级
内部类
异常
idea的安装与使用
掌握面向对象的三大特征;
内部类的具体实现;
异常的简单处理
按照项目需求完成:
1.类和对象(属性、方法及构造器)
2.类的封装
3.对象的聚集处理
多对象协同工作
API API基础
常用API
熟练使用JavaAPI JavaAPI中在项目中的具体使用和导包
算法 常用算法 掌握Java的基本算法使用 项目中的Java算法的实现
java核心类库 泛型
集合
数据结构
IO
多线程
lambda
网络编程
NIO
XML与JSON
枚举、注解与反射
掌握集合的使用,ArrayList及hashmap的底层原理,扩容机制;掌握IO流的具体操作流程,简单的文件读取及应用;掌握XML及解析;线程的生命周期,线程池的参数,lambda表达式的应用,NIO与IO的区别,json数据的传输,反射的应用及概念 按照项目原型完成:
1.数据库连接
2.连接池在项目中的使用
3.工具类的使用
4.DAO对象的封装
5.表的通用设计
单元测试 Junit4 掌握单元测试的使用 对项目进行单元测试
设计模式 设计模式 掌握Java中设计模式的具体代码实现 1.单例模式在项目中的使用
2.代理模式和工厂模式在项目中的使用

项目实战:快递智能存取系统

通过CMS系统的应用可达到对网页的内容分类排版、文章内容的发布、用户之间的文章管理与交流。根据内容管理系统(CMS)的特点,可以将其分为前台和后台两个应用,前台应用包括内容展示和个人中心两部分,而后台应用则分为平台操作管理、系统管理频道、内容管理频道和用户管理频道4个部分。

随着互联网和通信技术的高速发展,使电子商务迅速普及,网购成为人们购物的重要手段之一。据统计2019年双十一,11月11日~16日,受电商平台集中促销影响,业务量达全年高峰,6天内共处理邮(快)件23.09亿件。

疫情期间配送快递成了一件难事。疫情防控已经趋于常态化,很多小区出台了新的治安管理条例,开始禁止快递人员进入。这给民众收发快件造成了极大的不便,因进不去小区,快递人员只能在小区门口周边摆摊设点,也影响了小区周边环境。

除了快递,外卖也一样面临相同的问题。除了小区,写字楼、校园也面临着相同的问题。正是基于对疫情期间配送最后一公里深刻的认识,我们探索出一条解决之道,那就是社区快递e栈(类似快递柜)。

项目收获:

  • 1、锻炼动手能力
  • 2、融会贯通JavaWeb技术
  • 3、体验项目开发流程
  • 4、做出上线级别的微信端+JavaWeb后端项目
  • 5、为框架阶段打下前后端交互的基础

项目亮点:

  • 1、符合当下市场环境
  • 2、前后台独立开发
  • 3、使用云服务器部署项目
  • 4、手机端项目展示

阶段二:初识 JavaWeb

掌握 Mysql8.0 数据库操作,掌握前端技术 (html,css,javascript,jquery,bootStrap),掌握 JAVAWEB技术。其中包括网站开发流程,基于 MVC 架构实现 JSP+Servlet 的网站开发,具备小型网站开发能力 ,项目开发中的调试能力。

模块 技术点 学习目标 实战/寓学于练
数据库基础 数据库基础 掌握MySQL的服务器基本配置,可以为项目设计和创建表并会编写基本的sql语言,完成项目的业务需求。 按项目的需求:
1.完成项目的表设计。
2.创建项目需要的所有表。
3.编写项目中SQL语句。
数据库高级 数据库高级 掌握MySQL的语句及索引优化,主从复制,执行计划等 对项目中的编写的SQL语句进行优化处理
数据库事务 数据库事务 掌握MySQL的事物的基本要素;事物隔离级别;事物的并发 对项目中出现异常的语句进行事物回滚和最终一致的操作
数据库进阶 数据库进阶 掌握MySQL数据库在linux系统中的配置和使用 数据库架构
1.数据库脚本的版本化
2.MySQL集群架构
Oracle Oracle 掌握Oracle数据库的基本配置,及与MySQL的区别 Oracle数据库在项目中的简单使用
JDBC JDBC初级
JDBC高级
掌握JDBC连接池的使用和jdbc的工作原理 对数据库进行连接使用和其异常的解决
HTML5 HTML基本使用
HTML常用标签
HTML表单
h5表单新特性
CSS
CSS常用样式
盒子模型与布局
h5页面操作新特性
h5扩展
CSS3新特性
掌握HTML和CSS的基本应用,学会DIV+CSS页面布局可以完成PC端基本的页面编写;掌握H5和C3的新特性。 按项目原型设计:
1.完成前台所有页面开发。
2.完成后台所有所有应用页面编写。
3.支持手机购物和后台定单处理。
JS JS基础
JS高级
掌握js的基础插件,掌握js语言 应用JS插件完成页面中特效要求。
通过JS完成所有前端交互。
Jquery Jquery学习 可以使用DOM思想编写用户前端交互和特效 实现所有页面中的特效
移动端 移动端布局
flex布局
移动端适配
掌握移动端的布局及其简单开发 移动端微信小程序的开发
响应式布局 bootStrap 可以布局响应式页面,弹性布局和栅格布局 在项目中进行响应式布局的实现
版本控制工具 SVN
GIT
掌握SVN与Git的使用和安装,及其基础命令,冲突的解决 将项目提交到GitHub组中,并设置查看权限
服务器 Tomcat
Servlet
JSP
熟悉Tomcat的安装使用,掌握servlet的生命周期,用法及其工作原理;掌握jsp动态页面的使用及原理 1.将项目中的HTML静态页面,替换为jsp动态页面
2.jsp与后端servlet进行交互
WEB应用技术 Cookie
Filter+Listener
MVC
AJAX+JSON
文件操作
掌握cookie中的存值与取值,过滤器与监听器的具体实现,掌握MVC的工作模式,Ajax请求的步骤及原理,json数据的转换;掌握文件上传与下载的原理及其使用 按项目业务需求:
1.搭建MVC结构开发框架。
2.完成项目的业务处理。
3.完成文件上传与下载功能的实现

项目实战:三甲医院智慧医疗

随着科技的发展,人们生活水平的提高,很多工作都实现了"无纸化"办公。山东医院系统旨在解脱传统的医院服务,避免患者数据丢失,混乱,无法管理等问题,也可以减轻医生的工作量,专注于医疗。本系统实现了患者从入院挂号,到发药或住院,或手术,最后出院的整个环节。患者只需要提供身份证即可实现全程线上信息服务。

项目收获:

  • 1、掌握医院类项目的业务逻辑
  • 2、加强Spring,SpringMVC,MyBatis框架技术的实践
  • 3、增强团队协作能力

项目亮点:

  • 1、病人从挂号到入院,出院等全部环节,全部实现线上办理
  • 2、不同角色实现不同功能管理

阶段三:企业级框架

掌握公司部署环境 Linux, 企业级框架 Spring,SpringMVC,Mybatis,Springboot 框架。Redis,Nginx 提升项目,响应效率。学完本章课程,掌握基于企业级框架实现网站开发的技能。

模块 技术点 学习目标 实战/寓学于练
Maven Maven概述
Maven环境搭建
Maven高级
熟悉maven环境的搭建,maven构建项目及idea中maven的使用 maven构建项目
Linux Linux安装与应用
环境搭建
掌握linux的环境搭建及其安装,掌握linux中的常用命令和其远程连接工具 通过源码包搭建开发环境。
Nginx Nginx 掌握Nginx的负载均衡、动静分离、反向代理的原理和使用 配置管理Nginx的应用服务器。
Nosql Redis
MongoDB
掌握redis中的五大数据类型,redis中雪崩、穿透、击穿问题的解决,redis的两大持久化方案redis的事物及其分布式锁 在项目中应用Redis做缓存,并解决三大问题。
企业级框架 Mybatis
SpringMVC
SSM整合
SpringBoot
MyBatis-plus
掌握springMVC及mybatis的工作原理;SSM整合后的使用,springboot的启动类配置和编写,yaml文件的编写,掌握springboot的核心注解、自动配置原理,和多环境配置的实现 使用ssm框架进行项目的搭建和开发。

项目实战:共享云盘系统

在浏览一些网站时,对于好的网站我们会使用浏览器的收藏功能保存起来,但是这种保存会因为更换电脑或更换浏览器而丢失,本项目的云收藏功能和浏览器的收藏功能类似,不同点在于云收藏不会因为浏览器的不同而丢失内容,并且还可以和其他人分享收藏的网站,实现信息共享。

项目收获:

  • 1、掌握SpringBoot框架
  • 2、掌握Thymeleaf技术
  • 3、基于上述技术实现收藏网站开发

项目亮点:

  • 1、根据喜好收藏网站
  • 2、未读列表的网站30天后自动删除
  • 3、点赞,评论功能
  • 4、导入收藏夹

阶段四:微服务 + 分布式 + 架构思维

掌握微服务框架 SpringCloud, 基于 SpringCloud,结合 docker,ElasticSearch,RabbitMQ,VUE,Oauth2.0 等技术实现商城项目功能,掌握商城项目所需的技能。学完本章课程,具备了电商平台开发的专业技能,具备面试中要求的技能方向。

模块 技术点 学习目标 实战/寓学于练
微服务分布式 spring cloud
Docker
k8s
FastDFS
Swagger
RabbitMQ
mq
activeMQ
RocketMQ
zookeeper
Dubbo
掌握springcloud的的五大核心组件的具体作用和使用,docker的环境搭建和安装,及docker的镜像和基础的命令;fastDFS的使用和原理,熟悉swagger的使用,rabbitmq的工作原理和消息持久化,dubbo的执行流程、容错机制;zookeeper注册中心的原理和分布式锁的实现 1.利用分布式技术完成商城项目中的开发工作及mq的应用。
2.使用fastdfs做文件的上传与下载功能
3.使用swagger进行项目的测试
vue ECMAScript6
webpack
vue
掌握Vue框架的应用,可以通过虚拟DOM方式,开发前端交互,以及和后端交互处理数据 按项目原型设计:
1.使用VUE完成前台模版开发。
2.移动端应用微信小程序开发。
人脸识别 人脸识别 掌握人脸识别技术的过程及其开发 项目中实现人脸识别功能的开发
语音识别 语音识别 掌握语音识别技术的过程及其开发 项目中实现语音识别功能的开发
二维码支付 支付宝支付
微信支付
掌握支付过程和功能实现,及支付后回掉和退款 完成项目中的支付宝支付和微信支付模块
生态体系 阿里云/百度云/华为云等云服务器生态
微信生态
支付宝生态
七牛云
其他常用组件
掌握云服务器的使用及其文件的上传 1.在云服务器上搭建项目生产环境
2.熟悉使用云服务器的可视化工具。
解决方案 常见面试指导
工作流
分布式锁
掌握分布式锁的实现和其工作原理 项目中添加分布式锁及分布式事物的实现。
扩展部分 springCloud alibaba
NIO
JDK新特性
并发包
netty
设计模式
JVM性能调优
算法
掌握springcloud Alibaba 的组件使用及其作用;
熟悉jvm的性能调优
使用springcloudAlibaba中的组件进行项目模块的开发;利用jekins自动部署项目

项目实战:百万级并发电子商城

B2B2C是一种电子商务类型的网络购物商业模式,B是BUSINESS的简称,C是CUSTOMER的简称,第一个B指的是商品或服务的供应商,第二个B指的是从事电子商务的企业,C则是表示消费者。当然第一个BUSINESS,并不仅仅局限于品牌供应商、影视制作公司和图书出版商,任何的商品供应商或服务供应商都能可以成为第一个BUSINESS;第二B是B2B2C模式的电子商务企业,通过统一的经营管理对商品和服务、消费者终端同时进行整合,是广大供应商和消费者之间的桥梁,为供应商和消费者提供优质的服务,是互联网电子商务服务供应商。举个生活中的例子就是:京东商城、天猫商城、用户相互之间的关系

项目收获:

  • 1、真正从0到1,掌握微服务架构、分布式、vue、全栈开发
  • 2、电商百万级并发场景,解决方案
  • 3、对标阿里P6/P7,冲击40-60w年薪

项目亮点:

  • 1、从0到1开发B2C的商城项目,讲解Java分布式,高并发各种技术,以及电商业务的各种解决方案,对标阿里P6/P7,冲击40-60w年薪。技术涵盖:微服务架构、分布式、全栈
  • 2、项目由业务集群系统、后台管理系统、前台门户系统构成,打通了分布式开发及全栈开发技能,包含前后分离全栈开发、Restful接口、vue和IView、spring security oauth2、秒杀高并发方案、分布式锁和分布式事务、网关、注册发现、配置中心、熔断、限流、降级、性能监控、压力测试等
  • 3、企业级大型项目,以项目实战为基础,涵盖职场中最常见的各种技术难题及解决方案,带来更真实的项目体验
  • 4、涵盖spring cloud和spring cloud alibaba所有技术栈,通过对比学习和应用Netflix和spring cloud alibaba分布式中间件产品,更深入理解spring cloud分布式技术栈应用和开发

阶段五:进入企业实习参与商业项目开发

这个阶段安排入职智校云网络科技有限公司实习,实习期为一个月,分配到商业项目组中和老程序员一起参与上线项目的开发工作。浸入项目组实习,不仅可以积累工作经验,在工作中学习更是技术提升的关键时期。相关的工作经验对于新工作的薪资起着决定性作用,因为参加实际项目开发解决过一些实际问题,一些开发工具会使用很熟练,并掌握相关的业务流程,了解团队协作开发的相互配合, 了解相关的项目管理规范等,所以开发效率会很高。在实际的编程工作中,你做的事情往往是一个大系统中的一个组件,完成一个大系统的开发工作是一个团队的事情,但你必须学会如何团队开发。最主要的是学过再多的技术,学习的内容也都是“点状”的,例如会写小段代码,掌握各种算法,了解所有设计模式,但没有参加过商业项目开发就不相信自己能胜任这份工作。作为程序员要有被甲方“威胁”的经历,要有被产品经理反复改需求“博弈”的过程,要有为了项目预期上线连夜“奋战”的时候,更要有项目经测试后反馈回来BUG成堆无地自容的感觉,也要有过讨论架构“拍桌子”大喊的情况。

全栈
占比
技术点 学习目标
代码管理 Git安装
代码时光机
多人合作
分支特性
远程仓库
远程仓库 Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 其中很多的特性相较于svn,cvs更加的强大,特别是分支特性,更好的维护产品代码,保证代码的健壮性。
团队协作 文档管理
设计图管理
团队人员分工
员工沟通技巧
团队协作是团队运作非常重要的一个环节,直接影响整个项目能否顺利完成。其中还包括员工的沟通,考核以及后续的升职加薪。
项目开发流程 原型制作
设计图制作
数据库设计
框架开发
测试
上线
了解整个项目的开发流程对开发人员有着非常重要的意义,开发人员可以在宏观角度来认识项目,并提高和其他部门之间的配合,为后续的升职加薪做好准备。
客户沟通 客户沟通
项目定价
合同制作
产品分析
客户是公司生存的经济来源,与客户的沟通显得至关重要,企业技术总监亲自讲述与客户沟通的那些事。

项目实战:10个商业项目二次开发

智校云三年来已经自主研发并上线几十个商业项目,从中挑选10个不同类型的精品项目给到实习程序员,这10个商业项目总价值不会低于500万。会给你源代码学习和个人使用。但源码不可以在网络上公开,不可以私自用于商业用途,需要通过公司商业授权。

这10个项目不但给你源码,还会由参与这些项目开发的技术总监为你讲解项目的背景、需求、安装和使用,并详细分析项目架构和功能模块,并教会你进行二次开发,可以为项目扩展、修改或删减功能,并上线运行变成自己的项目。