Skip to content

monorepo to play and test GO concepts and frameworks

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE.md
Unknown
license.png
Notifications You must be signed in to change notification settings

TheBigBadWolfClub/go-lab

Repository files navigation

Go Lab

GoLang Monorepo and Multi-module for project(s), lib(s) && playground.


Howls

The center of a wolf's universe is its pack, and howling is the glue that keeps the pack together.

Some Golang projects, to train/test golang skills

  • cartomancy : simple card deck API to play around with slices

  • clean-arch : an implementation of Clean Architecture in Golang

  • cqrs : an implementation of CQRS Architecture pattern in Golang

  • dinner-reservation : simple dinner reservation app (kind of TODO List)

  • Gof4 : implementation of some Gang of four patterns in Golang

  • net-scanner : play with net package (simple tcp port scanner)

  • telemetry : test opentelemetry with a simple dice roller app


Spells

spell /spɛl/ spells
a form of words used as a magical charm or incantation.
"a spell is laid on the door to prevent entry"

Set of tools and private libs to group common functionality required on more than one project.

  • config : a configuration file loader for golang apps

  • data-structures : implementation of data structures and algorithms to operate on those structures

  • foundation : some common code, ... ?? keep or delete ??

  • wolflog : a go/log wrapper, with extra functionality


Riddles

riddle /ˈrɪd(ə)l/ riddles
a question or statement intentionally phrased so as to require ingenuity in ascertaining its answer or meaning.
"they started asking riddles and telling jokes"

Small unrelated pieces of GO code, to clarify, make proven of or deepen the knowledge in GO


Module management

create

# create new module
# example create a module named "foo" under spells
> mkdir spells/foo
> cd spells/foo
> go mod init github.com/TheBigBadWolfClub/go-lab/spells/foo
 

release

# release version v0.0.1 of spells/foo
> git tag spells/foo/v0.0.1
> git push origin --tags

Source maintenance

linting

# install
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest

# help
golangci-lint help linters

# run
golangci-lint run ./...

GO Project Layout

Folders

Much more information (and more standard folders) can be found here: golang-standards/project-layout

  • build - Packaging and Continuous Integration. (See link above!)
  • cmd - Main applications for this project, the folder should match the name of the executable.
  • internal - Private application and library code. This is the code you don't want others importing in their applications or libraries. Note that this layout pattern is enforced by the Go compiler itself.
  • pkg - Library code that's ok to use by external applications. Other projects will import these libraries expecting them to work, so think twice before you put something here.
  • scripts - Scripts to perform various build, install, analysis, etc operations. These scripts keep the root level Makefile small and simple.

Versioning

(This is a TL;DR version of this: https://blog.golang.org/publishing-go-modules#TOC_3.)

License information

WTFPL

This projects uses the WTFPL license (Do What The Fuck You Want To Public License)

About

monorepo to play and test GO concepts and frameworks

Topics

Resources

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE.md
Unknown
license.png

Stars

Watchers

Forks

Packages

No packages published