关于后端:怒肝2022年最全JAVA学习路线一条龙

38次阅读

共计 2937 个字符,预计需要花费 8 分钟才能阅读完成。

前言

想像本人还是一名刚接触计算机的的小白,如何去学习呢,当然是从互联网开始啦,如何让咱们的学习路线不偏航呢,上面就给大家梳理一条“捷径”,让你疾速走上人生巅峰,迎娶白富美。

由浅入深的你会理解到

互联网相干的协定

根本的前端常识

操作系统相干的常识

学习一门语言

版本控制工具

数据库相干

API 相干

缓存相干

网络安全常识

测试相干常识

继续集成、继续交付

设计和开发准则

架构模式

搜索引擎

音讯队列

WEB 服务器

容器化技术

可扩展性


互联网

互联网是一个全球性的计算机网络,它们相互连接,通过一组标准化的协定进行通信。

HTTP 协定

  • 什么是 HTTP 协定
  • HTTP 协定是如何运作的
  • 如何本人实现一个网络协议?要留神哪些点?

DNS 协定

  • DNS 协定是如何运行的
  • 什么是域名?
  • 域名是如何运作的

根本的前端常识

  • 学习 HTML
 HTML 是网络的通用语言,一种简略、通用的全置标记语言。
  • 学习 CSS
CSS 全称为 Cascading Style Sheets, 中文翻译为“层叠样式表”, 简称 CSS 样式表, 是一种用来体现 HTML 或 XML 等文件式样的计算机语言, 是一种规范的样式表语言, 用于形容网页的示意, 即布局和格局。
  • 学习 JavaScript
一种具备函数优先的轻量级,解释型或即时编译型的编程语言

操作系统和基本常识

  • 终端的应用
  • 操作系统是如何工作的
  • 过程治理
  • 线程与并发
  • 根本的终端命令
grep, awk, sed, lsof, curl, wget,tail, head, less, find, ssh, kill
  • 内存治理
  • 过程间的通信

    管道、信号、音讯队列、共享内存、信号量、套接字
  • I/O
  • POSIX 基础知识
stdin 输出
stdout 输入
stderr 异样
pipes 管道
  • 网络基本概念

当你理解了以上的概念之后呢,你就能够开始着手学习一门计算机语言了,学习的同时你要着重关注它的细节、外围概念,例如并发、内存模型等等。

开始学习一门语言

  • Java
  • C#
  • PHP
  • JavaScript
  • Python
  • Ruby

版本控制系统

晓得它们是什么,为什么你应该应用它们

  • Git 的根本应用
  • 仓库托管服务
GitHub,GtiLab,Bitbucket

关系型数据库

  • PostgreSQL
  • MySQL
  • MariaDB
  • MS SQL
  • ORACLE

    相熟 SQL 语法,理解各种数据库的优劣,多尝试简单 SQL,须要具备一些数据库的调优形式。

非关系型数据库

  • 文档数据库 MongoDB CouchDB
  • 列数据库 Cassandra
  • 工夫序列数据库 InfluDB TimescaleDB
  • 实时数据库 Firebase RethinkDB

更多数据库相干

  • ORM
  • ACID
是指数据库管理系统(DBMS)在写入或更新材料的过程中,为保障事务(transaction)是正确牢靠的,所必须具备的四个个性:原子性(atomicity,或称不可分割性)一致性(consistency)隔离性(isolation,又称独立性)持久性(durability)
  • 事务 Transactions
事务是由什么来保障的
事务的流传特效
事务何时会生效等等
  • n + 1 问题
  • 数据库范式
  • 索引 Index 相干
  • 数据复制 Data Replication
  • 分片策略
  • CAP 实践
CAP
一致性(Consistency)可用性(Availability)分区容错性(Partition tolerance)最多满足其中的两个个性。也就是下图所形容的。分布式系统要么满足 CA, 要么 CP,要么 AP。无奈同时满足 CAP。

API 相干信息

  • HATEOAS
  • 凋谢 API 标准和 Swagger
  • 身份验证
基于 Cookie、OAuth、基于 Authentication、TOKEN、JWT、OpenID、SAML

OPENID 工作原理

