Skip to content

robertsmieja-templates/golang-cli-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

golang-cli-template

Golang CLI project template following best practices

Technology Choices and Reasoning

  • Cobra - Most popular CLI library, pairs well with Viper. Used in large open-source Golang projects (Terraform, Kubernetes, etc).
  • golangci-lint - Most popular liniting tool, that combines several linters.
  • Makefile - Currently the most popular type of build system for Golang projects in open-source
  • PromptUI - CLI library to provide rich interactive prompts.
  • Viper - Most popular configuration library, pairs well with Cobra. Used in large open-source Golang projects (Terraform, Kubernetes, etc).

Potential Improvements

Some of these are due to Golang still being a relatively new language, and will onl

  • Build system - There are several Golang-based build systems attempting to replace Makefiles. It's possible of them becomes the first-choice for building Golang projects instead of Makefiles.
  • Debugging - There are plans to address as part of the language
  • Dependency Management improvements
    • Separation of development dependencies vs production dependencies
    • Better way of installing development tools, like golangci-lint. The current way overwrites a locally installed version
  • Git Hooks - Automatically run formatting + unit tests on commit, as they are fast in Golang

Releases

No releases published

Packages

No packages published