Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: 进行一系列改造,简化项目、支持更高级的验证 #145

Merged
merged 8 commits into from
Jul 29, 2024
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
63 changes: 21 additions & 42 deletions .github/workflows/CD.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ on:
push:
branches:
- next
- refactor/deploy
workflow_dispatch:

# 环境变量
Expand All @@ -17,12 +18,21 @@ env:
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}

# 设置 GITHUB_TOKEN 的权限,以允许部署到 GitHub Pages
permissions:
contents: read
pages: write
id-token: write

jobs:
# 部署到Github-Pages
deploy-github:
name: 部署到Github-Pages
if: github.repository == '142vip/JavaScriptCollection'
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
if: github.repository == '142vip/JavaScriptCollection'

steps:
- name: Checkout Code
Expand Down Expand Up @@ -52,43 +62,19 @@ jobs:
run: |
./scripts/ci

# 运行构建脚本
- name: Build VuePress Site
run: |
./scripts/bundle build_proxy

# 将README.md同步,利于github pages分支展示
- name: Add Readme.md To Dist
run: |
cp -f README.md docs/.vuepress/dist
# 编译 打包成dist
- name: Build with VitePress
run: pnpm build:proxy

- name: Check GitHub Pages status
uses: crazy-max/ghaction-github-status@v3
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
pages_threshold: major_outage
path: docs/.vuepress/dist

# 获取Git提交信息
- name: Get Commit Info
id: gitInfo
run: |
echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
echo "author=$(git log -1 --pretty=%an)" >> $GITHUB_OUTPUT
echo "email=$(git log -1 --pretty=%ae)" >> $GITHUB_OUTPUT

# 参考:https://github.com/marketplace/actions/github-pages
- name: Deploy To GitHub Page
uses: crazy-max/ghaction-github-pages@v3
with:
target_branch: pages/github
build_dir: docs/.vuepress/dist
commit_message: |
chore(sync): v${{steps.gitInfo.outputs.version}}

部署地址: https://142vip.github.io/JavaScriptCollection
committer: ${{steps.gitInfo.outputs.author}}<${{steps.gitInfo.outputs.email}}>
author: Mr·Sync
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# 部署
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

# 部署到vercel平台
# deploy-vercel:
Expand Down Expand Up @@ -134,13 +120,6 @@ jobs:
# “最近更新时间” 等 git 日志相关信息,需要拉取全部提交记录
fetch-depth: 0

# ## 打成压缩包
- name: Create Zip Package
run: |
zip -r JavaScriptCollection.zip . \
-x "node_modules/*" \
-x "*.git*"

# 安装PNPM
- name: PNPM Install
uses: pnpm/action-setup@v4
Expand Down
8 changes: 5 additions & 3 deletions .github/workflows/CI.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,11 @@ on:
pull_request:
branches:
- next
- refactor/dev
push:
branches:
- next
- refactor/dev

# 手动触发部署
workflow_dispatch:
Expand Down Expand Up @@ -70,11 +72,11 @@ jobs:

- name: Build Site
run: |
./scripts/bundle build
pnpm build

- name: Build Site With Proxy
run: |
./scripts/bundle build_proxy
pnpm build:proxy

Build-Docker-Image:
name: 构建Docker镜像
Expand Down Expand Up @@ -115,7 +117,7 @@ jobs:
# 构建,支持domain
- name: Build To Dist
run: |
./scripts/bundle build
pnpm build

# 快速构建并推送
- name: Push Docker Image
Expand Down
75 changes: 0 additions & 75 deletions .markdownlint.js

This file was deleted.

6 changes: 0 additions & 6 deletions .markdownlintignore

This file was deleted.

7 changes: 3 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -473,11 +473,9 @@ Nuxt.js是在vue框架上进行封装的,主要是用来解决单体页面的
- [ ] 更了不起的Node.js - 狼书卷1
- [ ] 了不起的Node.js
- [ ] 分布式消息中间件实践
...

### 非技术类

>
> 主要是跟计算机无关的一些书,在看完之后,会选择性的进行思维导图、经典词句整理,也可能添加个人思考

- [ ] 你好孤独 - 陈果
Expand All @@ -489,12 +487,13 @@ Nuxt.js是在vue框架上进行封装的,主要是用来解决单体页面的

<!-- #endregion quick-start -->

