Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
### Git

- [Git 核心概念总结](./docs/tools/git/git-intro.md)
- [Github 实用小技巧总结](./docs/tools/git/github-tips.md)
- [GitHub 实用小技巧总结](./docs/tools/git/github-tips.md)

## 系统设计

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ tag:

不知道其他公司的程序员是怎么样的?我感觉技术积累很大程度在乎平时,单纯依靠工作绝大部分情况只会加快自己做需求的熟练度,当然,写多了之后或多或少也会提升你对代码质量的认识(前提是你有这个意识)。

工作之余,我会利用业余时间来学习自己想学的东西。工作中的例子就是我刚进公司的第一个项目用到了 Spring Security+JWT ,因为当时自己对于这个技术不太了解,然后就在工作之外大概花了一周的时间学习写了一个 Demo 分享了出来,Github 地址:<https://github.com/Snailclimb/spring-security-jwt-guide> 。以次为契机,我还分享了
工作之余,我会利用业余时间来学习自己想学的东西。工作中的例子就是我刚进公司的第一个项目用到了 Spring Security+JWT ,因为当时自己对于这个技术不太了解,然后就在工作之外大概花了一周的时间学习写了一个 Demo 分享了出来,GitHub 地址:<https://github.com/Snailclimb/spring-security-jwt-guide> 。以次为契机,我还分享了