客户端向验证服务器申请了一个 OPENID 帐号,而后在反对 OPENID 验证的网站用 OPENID 进行登录,这个网站以它会申请你的验证服务器对你的身份进行验证,验证服务器验证非法,该网站承受你的身份

  • JSON API
  • SOAP
  • gRPC

缓存相干

  • CDN
  • 服务端解决

    CDN 的全称是 Content Delivery Network, 即内容散发网络。
    其目标是通过在现有的 internet 中减少一层新的网络架构,
    将网站的内容公布到最靠近用户的网络边缘, 使用户能够就近
    获得所需的内容, 进步用户拜访网站的响应速度。

Redis、Memcached
  • 客户端解决

紧接着要具备一些网络安全常识

平安常识

  • MD5 及为什么不必它
  • SHA 家族
  • scrypt 算法
  • bcrypt 算法

测试

  • 继承测试
  • 单元测试
  • 功能测试

CI/CD

继续集成、继续交付

设计和开发准则

  • GOF 设计模式
  • 畛域驱动设计 DDD
  • 测试驱动开发
  • SOLID 准则
繁多职责准则(SRP)一个类应该只负责一件事件
凋谢关闭准则(OCP)对批改关闭,对扩大凋谢
里氏替换准则(LSP)所有援用基类的中央必须可能通明地应用其子类的对象
接口隔离准则(ISP)不依赖不须要的接口
依赖倒置准则(DIP)解耦,依赖形象而不是具体
迪米特准则(LOD)一个对象应该对其余对象放弃最小的理解
  • KISS 准则(Keep It Stupid Simple 或 Keep It Simple,Stupid)
    简略清晰准则
  • YAGNI(You Ain’t Gonna Need It)你不会须要它 不设计用不到的性能
  • DRY(Don’t Repeat Yourselt)不要写反复代码

架构模式

  • 单体利用
  • 微服务
  • SOA
服务治理,面向服务架构(SOA)是一个组件模型,它将应用程序的不同性能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协定分割起来。
  • CQRS 和 Event Sourcing
  • Serverless

搜索引擎

  • Elasticsearch
  • Solr

Message Brokers(音讯代理)

  • Kafka
  • RabbitMQ
  • RocketMQ

容器化

  • Docker
Docker 我的项目的指标是实现轻量级的操作系统虚拟化解决方案。Docker 的根底是 Linux 容器(LXC)等技术,屏蔽很多底层细节,让用户操作 Docker 的容器就像操作一个疾速轻量级的虚拟机一样简略。
  • RKT
Rkt 诞生于 2014 年 12 月,是一种与 Docker 相似的容器引擎,由 CoreOS 公司主导,失去了 Redhat、Google、Vmware
等公司的反对,更加专一于解决平安、兼容、执行效率等方面的问题。
  • LXC
提供轻量级的虚拟化,以便隔离过程和资源,而且不须要提供指令解释机制以及全虚拟化的其余复杂性。

理解它们的由来和作用,零碎的学习它们,相熟它们的生态,尝试理解底层原理。

GraphQL(图状数据)

  • Apollo
  • Relay Modern

图数据库

  • Neo4J

WebSockets

协定

Web 服务器

  • Nginx
  • Apache
  • Caddy
  • IIS

    晓得各种服务器各自的劣势和劣势,晓得如何部署利用,可能依据理论的业务场景选取适合的服务器,

    可扩展性

构建可持续性的产品价值

  • 缓解策略
优雅、降解、节流、背压、负载转移、断路器
  • 可视化监控
仪器仪表、监测、遥测
  • 迁徙策略
  • 程度和垂直扩大
  • 可察看性
具备可察看的指标,可能在问题产生前及时发现,或者及时定位曾经产生的问题。

总结

胜利没有捷径,请放弃学习~

❤️/ 感激反对 /

以上便是本次分享的全部内容,心愿对你有所帮忙 ^_^

喜爱的话别忘了 分享、点赞、珍藏 三连哦~

欢送关注公众号 程序员巴士,来自字节、虾皮、招银的三端兄弟,分享编程教训、技术干货与职业规划,助你少走弯路进大厂。

正文完
 0