用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等来快速搭建一个文档网站。关于如何搭建文档可以看看这篇随笔

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

  1. Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程实体类映射

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图的数据操作 下一篇:Farseer.net轻量级ORM开源 ...

  2. Farseer.net轻量级ORM开源框架 V1.x 入门篇:表的数据操作

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:表实体类映射 下一篇:Farseer.net轻量级ORM开源框 ...

  3. Farseer.net轻量级ORM开源框架 V1.x 入门篇:新版本说明

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:没有了 下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置 前言 V1.x版本终于到来了.本次 ...

  4. Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图的数据操作

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图实体类映射 下一篇:Farseer.net轻量级ORM开源 ...

  5. Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库上下文

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置文件 下一篇:Farseer.net轻量级ORM开源 ...

  6. Farseer.net轻量级ORM开源框架 V1.x 入门篇:表实体类映射

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库上下文 下一篇:Farseer.net轻量级ORM开源框 ...

  7. Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置文件

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:新版本说明 下一篇:Farseer.net轻量级ORM开源框架 ...

  8. Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程数据操作

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程实体类映射 下一篇:Farseer.net轻量级ORM ...

  9. Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图实体类映射

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:表的数据操作 下一篇:Farseer.net轻量级ORM开源框 ...

  10. HTML5实战教程———开发一个简单漂亮的登录页面

    最近看过几个基于HTML5开发的移动应用,比如臭名昭著的12036移动客户端就是主要使用HTML5来实现的,虽然还是有点反应迟钝,但已经比较流畅了,相信随着智能手机的配置越来越高性能越来越好,会越来越 ...

随机推荐

  1. Mysql用户及其权限

    一.创建用户 create user 'user_name' identified by 'password'; 二.用户授权 grant [权限名] on 数据库名.表名 to user_name ...

  2. 2.面向对象基础-03Java数组

    一.数组的创建和初始化 (一)创建数组: import java.util.*; import java.io.*; public class Main { public static void ma ...

  3. 03-Spring使用注解方式注入

    基于注解的DI注入 1.导包 环境搭建:导入aop包(spring-aop-4.1.6.RELEASE.jar) 2.创建类 3. 创建spring.xml配置文件(必须在src目录下) 该配置文件与 ...

  4. Static详细讲解

    Static详细讲解 package com.andy.base.oop.demo01.demo07; import sun.dc.path.PathError; public class Perso ...

  5. 【LeetCode回溯算法#08】递增子序列,巩固回溯算法中的去重问题

    递增子序列 力扣题目链接(opens new window) 给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2. 示例 1: 输入:nums = [4,6,7,7] ...

  6. java顺序结构

    java顺序结构 java的基本结构就是顺序结构,一句一句执行 package charpter2; public class ShunXu { public static void main(Str ...

  7. 集成-AgileConfig基于.NetCore的一个轻量级配置中心

    微服务确实是行业的一个趋势,我自己也在把一些项目往微服务架构迁移.玩微服务架构配置中心是一个绕不过去的东西,有很多大牌的可以选,比如spring-cloud-config,apoll,disconf等 ...

  8. Pause Giant AI Experiments: An Open Letter(暂停大型人工智能实验: 一封公开信)

    Pause Giant AI Experiments: An Open Letter(暂停大型人工智能实验: 一封公开信) 前几天在 futureoflife 网站上有一封公开信,呼吁暂停大型人工智能 ...

  9. mac上传文件到obs需要配置的环境

    本篇主要是使用mac对华为云 对象存储服务OBS 上传的一些说明. 配置环境 华为云obsutil下载地址 下载后得到.tar.gz格式的文件 解压 tar -xzvf xx.tar.gz 进入obs ...

  10. 这个小项目,上周被国外 AI 新闻网站报道,前些天又上了 github 热榜

    疫情期间在校花了几个月时间,写了这个小项目,是关于音频特征提取和分析的,自己是 AI 专业研究音频的,但受限于对音频特征的理解,做研究时总感觉缺乏"底料",所以当做是学习练手做了这 ...