用go設計開發一個自己的輕量級登入庫/框架吧(專案維護篇)

秋玻發表於2023-05-11

用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等來快速搭建一個文件網站。關於如何搭建文件可以看看這篇隨筆

相關文章