when it use this project layout
This commit is contained in:
parent
4433f4fdf0
commit
dfad3214cd
@ -1,11 +1,11 @@
|
||||
# Standard Go Project Layout
|
||||
|
||||
This is a basic layout for Go application projects. It represents the most common directory structure with a number of small enhancements along with several supporting directories common to any real world application.
|
||||
This is a basic layout for Go application projects. It represents the most common directory structure with a number of small enhancements along with several supporting directories common to any large enough real world application.
|
||||
|
||||
If you are trying to learn Go or if you are building a PoC or a toy project for yourself this project layout is an overkill. Start with something really simple (a single `main.go` file is more than enough). As your project grows keep in mind that it'll be important to make sure your code is well structured otherwise you'll end up with a messy code with lots of hidden dependencies and global state. When you have more people working on the project you'll need even more structure. That's when it's important to introduce a common way to manage packages/libraries. When you have an open source project or when you know other projects import the code from your project repository that's when it's important to have private (aka `internal`) packages and code. Clone the repository, keep what you need and delete everything else! Just because it's there it doesn't mean you have to use it all.
|
||||
|
||||
This project layout is intentionally generic and it doesn't try to impose a specific Go package structure.
|
||||
|
||||
Clone the repository, keep what you need and delete everything else!
|
||||
|
||||
If you need help with naming, formatting and style start by running [`gofmt`](https://golang.org/cmd/gofmt/) and [`golint`](https://github.com/golang/lint). Also make sure to read these Go code style guidelines and recommendations:
|
||||
* https://talks.golang.org/2014/names.slide
|
||||
* https://golang.org/doc/effective_go.html#names
|
||||
|
Loading…
Reference in New Issue
Block a user