• 简化 Go 开发:使用强大的工具提高生产力


    作为 Go 开发人员,应该都知道维持简洁高效开发工作流程的重要性。为了提高工作效率和代码质量,简化开发流程并自动执行重复性任务至关重要。在本文中,我们将探讨一些强大的工具和技术,它们将简化 Go 开发过程,助力您的编码之旅。
     

    Cookiecutter:使用一致的模板快速启动项目

    问题描述

    从头开始创建新的 Go 项目通常涉及设置标准项目结构和配置基本文件。此过程可能非常耗时且容易出错。Cookiecutter 通过允许您创建预先配置了所需项目结构、依赖项和设置的项目模板来提供帮助
     

    要开始使用 Cookiecutter,首先,需要将其安装在您的系统上:

    pip install cookiecutter
    

     

    接下来,在 GitHub 上找到合适的 Go 项目模板或创建自己的模板。例如,您可以使用社区创建的自定义 Cookiecutter Go 模板,该模板提供了基本的 Go 项目结构:

    cookiecutter https://github.com/your-username/golang-cookiecutter
    

     

    Cookiecutter 将提示您输入一些特定于项目的详细信息,例如项目名称、作者和存储库名称。提供信息后,它将创建一个具有所需结构和设置的新项目目录。
     

    自定义模板允许您根据您的特定需求和偏好对其进行定制,从而确保整个团队的项目设置一致。
     

    Air:即时重装,高效开发

    每次更改后等待代码编译和运行可能会减慢您的开发过程。Air 是一款很棒的工具,它提供实时重新加载,让您可以立即看到对 Go 代码所做的更改
     

    要安装 Air,您可以使用go get

    go get -u github.com/cosmtrek/air
    

     

    安装后,在项目目录中创建一个 air.toml 配置文件以指定设置。下面是一个air.toml基本示例:

    # air.toml
    root = "."
    tmp_dir = "tmp"
    build_dir = "tmp/build"
    log_dir = "tmp/log"
    app_port = 8080
    

     

    现在,您可以在项目目录中运行 Air

    air
    

     

    Air 将监测 Go 文件中的任何更改,并在您保存文件时自动重建和重新启动应用程序。这种即时循环反馈可显著加快开发迭代并提高生产力。
     

    Pre-commit Hooks:强制执行代码质量

    保持代码质量对于任何项目都是必不可少的。Pre-commit Hooks 是在每次提交之前运行的脚本,确保您的代码在提交到存储库之前满足特定条件。常见检查包括代码格式设置、检查和运行测试
     

    要使用 Pre-commit Hooks,您需要在系统上安装 Python 和 Git。首先,使用 pip 安装预提交包:

    pip install pre-commit
    

     

    接下来,将文件添加.pre-commit-config.yaml到存储库的根目录,以指定要运行的 Pre-commit Hooks:

    # .pre-commit-config.yaml
    repos:
      - repo: https://github.com/golangci/golangci-lint
        rev: v1.41.1
        hooks:
          - id: golangci-lint
    

     

    在这个例子中,我们使用 golangci-lint hooks 对我们的 Go 文件执行代码检查。
     

    设置配置后,运行以下命令以安装 Pre-commit Hooks:

    pre-commit install
    

     

    现在,每次您尝试提交更改时,Pre-commit Hooks 都会自动运行,检查代码中的任何问题。如果发现任何问题,提交将中止,直到问题得到解决。
     

    自定义 Pre-commit Hooks 存储库:跨项目共享和重用 Hooks

    虽然 Pre-commit Hooks 提供了开箱即用的检查,但您可能希望添加特定于项目的自定义检查。要在多个项目之间共享和重用自定义 Hook,您可以创建一个集中的 Pre-commit Hooks 存储库。
     

    首先,创建一个新的 Git 存储库来存储自定义 Hook。在此存储库中,您可以添加您喜欢的任何语言编写的自定义 Hook 脚本。例如,您可以编写一个简单的 bash 脚本来检查项目中的特定条件。
     

    准备好自定义 Hook 后,将存储库添加到项目.pre-commit-config.yaml

    # .pre-commit-config.yaml
    repos:
      - repo: https://github.com/your-username/custom-pre-commit-hooks
        rev: v1.0.0
        hooks:
          - id: custom-hook
    

     

    现在,当运行pre-commit install时,它将从指定的存储库中获取自定义 Hook,并将其包含在您的提交前检查中。
     

    基于 CLI 的开发:使用自定义命令行界面自动执行任务

    命令行界面 (CLI) 是用于自动执行任务和管理复杂项目的强大工具。Cobra 是一个流行的 Go 库,可帮助您轻松构建强大的交互式 CLI。
     

    要安装 Cobra CLI,请运行:

    go install github.com/spf13/cobra-cli@latest
    

     

    安装后,可以使用 Cobra CLI 生成 Cobra 应用程序和命令文件。它简化了搭建应用程序基架的过程,使将 Cobra 合并到 Go 项目中变得更加容易
     

    要创建新的基于 Cobra 的应用程序,请运行:

    cobra-cli init myapp
    

     

    此命令将生成具有必要文件和结构的基本 Cobra 应用程序。然后,您可以在单独的文件中定义命令及其相应的操作。
     

    例如,要创建 print 问候消息的新命令,可以运行:

    cobra-cli add greeting
    

     

    Cobra CLI 将创建一个具有基本命令结构的新 greeting.go 文件。您可以自定义此文件以实现问候命令的功能。借助 Cobra CLI,您可以快速开发功能丰富的 CLI 应用程序,并自动执行各种任务,从而增强开发工作流程。
     

    结论

    简化 Go 开发对于提高生产力和保持代码质量至关重要。通过集成 Cookiecutter 等工具以实现一致的项目模板、用于即时实时重新加载的 Air、用于代码质量检查的 Pre-commit Hooks、用于共享和重用 Hook 的自定义 Pre-commit Hooks 存储库以及用于构建强大命令行界面的 Cobra CLI,您可以显著简化 Go 开发工作流程。
     

    无论您是开始一个新项目还是优化现有项目,采用这些工具和技术无疑将提高开发效率,并使您的 Go 编码之旅更加愉快。使用这些强大的工具,可以将您的 Go 项目简单和高效提升到一个新的水平。
     

    参考链接:
    https://medium.com/@joloiuy/simplify-go-development-boost-your-productivity-with-powerful-tools-14ad4bc311b3

     

  • 相关阅读:
    clickhouse——clickhouse单节点部署及基础命令介绍
    【Kotlin 协程】协程底层实现 ④ ( 结构化并发 | viewModelScope 作用域示例 )
    ROPgadget初识 ——— ret2syscall
    外贸爬虫系统
    TypeScript精华精讲(接口与泛函)
    深圳再当特区,引爆AI万亿市场;阿里·TTS语音合成模型;美团·AI数据库异常监测系统;面向后端开发者的CS课程;前沿论文 | ShowMeAI资讯日报
    Windows 实时语音转文字|免费语音视频翻译转文字|语音会议记录方案
    jadx 反编译apk
    ASP.NET Core 6框架揭秘实例演示[40]:基于角色的授权
    基于思维进化算法优化BP神经网络(Matlab代码实现)
  • 原文地址:https://www.cnblogs.com/sealio/p/17731962.html