#TREE
/_/ (master)
drwxr-xr-x βββ .circleci
-rw-r--r-- β βββ config.yml
drwxr-xr-x βββ api
-rw-r--r-- β βββ .../*.go
-rw-r--r-- β βββ .../*.go
drwxr-xr-x βββ bin
-rw-r--r-x β βββ binary.exec
drwxr-xr-x βββ cmd
drwxr-xr-x β βββ application
-rw-r--r-- β β βββ main.go
-rw-r--r-- β βββ .../*.go
drwxr-xr-x βββ configs
-rw-r--r-- β βββ *.go
-rw-r--r-- β βββ *.yaml
-rw-r--r-- β βββ *.json
drwxr-xr-x βββ docs
-rw-r--r-- β βββ *.xlsx
-rw-r--r-- β βββ *.pdf
-rw-r--r-- β βββ *.doc
-rw-r--r-- β βββ *.yaml
-rw-r--r-- β βββ *.json
drwxr-xr-x βββ internal
-rw-r--r-- β βββ .../*.go
-rw-r--r-- β βββ .../*.go
drwxr-xr-x βββ mocks
-rw-r--r-- β βββ .../*.go
-rw-r--r-- β βββ .../*.go
drwxr-xr-x βββ pb
-rw-r--r-- β βββ .../*.go
-rw-r--r-- β βββ .../*.go
drwxr-xr-x βββ pkg
-rw-r--r-- β βββ .../*.go
-rw-r--r-- β βββ .../*.go
drwxr-xr-x βββ proto
drwxr-xr-x β βββ graphQL
-rw-r--r-- β β βββ .../*.go
drwxr-xr-x β βββ gRPC
-rw-r--r-- β β βββ .../*.go
drwxr-xr-x β βββ protobuf
-rw-r--r-- β β βββ .../*.go
drwxr-xr-x β βββ SOAP
-rw-r--r-- β βββ .../*.go
drwxr-xr-x βββ script
-rw-r--r-- β βββ .../*.sh
-rw-r--r-- β βββ .../*.zsh
-rw-r--r-- β βββ .../*.bash
drwxr-xr-x βββ test
-rw-r--r-- β βββ .../*_test.go
-rw-r--r-- β βββ .../*_test.go
-rw-r--r-- βββ .dockerignore
-rw-r--r-- βββ .gitignore
-rw-r--r-- βββ Dockerfile
-rw-r--r-- βββ go.mod
-rw-r--r-- βββ go.sum
-rw-r--r-- βββ LICENSE
-rw-r--r-- βββ Makefile
-rw-r--r-- βββ README.md
-rw-r--r-- βββ tools.go
#DIRECTORIES:
- .circle: contains all files config of circle CI/CD to run
- cmd: contains all entry points of the application
- configs: stores all the configurations of the application
- docs: all the available documents of the application. (May be use 'Documents' to the same purpose).
- internal: private packages of the project
- pkg: public packages of the project
- local: all the additional things that allow everyone to run your code in the local environment.
- mocks: mocking stuff for unit testing your application
- proto: protobuf definition for your microservices (I used it with the gRPC communication method for my companyβs internal service communication, you can store another contract like jsonschema, graphQL or SOAP contract)
- pb (maybe api): generated code from protobuf
- test: for your microservicesβ integration
#FILES:
- Dockerfile & .dockerignore: containerize your application to make it perfectly easy to be runnable at any present infrastructure.
- .git & .gitignore: git version control is currently the best choice for managing your project.
- Makefile: create an incredibly convenient quick command.
- README.md: definitely the soul of your project.
- tools.go: add your go build tools dependency.