Java 后端自学路线指南

2023-05-27 0 1,038

对想走的更远的开发人员,我们的视线要放得更广许多,除当今社会的工作,最合适也要花时间介绍介绍其他路径的控制技术,那样才能让他们的思维、能力跟上时代。

第一集该文风险提示:

http://objcoding.com/2018/02/07/javaweb-learning/,译者是 zch,对有兴趣自学前端我协助很大,转发来和大家一起自学。

前段时间很多网民问我如何自修 Java 前端,还很多是想从其它路径想转过身来,但都不太介绍 Java 前端到底需要学什么,到底要从哪里学起,什么样是非主流的 Java 前端控制技术之类,先挑但又很迷惘,不知从何下手。

我就以占卜师的历经,写在这首诗里,不一定都对,但都是我根据他们的经历归纳出来的,供你们的参照。

Java 后端自学路线指南

01

Java 此基础

Java 是两门单纯的程序词汇的程式设计词汇,所以除此基础句法以外,必须得搞清楚它的 oop 优点:PCB、承继、隐式。

除此以外除了C#、散射的优点,很多架构的控制技术都倚赖它,比如说 Spring 核心理念的 Ioc 和 AOP,都加进了散射,而且 Java 另一方面的静态全权也是利用散射实现的,

这里我特地写了一则 Java静态全权基本原理分析。

除此以外除了 Java 许多标准库也是ambda 函数、子集的 Stream 流操作、崭新的 Date API 之类,有关新优点,我也写了两篇有关这点的网志,请另行找吧,就不诸杨了。

有关书刊推荐,我是不建议新手一开始就拿着「Java 程式设计思想」啃的,即使原本我就是那个当日上午决定自修 Java,早上就抱着这两本书啃的人,虽说,我彼时真的要学它在说啥,即使我没有一点的程序词汇词汇程式设计的此基础,而这两本书又写得太源远流长了,在彼时的我来说,完全是天书,但是我认为它仍然是 Java 界的圣经,每读一次都有所收获。我在这里推荐你们一开始先看「Java 核心理念控制技术」,这两本书讲得比较通俗易懂,新手比较能接受。

有关视频推荐,我原本就是听某客的毕向东老师讲的 Java 此基础教程,毕老师讲的实在是太生动有趣了,不知不觉把我带进 Java 的坑里无法自拔,有时候我会听他视频时笑出声来,也许是我那段自修阶段最有趣的时刻了。

02

数据库

有关 sql 方面:SQL 教程、MySQL 教程

我是介绍了许多此基础句法之后,就直接跟着视频的老师做许多表操作实战练习了,比如说单表查询、多表查询等。

我建议学 sql 切勿眼高手低,需多加练习,不要只看懂了就行,因为工作中写得一手简练的 sql 是非常重要的。在这里我说下我在项目一直秉承着 sql 语句是能避免多表查询就避免多表查询,能够分开多条语句就分开多条语句,即使这里涉及到多表查询性能和数据库扩展的问题。

你需要搞清楚 JDBC API 的用法,其实它只是一组规范接口,所有数据库驱动只要实现了 JDBC,那么我们就可以通过标准的 API 调用相应的驱动,完全不用知道驱动是怎么实现的,这就是面向接口程式设计的好处。

而且对 JDBC 我是直接看视频去理解的,跟着视频做了一个基于 Apache Dbutils 工具做了一个具有事务性的小工具,我特地用思维导图归纳了一下:

Java 后端自学路线指南

jdbc-utils源码地址:jdbc-utils

03

Web 此基础

曾经开源中国创始人红薯写了一首诗「初学 Java Web 开发,请远离各种架构,从 Servlet 开发」,我觉得他说的太对了,在如今 Java 开发中,很多开发者只知道怎么使用架构,但根本要学 Web 的许多知识点,其实架构很多,但都基本是一个套路,所以在你自学任何架构前,请把 Web 此基础打好,把 Web 此基础打好了,看架构真的是如鱼得水。

有关 Http 协议,这首诗就写得很清楚:Http协议

有关 Web 此基础这点数据推荐,我彼时是看的是「Tomcat 与 Java Web 开发控制技术详解」,很详细地讲解了整个 Java Web 开发的控制技术知识点,但现在看来,我觉得里面讲的有许多控制技术确实有点老旧了,不过可以介绍一下 Java Web 开发的历史也是不错的。

所以在 Web 此基础这点我都是看某客的崔老师讲的「超全面 Java Web 视频教程」,讲得很详细很生动,除了实战项目!

有关 JSP,你只要介绍它其实就是一个 Servlet 就行了,有关它的许多标签用法,我认为可以直接忽略,即使现在互联网公司很少还用 JSP,除许多老旧的项目。

现在都是流行前前端分离,单页应用,前端只做 API 接口的时代了,所以时间宝贵,把这些时间重点放在 Servlet 规范上面吧。