[//]: # (宣传内容)
[//]: # '宣传内容'

<!-- #region we-media -->

## 赞赏列表

以下排名不分先后! [传送门→]() **赞赏过的一定要微信跟我说呀!!!!!!**
以下排名不分先后! [传送门→]() **赞赏过的一定要微信跟我说呀!!!!!!**

<div>
<a href="https://github.com/ChiefPing" target="_blank" style="margin: 5px">
Expand Down
2 changes: 1 addition & 1 deletion code/express/apps/apis-demo/Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ express.Router()创建路由器对象时也支持一些额外的参数,查看
- `mergeParams`:保留req.params父路由器的值,布尔类型。如果父级和子级的参数名称有冲突,则子级的值优先。默认false
- `strict`:是否开始严格模式路由,布尔类型。默认false,即:`/test`与`/test/`效果一样

[//]: # (路由器的用途还有很多,不仅支持多种请求类型的接口定义,还能分层管理,后面将单独开一篇详细讲讲,传送门:[路由的使用]&#40;./路由的使用.md&#41;)
[//]: # '路由器的用途还有很多,不仅支持多种请求类型的接口定义,还能分层管理,后面将单独开一篇详细讲讲,传送门:[路由的使用](./路由的使用.md)'

## application对象

Expand Down
4 changes: 2 additions & 2 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# #
# 服务名: JavaScriptCollection
# IP范围: 172.30.0.200
# #
#
version: '2'
services:
JavaScriptCollection:
image: registry.cn-hangzhou.aliyuncs.com/142vip/doc_book:JavaScriptCollection-0.0.1
image: registry.cn-hangzhou.aliyuncs.com/142vip/docs:JavaScriptCollection-0.0.1
container_name: JavaScriptCollection
hostname: JavaScriptCollection
ports:
Expand Down
7 changes: 4 additions & 3 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ features:
link: /wechat-list.html
---

[//]: # (<BiliBili bvid="BV1rd4y1V7tB" />)
[//]: # (<XiGua id="7195198927220834868" />)
[//]: # '<BiliBili bvid="BV1rd4y1V7tB" />'
[//]: # '<XiGua id="7195198927220834868" />'

## 本地浏览【推荐】

Expand Down Expand Up @@ -125,5 +125,6 @@ yarn run dev
- Netlify: <https://js-collection.netlify.app>
- Vercel: <https://js-collection.vercel.app>

[//]: # (自动引入首页)
[//]: # '自动引入首页'

<!-- @include: ../README.md#we-media -->
4 changes: 2 additions & 2 deletions docs/battle-interview/MySQL面试.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ show table status from database where name="tablename"
- 日期类型:`Date`、`DateTime`、`TimeStamp`、`Time`、`Year`
- 其他数据类型:`BINARY`、`VARBINARY`、`ENUM`、`SET`、`Geometry`、`Point`、`MultiPoint`、`LineString`、`MultiLineString`、`Polygon`、`GeometryCollection`等

> BLOB和TEXT有什么区别? **字符串类型是:`SET`、`BLOB`、`ENUM`、`CHAR`、`TEXT`、`VARCHAR`**
> BLOB和TEXT有什么区别? **字符串类型是:`SET`、`BLOB`、`ENUM`、`CHAR`、`TEXT`、`VARCHAR`**

- BLOB是一个二进制对象,可以容纳可变数量的数据。有四种类型的BLOB:TINYBLOB、BLOB、MEDIUMBLO和 LONGBLOB
- TEXT是一个不区分大小写的BLOB。四种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。
Expand Down Expand Up @@ -376,7 +376,7 @@ hash 分发,好处在于说,可以平均分配每个库的数据量和请求

> 为什么要分库?

数据库集群环境后都是多台 slave,基本满足了读取操作; 但是写入或者说大数据、频繁的写入操作对master性能影响就比较大,这个时候,单库并不能解决大规模并发写入的问题,所以就会考虑分库。
数据库集群环境后都是多台 slave,基本满足了读取操作; 但是写入或者说大数据、频繁的写入操作对master性能影响就比较大,这个时候,单库并不能解决大规模并发写入的问题,所以就会考虑分库。

> 分库是什么?

Expand Down
2 changes: 1 addition & 1 deletion docs/battle-interview/Node面试.md
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ function throttle(func, wait) {

> 原理就是:会从middleware数组中取第一个函数开始执行,中间件函数中调用next方法就会去取下一个中间件函数继续执行。
> 每个中间件函数执行完毕后都会返回一个promise对象。
(ps:调用next方法并不是表示当前中间件函数执行完毕了,调用next之后仍可以继续执行其他代码)
> (ps:调用next方法并不是表示当前中间件函数执行完毕了,调用next之后仍可以继续执行其他代码)

参考:<https://zhuanlan.zhihu.com/p/29455788>

Expand Down
8 changes: 4 additions & 4 deletions docs/battle-interview/后端汇总.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ permalink: /battle-interview/end-interview.html

# 后端汇总

[//]: # (```mindmap)
[//]: # (root&#40;思维导图&#41;)
[//]: # ( test)
[//]: # (```)
[//]: # '```mindmap'
[//]: # 'root(思维导图)'
[//]: # ' test'
[//]: # '```'
3 changes: 2 additions & 1 deletion docs/battle-interview/接口幂等.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ permalink: /battle-interview/interface-idempotent.html
## 如何做到幂等

- 有些接口本身就是幂等的,例如:

- 查询接口,在查询数据没有做变更的情况下,查询操作是幂等的
- 删除操作一般会带有待删除数据的唯一标识,最终结果都是删除,也是幂等的

Expand All @@ -69,7 +70,7 @@ permalink: /battle-interview/interface-idempotent.html
- 在执行更新操作的时候,可以先查再决定是否更新,但这因为是非原子操作,所以在分布式系统中会存在问题。
- `多版本控制`,更新操作时增加版本条件进行更新,例如: `update t_xxx set name=? where version< ?`
- `状态机控制`,增加状态字段,状态可能是有先后顺序,例如:订单状态总是从待付款到已付款。
也可能各个状态互相可以转化,例如:与第三方同步数据,同步状态可能从更新待同步直接就变成删除待同步了
也可能各个状态互相可以转化,例如:与第三方同步数据,同步状态可能从更新待同步直接就变成删除待同步了
- `定义去重表`,先在去重表中插入,成功执行后续操作
- `悲观锁`,`select for update`

Expand Down
Loading
Loading