November 2017
Intermediate to advanced
670 pages
17h 35m
English
The directory structure of our application looks like this:
├── downloads├── keys│ └── google-cloud-storage├── pkg│ └── darwin_amd64├── src│ ├── domain│ ├── infrastructure│ ├── interfaces│ ├── usecases│ └── utils└── vendors ├── pkg └── src
The source code for our project is main.go, which lives in the project root. The rest of our application is separated into directories corresponding to our application's architectural layers (domain, use cases, interfaces, and infrastructure).
Before looking into the details of the other layers, let's see how we tie them together. That work is done in our main.go file. We start by initializing our configuration options with GetOptions().