有关 Tomcat,它是一个 Web 容器,我们写的前端项目都要部署到Web容器才能运行,它其实是一个遵循 Http,通过 Socket 通信与客户端进行交互的服务端程序:Tomcat结构及处理请求过程

04

非主流 Java Web 架构

Java Web 架构多如牛毛,等你有一定经验了,你也可以写一个 Web 架构,网上很多说 Spring、Struts2、Hibernate 是 Java 三架马车,我只想说,那是很久远的事情了,我严重不推荐 Struts2、Hibernate,相信我,一开始只需要上手 Spring、SpringMVC、Mybatis 就可以了,特别是 Spring 架构,其实 Spring 家族的架构都是很不错的。

但是提醒一点就是,千万不要沉迷于各种架构不能自拔,以会多种用法而沾沾自喜,导致知其然而不知其所以然。

Spring其核心理念思想就是 IOC 和 AOP:

谈谈对 Spring IOC 的理解

Spring 面向切面程式设计

SpringMVC 它的思想是全部请求统一用一个 Servlet 去做请求转发与控制,这个 Servlet 叫 DispatcherServlet:

SpringMVC 初始化过程

SpringMVC 处理请求过程

mybatis 入门教程

Mybatis 深入浅出系列

05

Java Web 架构进阶

使用了 SSM 架构后,你会觉得架构也不过这么回事,如果你对 Spring 有过大概介绍,你也会产生想写一个「山寨版」Spring 的心思了,一个轻量级 Web 架构主要具备以下功能:

可读取用户自定义配置文件,并以此来初始化架构;

具备 Bean 容器,管理项目的类的对象生命周期;

具备倚赖注入,降低类之间的耦合性;

具备 AOP 功能,使项目可进行横向程式设计,可不改变原有代码的情况增加业务逻辑;

具备 MVC 架构模式。

其实除 SSM 以外,Web 架构可谓是百家齐放,其中以 Spring 全家桶最为耀眼,在这里我极力推荐两个 Spring 家族架构:SpringBoot 和 SpringCloud。

SpringBoot 弥补了 Spring 配置上的缺点,再也不用为繁杂的 xml 费劲精力了,堪称是 Java 前端开发的颠覆者,推荐书刊「Java EE 开发的颠覆者:SpringBoot实战」

SpringBoot 构建 web 项目

SpringBoot 自动化配置源码分析

自定义 SpringBoot Starter

spring-boot-starter-tutorial

SpringCloud 是一个微服务架构,能够将项目按照业务分成一个个微服务,每个微服务都可独立部署,服务之间互相协调。当一个项目越来越大时,随之而来的是越来越难以维护,此时将项目拆分成若干个微服务、单独维护、单独部署,也可以降低项目不同业务间的耦合度。

推荐书刊「Spring Cloud 与 Docker 微服务架构实战」,这两本书将 Docker 与微服务完美地结合在一起,堪称完美!

Spring Cloud 中文官网

史上最简单的 Spring Cloud 教程

我写的有有关 Spring Cloud 的网志:

SpringCloud微服务架构之服务注册与发现

SpringCloud微服务架构之服务消费者

SpringCloud微服务架构之断路器

SpringCloud微服务架构之服务网关

06

其他控制技术

Redis:一个高性能的 key-value 数据库,当有并发量很高的请求时,将数据缓存在 Redis 中,将提高服务器的响应性能,大大减轻数据库的压力。

redis 中文官网

redis 教程

Git:世界上最先进的分布式版本控制系统,建议所有新手从命令行开始使用 Git!

Git 官网

最全 Git 教程

Git 的许多常用命令

Maven:一个用于构建项目的工具,将项目间的倚赖通过 xml 完美地组织到一起,可通过编译插件将项目编译成字节码文件。除了类似的 Gradle 也是不错的选择。

maven 的 pom.xml 文件详解

Linux:至少要求常用的命令会用,能够在 linux 环境下部署项目。

Linux 命令大全

最全的 SSH 连接远程终端教程

Docker:简直是项目部署神器啊,来不及解释了,看我 Docker 系列网志,开启 Docker 之旅吧!推荐书刊「Docker 控制技术入门与实战」,中国首部 Docker 著作!

Docker 实战(一)

Docker 实战(二)

Docker 实战(三)

docker-deploy-tutorial

07

开发工具

工欲善其事,必先利其器,以下是我推荐的许多开发工具:

Intellij IDEA:Java 开发最合适的 IDE,这个是公认的,我一开始是用 Eclipse 的,后来用了 Intellij IDEA,才发现 Eclipse 就是一坨屎,所以我以占卜师劝你们不要使用 Eclipse,直接 Intellij IDEA!

IntelliJ IDEA 使用教程

Iterm2:macOS 最合适用的终端!

Iterm2 使用手册

Chrome:人生苦短,请用 Chrome,来不及解释了,快上车!

Postman:很好用的一个接口调试工具。

Postman 官网

Java 后端自学路线指南

人网志。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务