阶段4:Java Web开发进阶


目标

学习更多企业级开发技术和编程思想,能够结合多种技术,独立开发出架构合理的完整系统,解决实际问题 。 要了解为什么需要这个技术?什么时候用哪些技术?

设计模式(21 天)

设计模式是软件开发中解决一类问题的通用方法。 使用设计模式能让你写出更优雅、可维护的代码,也正因如此,很多框架源码都用到了设计模式,你不学很难看懂。

知识

  1. 创建型模式:对象实例化的模式,创建型模式用于解耦对象的实例化过程
    • 单例模式
    • 工厂方法模式
    • 抽象工厂
    • 建造者模式
    • 原型模式
  2. 结构型模式:把类或对象结合在一起形成一个更大的结构
    • 适配器模式
    • 组合模式
    • 装饰器模式
    • 代理模式
    • 享元模式
    • 外观模式
    • 桥接模式
  3. 行为型模式:类和对象如何交互,及划分责任和算法
    • 迭代器模式
    • 模板方法模式
    • 策略模式
    • 命令模式
    • 状态模式
    • 责任链模式
    • 备忘录模式
    • 观察者模式
    • 访问者模式
    • 中介者模式
    • 解释器模式

学习建议

先理解概念,了解每个设计模式的特点和应用场景,再多加练习,运用到实际项目。

资源

中间件(14 天)

除了框架外,企业项目开发也会用到大量独立的中间件,以解决某些实际问题,比如提高项目的性能、提高项目的稳定性和可靠性等。 下面分享几个最常用的主流中间件。

知识

  • Redis 缓存
    • 数据类型
    • 常用操作
    • Java 操作 Redis
    • 主从模型搭建
    • 哨兵集群搭建
    • 日志持久化
    • 应用场景
  • RabbitMQ、RocketMQ、Kafka 消息队列
    • 消息队列的作用
    • 生产消费模型
    • 交换机模型
    • 死信队列
    • 延迟队列
    • 消息持久化
    • Java 操作
    • 集群搭建
  • Nginx 网关
    • Nginx 作用
    • 正向代理
    • 反向代理(负载均衡)
    • 常用命令
    • 配置
    • 动静分离(网站部署)
    • 集群搭建

学习建议

学会如何使用中间件并不难,先能够独立使用,了解他们的应用场景;再用 Java 来操作中间件,和项目相结合。 跟着视频教程实操一遍即可,可以等到面试前再去深入了解原理和高级特性。

资源

Netty 网络编程(14 天)

开源的 Java 网络编程框架,用于开发高性能(事件驱动、异步非阻塞)、高可靠的网络服务器和客户端程序。 很多网络框架和服务器程序都用到了 Netty 作为底层,学好 Netty 不仅可以让我们自己实现高性能服务器,也能更好地理解其他的框架应用、阅读源码。

知识

  • IO 模型(BIO / NIO)
  • Channel
  • Buffer
  • Seletor
  • Netty 模型
  • WebSocket 编程(动手做个聊天室)

学习建议

不同于之前学的 SSM 框架,Netty 还是需要一定学习成本的,一方面是国内资源太缺乏,另一方面很多重要的概念(比如 NIO)还是要多动手写代码调试才能理解。 还是建议先从视频入门,并且不建议在 Netty 上花太多时间,面试的时候一般也就考察一些 Netty 思想。

资源

微服务(60 天)

随着互联网的发展,项目越来越复杂,单机项目已无法满足开发、运维、并发、可靠性等需求。 后台架构不断演进,可以将庞大的项目拆分成一个个职责明确、功能独立的细小模块,模块可以部署在多台服务器上,相互配合协作,提供完整的系统能力。 想做大型项目,这块儿一定要好好学。

知识

  • Dubbo
    • 架构演进
    • RPC
    • Zookeeper
    • 服务提供者
    • 服务消费者
    • 项目搭建
  • 微服务
    • 微服务概念
    • Spring Cloud 框架
      • 父子工程
      • 服务注册与发现
      • 注册中心 Eureka、Zookeeper、Consul
      • Ribbon 负载均衡
      • Feign 服务调用
      • Hystrix 服务限流、降级、熔断
      • Resilience4j 服务容错
      • Gateway(Zuul)微服务网关
      • Config 分布式配置中心
      • 分布式服务总线
      • 分布式链路追踪
    • Spring Cloud Alibaba
      • Nacos 注册、配置中心
      • OpenFeign 服务调用
      • Sentinel 流控
      • Seata 分布式事务
  • 接口管理
    • Swagger 接口文档
    • Postman 接口测试

学习建议

时间不急的话,建议先从 Dubbo 学起,对分布式、RPC、微服务有些基本的了解,再去食用 Spring Cloud 全家桶会更香。 这部分内容的学习,原理 + 实践都很重要,也不要被各种高大上的词汇唬住了,都是上层(应用层)的东西,基本没有什么算法,跟着视频教程学,其实还是很好理解的。 分布式相关知识非常多,但这里不用刻意去背,先通过视频教程实战使用一些微服务框架,也能对其中的概念有基本的了解。

资源

Docker、k8s(7 天)

将应用和环境进行封装,相互隔离、独立部署、便于移植,提高安全性、提高开发和维护效率。 便于实现微服务、持续集成和交付。

知识

  • Docker
    • 容器概念
    • 镜像
    • 部署服务
    • Dockerfile
  • K8S(Kubernetes)
    • 架构
    • 部署应用
    • 暴露服务
    • 动态扩缩容

学习建议

会用 Docker / K8S 部署项目和服务就行,企业一般都有现成的平台直接用,面试考察不多,不用花太多时间。

资源

CI / CD(3 天)

持续集成 / 持续交付,贯穿整个研发到项目上线的过程,提高效率。 大公司一般都有自己的 CI / CD 平台。

知识

  • 什么是 CI / CD
  • CI / CD 有什么好处
  • 使用任一 CI / CD 平台

学习建议

了解它是什么,并且实战使用任一 CI / CD 平台,感受它和传统开发运维到底有什么不同,就足够了。其实很简单,不要花太多时间。 真正要自己去搭建的时候,跟着官方文档来就行。

资源


评论
评论
  目录