- [《一问带你区分清楚 Authentication,Authorization 以及 Cookie、Session、Token》](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247485626&idx=1&sn=3247aa9000693dd692de8a04ccffeec1&chksm=cea24771f9d5ce675ea0203633a95b68bfe412dc6a9d05f22d221161147b76161d1b470d54b3&token=684071313&lang=zh_CN&scene=21#wechat_redirect)
- [JWT 身份认证优缺点分析以及常见问题解决方案](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247485655&idx=1&sn=583eeeb081ea21a8ec6347c72aa223d6&chksm=cea2471cf9d5ce0aa135f2fb9aa32d98ebb3338292beaccc1aae43d1178b16c0125eb4139ca4&token=1737409938&lang=zh_CN#rd)
Expand Down
2 changes: 1 addition & 1 deletion docs/about-the-author/javaguide-100k-star.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ tag:
- 个人经历
---

2021-03-21,晚上 12 点,肝完了我正在做的一个项目的前端的某块功能,我随手打开了[我的 Github 主页](https://github.com/Snailclimb)。
2021-03-21,晚上 12 点,肝完了我正在做的一个项目的前端的某块功能,我随手打开了[我的 GitHub 主页](https://github.com/Snailclimb)。

好家伙!几天没注意,[JavaGuide](https://github.com/Snailclimb/JavaGuide) 这个项目直接上了 100K star。

Expand Down
2 changes: 1 addition & 1 deletion docs/about-the-author/writing-technology-blog-six-years.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ tag:

![网易的课程合作](https://oss.javaguide.cn/about-the-author/college-life/image-20230408115720135.png)

老粉应该大部分都是通过 JavaGuide 这个项目认识我的,这是我在大三开始准备秋招面试时创建的一个项目。没想到这个项目竟然火了一把,一度霸占了 Github 榜单。可能当时国内这类开源文档教程类项目太少了,所以这个项目受欢迎程度非常高。
老粉应该大部分都是通过 JavaGuide 这个项目认识我的,这是我在大三开始准备秋招面试时创建的一个项目。没想到这个项目竟然火了一把,一度霸占了 GitHub 榜单。可能当时国内这类开源文档教程类项目太少了,所以这个项目受欢迎程度非常高。

![JavaGuide Star 趋势](https://oss.javaguide.cn/about-the-author/college-life/image-20230408131849198.png)

Expand Down
4 changes: 2 additions & 2 deletions docs/books/cs-basics.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ head:

除了理论知识之外,学习计算机网络非常重要的一点就是:“**动手实践**”。这点和我们编程差不多。

Github 上就有一些名校的计算机网络试验/Project:
GitHub 上就有一些名校的计算机网络试验/Project:

- [哈工大计算机网络实验](https://github.com/rccoder/HIT-Computer-Network)
- [《计算机网络-自顶向下方法(原书第 6 版)》编程作业,Wireshark 实验文档的翻译和解答。](https://github.com/moranzcw/Computer-Networking-A-Top-Down-Approach-NOTES)
Expand Down Expand Up @@ -141,7 +141,7 @@ Github 上就有一些名校的计算机网络试验/Project:

![](https://oss.javaguide.cn/github/javaguide/booksimage-20220409145411049.png)

这是一本被 Github 上的爆火的计算机自学项目 [Teach Yourself Computer Science](https://link.zhihu.com/?target=https%3A//teachyourselfcs.com/) 强烈推荐的一本算法书籍。
这是一本被 GitHub 上的爆火的计算机自学项目 [Teach Yourself Computer Science](https://link.zhihu.com/?target=https%3A//teachyourselfcs.com/) 强烈推荐的一本算法书籍。

类似的神书还有 [《算法导论》](https://book.douban.com/subject/20432061/)、[《计算机程序设计艺术(第 1 卷)》](https://book.douban.com/subject/1130500/) 。

Expand Down
2 changes: 1 addition & 1 deletion docs/books/database.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ head:

![](https://oscimg.oschina.net/oscnet/up-11de8cb239aa7201cc8d78fa28928b9ec7d.png)

Github 上也已经有大佬用 Java 实现过一个简易的数据库,介绍的挺详细的,感兴趣的朋友可以去看看。地址:[https://github.com/alchemystar/Freedom](https://github.com/alchemystar/Freedom) 。
GitHub 上也已经有大佬用 Java 实现过一个简易的数据库,介绍的挺详细的,感兴趣的朋友可以去看看。地址:[https://github.com/alchemystar/Freedom](https://github.com/alchemystar/Freedom) 。

除了这个用 Java 写的之外,**[db_tutorial](https://github.com/cstack/db_tutorial)** 这个项目是国外的一个大佬用 C 语言写的,朋友们也可以去瞅瞅。

Expand Down
8 changes: 4 additions & 4 deletions docs/books/java.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,12 +122,12 @@ _这本书还是非常适合我们用来学习 Java 多线程的。这本书的

非常重要!非常重要!特别是 Git 和 Docker。

- **IDEA** :熟悉基本操作以及常用快捷。你可以通过 Github 上的开源教程 [《IntelliJ IDEA 简体中文专题教程》](https://github.com/judasn/IntelliJ-IDEA-Tutorial) 来学习 IDEA 的使用。
- **IDEA** :熟悉基本操作以及常用快捷。你可以通过 GitHub 上的开源教程 [《IntelliJ IDEA 简体中文专题教程》](https://github.com/judasn/IntelliJ-IDEA-Tutorial) 来学习 IDEA 的使用。
- **Maven** :强烈建议学习常用框架之前可以提前花几天时间学习一下**Maven**的使用。(到处找 Jar 包,下载 Jar 包是真的麻烦费事,使用 Maven 可以为你省很多事情)。
- **Git** :基本的 Git 技能也是必备的,试着在学习的过程中将自己的代码托管在 Github 上。你可以看看这篇 Github 上开源的 [《Git 极简入门》](https://snailclimb.gitee.io/javaguide/#/docs/tools/Git) 。
- **Docker** :学着用 Docker 安装学习中需要用到的软件比如 MySQL ,这样方便很多,可以为你节省不少时间。你可以看看这篇 Github 上开源的 [《Docker 基本概念解读》](https://snailclimb.gitee.io/javaguide/#/docs/tools/Docker) 、[《一文搞懂 Docker 镜像的常用操作!》](https://snailclimb.gitee.io/javaguide/#/docs/tools/Docker-Image)
- **Git** :基本的 Git 技能也是必备的,试着在学习的过程中将自己的代码托管在 GitHub 上。你可以看看这篇 GitHub 上开源的 [《Git 极简入门》](https://snailclimb.gitee.io/javaguide/#/docs/tools/Git) 。
- **Docker** :学着用 Docker 安装学习中需要用到的软件比如 MySQL ,这样方便很多,可以为你节省不少时间。你可以看看这篇 GitHub 上开源的 [《Docker 基本概念解读》](https://snailclimb.gitee.io/javaguide/#/docs/tools/Docker) 、[《一文搞懂 Docker 镜像的常用操作!》](https://snailclimb.gitee.io/javaguide/#/docs/tools/Docker-Image)

除了这些工具之外,我强烈建议你一定要搞懂 Github 的使用。一些使用 Github 的小技巧,你可以看[《Github 小技巧》](https://snailclimb.gitee.io/javaguide/#/docs/tools/Github%E6%8A%80%E5%B7%A7)这篇文章。
除了这些工具之外,我强烈建议你一定要搞懂 GitHub 的使用。一些使用 GitHub 的小技巧,你可以看[《GitHub 小技巧》](https://snailclimb.gitee.io/javaguide/#/docs/tools/Github%E6%8A%80%E5%B7%A7)这篇文章。

## 常用框架

Expand Down
4 changes: 2 additions & 2 deletions docs/books/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ category: 计算机书籍

开源的目的是为了大家能一起完善,如果你觉得内容有任何需要完善/补充的地方,欢迎大家在项目 [issues 区](https://github.com/CodingDocs/awesome-cs/issues) 推荐自己认可的技术书籍,让我们共同维护一个优质的技术书籍精选集!

- Github 地址:[https://github.com/CodingDocs/awesome-cs](https://github.com/CodingDocs/awesome-cs)
- GitHub 地址:[https://github.com/CodingDocs/awesome-cs](https://github.com/CodingDocs/awesome-cs)
- Gitee 地址:[https://gitee.com/SnailClimb/awesome-cs](https://gitee.com/SnailClimb/awesome-cs)

如果内容对你有帮助的话,欢迎给本项目点个 Star。我会用我的业余时间持续完善这份书单,感谢!

本项目推荐的大部分书籍的 PDF 版本我已经整理到了云盘里,你可以在公众号“**Github 掘金计划**” 后台回复“**书籍**”获取到。
本项目推荐的大部分书籍的 PDF 版本我已经整理到了云盘里,你可以在公众号“**GitHub 掘金计划**” 后台回复“**书籍**”获取到。

![](https://oss.javaguide.cn/github/javaguide/booksimage-20220409153638398.png)
2 changes: 1 addition & 1 deletion docs/database/mysql/mysql-questions-01.md
Original file line number Diff line number Diff line change
Expand Up @@ -353,7 +353,7 @@ COMMIT;
>
> 翻译过来的意思是:原子性,隔离性和持久性是数据库的属性,而一致性(在 ACID 意义上)是应用程序的属性。应用可能依赖数据库的原子性和隔离属性来实现一致性,但这并不仅取决于数据库。因此,字母 C 不属于 ACID 。

《Designing Data-Intensive Application(数据密集型应用系统设计)》这本书强推一波,值得读很多遍!豆瓣有接近 90% 的人看了这本书之后给了五星好评。另外,中文翻译版本已经在 Github 开源,地址:[https://github.com/Vonng/ddia](https://github.com/Vonng/ddia) 。
《Designing Data-Intensive Application(数据密集型应用系统设计)》这本书强推一波,值得读很多遍!豆瓣有接近 90% 的人看了这本书之后给了五星好评。另外,中文翻译版本已经在 GitHub 开源,地址:[https://github.com/Vonng/ddia](https://github.com/Vonng/ddia) 。

![](https://oss.javaguide.cn/github/javaguide/books/ddia.png)

Expand Down
2 changes: 1 addition & 1 deletion docs/database/redis/redis-questions-01.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ Memcached 是分布式缓存最开始兴起的那会,比较常用的。后来

关于 Redis 和 Tendis 的对比,腾讯官方曾经发过一篇文章:[Redis vs Tendis:冷热混合存储版架构揭秘](https://mp.weixin.qq.com/s/MeYkfOIdnU6LYlsGb24KjQ) ,可以简单参考一下。

从这个项目的 Github 提交记录可以看出,Tendis 开源版几乎已经没有被维护更新了,加上其关注度并不高,使用的公司也比较少。因此,不建议你使用 Tendis 来实现分布式缓存。
从这个项目的 GitHub 提交记录可以看出,Tendis 开源版几乎已经没有被维护更新了,加上其关注度并不高,使用的公司也比较少。因此,不建议你使用 Tendis 来实现分布式缓存。

### 说一下 Redis 和 Memcached 的区别和共同点

Expand Down
10 changes: 5 additions & 5 deletions docs/distributed-system/api-gateway.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ Zuul 主要通过过滤器(类似于 AOP)来过滤请求,从而实现网

![Zuul2 架构](https://oscimg.oschina.net/oscnet/up-4f9047dc9109e27f9fced1b365e2b976e9d.png)

- Github 地址 : <https://github.com/Netflix/zuul>
- GitHub 地址 : <https://github.com/Netflix/zuul>
- 官方 Wiki : <https://github.com/Netflix/zuul/wiki>

### Spring Cloud Gateway
Expand All @@ -89,7 +89,7 @@ Spring Cloud Gateway 不仅提供统一的路由方式,并且基于 Filter 链

Spring Cloud Gateway 和 Zuul 2.x 的差别不大,也是通过过滤器来处理请求。不过,目前更加推荐使用 Spring Cloud Gateway 而非 Zuul,Spring Cloud 生态对其支持更加友好。

- Github 地址 : <https://github.com/spring-cloud/spring-cloud-gateway>
- GitHub 地址 : <https://github.com/spring-cloud/spring-cloud-gateway>
- 官网 : <https://spring.io/projects/spring-cloud-gateway>

### Kong
Expand Down Expand Up @@ -117,7 +117,7 @@ $ curl -X POST http://kong:8001/services/{service}/plugins \

![](https://oss.javaguide.cn/github/javaguide/system-design/distributed-system/api-gateway/kong-gateway-overview.png)

- Github 地址: <https://github.com/Kong/kong>
- GitHub 地址: <https://github.com/Kong/kong>
- 官网地址 : <https://konghq.com/kong>

### APISIX
Expand All @@ -143,7 +143,7 @@ APISIX 同样支持定制化的插件开发。开发者除了能够使用 Lua

![](https://oscimg.oschina.net/oscnet/up-a240d3b113cde647f5850f4c7cc55d4ff5c.png)

- Github 地址 :<https://github.com/apache/apisix>
- GitHub 地址 :<https://github.com/apache/apisix>
- 官网地址: <https://apisix.apache.org/zh/>

相关阅读:
Expand All @@ -161,7 +161,7 @@ Shenyu 是一款基于 WebFlux 的可扩展、高性能、响应式网关,Apac

Shenyu 通过插件扩展功能,插件是 ShenYu 的灵魂,并且插件也是可扩展和热插拔的。不同的插件实现不同的功能。Shenyu 自带了诸如限流、熔断、转发 、重写、重定向、和路由监控等插件。

- Github 地址: <https://github.com/apache/incubator-shenyu>
- GitHub 地址: <https://github.com/apache/incubator-shenyu>
- 官网地址 : <https://shenyu.apache.org/>

## 参考
Expand Down
4 changes: 2 additions & 2 deletions docs/distributed-system/rpc/rpc-intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ Dubbo 是由阿里开源,后来加入了 Apache 。正是由于 Dubbo 的出

Dubbo 算的是比较优秀的国产开源项目了,它的源码也是非常值得学习和阅读的!

- Github :[https://github.com/apache/incubator-dubbo](https://github.com/apache/incubator-dubbo "https://github.com/apache/incubator-dubbo")
- GitHub :[https://github.com/apache/incubator-dubbo](https://github.com/apache/incubator-dubbo "https://github.com/apache/incubator-dubbo")
- 官网:https://dubbo.apache.org/zh/

### Motan
Expand Down Expand Up @@ -94,7 +94,7 @@ gRPC 是 Google 开源的一个高性能、通用的开源 RPC 框架。其由

不过,gRPC 的设计导致其几乎没有服务治理能力。如果你想要解决这个问题的话,就需要依赖其他组件比如腾讯的 PolarisMesh(北极星)了。

- Github:[https://github.com/grpc/grpc](https://github.com/grpc/grpc "https://github.com/grpc/grpc")
- GitHub:[https://github.com/grpc/grpc](https://github.com/grpc/grpc "https://github.com/grpc/grpc")
- 官网:[https://grpc.io/](https://grpc.io/ "https://grpc.io/")

### Thrift
Expand Down
6 changes: 3 additions & 3 deletions docs/distributed-system/spring-cloud-gateway-questions.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Spring Cloud Gateway 不仅提供统一的路由方式,并且基于 Filter 链

Spring Cloud Gateway 和 Zuul 2.x 的差别不大,也是通过过滤器来处理请求。不过,目前更加推荐使用 Spring Cloud Gateway 而非 Zuul,Spring Cloud 生态对其支持更加友好。

- Github 地址 : <https://github.com/spring-cloud/spring-cloud-gateway>
- GitHub 地址 : <https://github.com/spring-cloud/spring-cloud-gateway>
- 官网 : <https://spring.io/projects/spring-cloud-gateway>

## Spring Cloud Gateway 的工作流程?
Expand Down Expand Up @@ -94,7 +94,7 @@ Spring Cloud Gateway 作为微服务的入口,需要尽量避免重启,而

```yaml
filters: #过滤器
- RewritePath=/api/(?<segment>.*),/$\{segment} # 将跳转路径中包含的 “api” 替换成空
- RewritePath=/api/(?<segment>.*),/$\{segment} # 将跳转路径中包含的 “api” 替换成空
```

当然我们也可以自定义过滤器,本篇不做展开。
Expand Down Expand Up @@ -152,4 +152,4 @@ public class GlobalErrorWebExceptionHandler implements ErrorWebExceptionHandler

- Spring Cloud Gateway 官方文档:<https://cloud.spring.io/spring-cloud-gateway/reference/html/>
- Creating a custom Spring Cloud Gateway Filter:<https://spring.io/blog/2022/08/26/creating-a-custom-spring-cloud-gateway-filter>
- 全局异常处理: <https://zhuanlan.zhihu.com/p/347028665>
- 全局异常处理: <https://zhuanlan.zhihu.com/p/347028665>
2 changes: 1 addition & 1 deletion docs/high-availability/redundancy.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ category: 高可用

实际上,日常生活中就有非常多的冗余思想的应用。

拿我自己来说,我对于重要文件的保存方法就是冗余思想的应用。我日常所使用的重要文件都会同步一份在 Github 以及个人云盘上,这样就可以保证即使电脑硬盘损坏,我也可以通过 Github 或者个人云盘找回自己的重要文件。
拿我自己来说,我对于重要文件的保存方法就是冗余思想的应用。我日常所使用的重要文件都会同步一份在 GitHub 以及个人云盘上,这样就可以保证即使电脑硬盘损坏,我也可以通过 GitHub 或者个人云盘找回自己的重要文件。

高可用集群(High Availability Cluster,简称 HA Cluster)、同城灾备、异地灾备、同城多活和异地多活是冗余思想在高可用系统设计中最典型的应用。

Expand Down
Loading