Git 基本使用

概念

当我们看到 Git 的时候,涌现上来的第一个想法就是 Git 是什么,我们为什么要使用 Git

首先解决一下第一个问题,Git 是什么?

Git 官网上有一段说明: Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. 翻译一下就是说:Git 是一个免费的开源分布式版本控制系统,旨在快速且高效地处理从小型到大型的所有项目。

阅读更多

动手写一个 HTTP 正向代理

概念

首先我们来了解一下 HTTP 代理的相关概念,通常来说,有两类 HTTP 代理,一类是正向代理,一类是反向代理,虽都是代理,但仍有区别。

我们平时使用的 VPN 就是正向代理,我们指定一个服务器,然后通过正向代理去连接这个服务器获取资源

阅读更多

八大排序算法及其代码实现

选择排序

原理

每次选择数组中的最小元素,排在第一个位置

算法步骤

1
2
3
4
5
6
7
8
[38,65,97,76,13,27,49]
13 [65 97 76 38 27 49]
13 27 [97 76 38 65 49]
13 27 38 [76 97 65 49]
13 27 38 49 [97 65 76]
13 27 38 49 65 [97 76]
13 27 38 49 65 76 [97]
13 27 38 49 65 76 97
阅读更多

Snowflake ID 算法

背景

假设我们有一个分布式系统,系统中需要维护全局 id 字段,我们可以把它认为是唯一的标识,不能够重复出现,那么问题来了,我们应该如何生成这样的 id 呢?

其实很容易想到的一种解决方式就是使用 Redis 的键值对了,每次更新的时候直接调用 incr,生成的 id 也是唯一的,还有一种方式就是使用 MySQL 或者其他的数据库,因为我们知道 MySQL 中可以生成自增主键,使用这个主键作为一个分布式 id 也是可行的。

但是上面的这两种方式效率不会特别高,并且依赖于第三方,我们如果想要更高效的生成分布式 id,那么最好的方式就是尽量本地生成,不需要和其他节点进行协商,但是有一个问题出现了,如何保证 id 不重复?,我们可以使用 Snowflake 算法来解决该问题。

阅读更多

如何使用 GitHub Actions 制作定时任务

介绍

GitHub Actions 是官方提供的一套 DevOps 工具,可以完成软件开发周期的任务,比如可以实现自动化测试,部署等,简单来理解,我们认为它给我们提供了一个服务器,在上面可以执行一系列的指令(不过会有一些限制),这就意味着我们可以用来白嫖,比如做定时任务,又不需要自己买服务器。

下面介绍一下如果使用 GitHub Actions 制作一个定时任务,每天定时发布天气情况,当然你学会了之后可以用于签到啊🤭。

阅读更多