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

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

时间:2023-05-11 13:58:01浏览次数:46  
标签:name 登录 代码 actions v2 uses 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等来快速搭建一个文档网站。关于如何搭建文档可以看看这篇随笔

标签:name,登录,代码,actions,v2,uses,go,轻量级
From: https://www.cnblogs.com/weloe/p/17390824.html

相关文章

  • Golang for循环遍历小坑
    一、for循环循环:让程序多次执行相同的代码块for循环是Go语言中唯一一个循环结构for循环经典语法先执行表达式1执行表达式2判断是否成立,如果成立执行循环体循环体执行完成后,执行表达式3再次执行表达式2,判断是否成立.for循环用的最多的地方就是遍历数组或切片等for表达式1......
  • OpenSeadragon 实战系列dzi图像切割命名规则篇
    序言根据前边的两篇文章,我们已经可以实现图像的显示了。但是现在我们显示的还是由微软软件自动生成的图片,在实际运用中,需要由后端将图片切割,具体切割方式在微软的dzi图片格式说明中也有,地址:https://docs.microsoft.com/en-us/previous-versions/windows/silverlight/dotnet-wi......
  • Go源码阅读——github.com/medcl/esm —— http.go
    esm(AnElasticsearchMigrationTool)——http.gohttps://github.com/medcl/esmrelease:8.7.1通过阅读好的源代码,细致思考,理性分析并借鉴优秀实践经验,提高zuoyang的编程水平,所谓"他山之石,可以攻玉" 该是如此吧。 /*Copyright2016Medcl(mATmedcl.net)Licensed......
  • Delphi 检测密码强度 规则(仿 google)
    一、密码长度:5分:小于等于4个字符10分:5到7字符25分:大于等于8个字符二、字母:0分:没有字母10分:全都是小(大)写字母20分:大小写混合字母三、数字:0分:没有数字10分:1个数字20分:大于等于3个数字四、符号:0分:没有符号10分:1......
  • MongoDB 创建索引
    索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。索引是特殊的数据结构,索引存储......
  • Go语言(Golang)数据库编程
    Go数据库编程一、连接数据库准备连接到数据库要想连接到SQL数据库,首先需要加载目标数据库的驱动,驱动里面包含着于该数据库交互的逻辑。sql.Open()数据库驱动的名称数据源名称得到一个指向sql.DB这个struct的指针sql.DB是用来操作数据库的,它代表了0个或者多个......
  • VS2017登录失败:无法刷新此账户的凭证、无法添加此账户发送请求时出错、评估期已结束,请
    1、启动vs2017,在弹出要登录的窗口之前,迅速的点击工具-》选项-》账户,然后勾选在添加账户或对账户重新进行身份验证时启用设备代码流。2、再次点击登录,弹出如下界面 3、在浏览器中输入图片中的网址,依次按提示操作,输入图片中的代码,直至最后出现下面图片,然后等待VS自动校验登录。......
  • golang在编译测试时使用ldflags动态设置包中变量的值
    Example: mkdir$GOPATH/src/gotest/touchgo_test.go packagegotestimport"testing"vartimestringvarversionstringfuncTestBuild(t*testing.T){t.Log(time)t.Log(version)} ReadMe.txtgotest-ldflags="-X'gotest......
  • NGO-LSTM做数据回归预测,NGO北方苍鹰算法优化LSTM的超参数,预测精度高于LSTM,多输入单输
    NGO-LSTM做数据回归预测,NGO北方苍鹰算法优化LSTM的超参数,预测精度高于LSTM,多输入单输出,单输入单输出,时间序列预测都可以。NGO是2022年最新提出来的优化算法。ID:93150694057105045......
  • expect脚本实现ssh自动登录远程服务器
    使用expect脚本可以实现SSH自动登录远程服务器。下面是一个简单的示例:首先,需要安装expect软件包,可以在Ubuntu或其他Linux发行版中使用以下命令安装:1sudoapt-getupdate2sudoapt-getinstallexpect然后,编写expect脚本,该脚本将模拟SSH连接远程服务器并登......