用go设计开发一个自己的轻量级登录库/框架吧(项目维护篇)

用go设计开发一个自己的轻量级登录库/框架吧(项目维护篇)

本篇将开始讲讲开发库/框架的最开始阶段,也就是搭建一个项目

源码:weloe/token-go: a light login library (github.com)

项目结构

项目结构,不是上一篇所说的代码架构,而是分包,明确的分包更有助于我们的开发。本框架分包如下

├─.github
│  └─workflows GitHub工作流
├─auth	权限管理
├─config	配置
├─constant	常量
├─ctx	web上下文
│  └─go-http-context
├─error	
├─examples	使用示例
├─log	日志
├─model	模型
├─persist	持久层
└─util 工具包

代码托管以及自动化测试

我们选择使用GitHub进行代码托管,同时也使用GitHub Actions进行代码自动化测试。运行测试代码以及使用lint检查代码规范。

token-go/go.yml at master · weloe/token-go · GitHub

name: Go-Build-Test

on: [push, pull_request]

jobs:

  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        go: [ '1.18', '1.19', '1.20' ]
    steps:
      - uses: actions/checkout@v2

      - name: Set up Go
        uses: actions/setup-go@v2
        with:
          go-version: ${{ matrix.go }}

      - name: Run go test
        run: go test -v ./...

  benchmark:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        go: [ '1.18' ]
    steps:
      - uses: actions/checkout@v2

      - name: Set up Go
        uses: actions/setup-go@v2
        with:
          go-version: ${{ matrix.go }}

      - name: Run go test bench
        run: go test -bench=.

  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - name: Set up Go
        uses: actions/setup-go@v2
        with:
          go-version: '1.20'

      - name: golangci-lint
        uses: golangci/golangci-lint-action@v3
        with:
          version: v1.51

测试

在进行代码开发的同时,我们也应该进行代码测试用例的编写,提高代码测试覆盖率,确保我们的代码的健壮性。

文档

文档可以说是一个开源库/框架必不可少的东西,我们开始学习一个开源库/框架也往往是从文档开始。我们可以使用Docsify,Vuepress等来快速搭建一个文档网站。关于如何搭建文档可以看看这篇随笔

热门相关:骑士归来   夫人,你马甲又掉了!   夫人你马甲又掉了   名门天后:重生国民千金   夫人,你马甲又掉了!