go-organization/README.md

30 lines
1.9 KiB
Markdown
Raw Normal View History

2023-07-19 15:03:27 +03:00
# go-organization
2023-07-24 10:22:51 +03:00
Understand project structure of GO. Go Modules, GOPATH, efficent development environment... This repo contains lots of trash folder/file! Just trying to understand structure with trying lots of unnecessary things too
2023-07-19 15:12:57 +03:00
2023-07-24 09:14:33 +03:00
### Base Resources
2023-07-24 14:22:58 +03:00
| Resource | Explanation | Situation |
2023-07-24 10:22:51 +03:00
| -------- | ----------- | -------------- |
2023-07-24 14:22:58 +03:00
| https://github.com/golang/go/wiki/Modules | ⭐ Up-to-date Explanation/Example of go Modules | 📚 |
| https://go.dev/blog/using-go-modules | Working with modules, versions and dependencies | ✔️ |
| https://github.com/golang-standards/project-layout | ⭐ Unoffical but ready-to-use go project structure | ✅ |
| https://go.dev/doc/code | General overview for writing code in go | ✔️ |
| https://tutorialedge.net/golang/go-project-structure-best-practices/ | a blog about go structure | ✔️ |
| https://www.digitalocean.com/community/tutorials/how-to-use-go-modules | Modules - How to use them | [module-str](simple-structrue/module-str) ✔️ |
| https://www.digitalocean.com/community/tutorials/how-to-write-packages-in-go | Packages - How to use them | [package-str](simple-structure/package-str/) ✔️ |
| https://go.dev/ref/mod | Modules Reference | 📚 |
<details>
<summary>emoji</summary>
⭐ Very useful, use actively<br>
📚 Up to date and very detailed explanations<br>
✔️ Done, has been read<br>
✅ Use actively, ready-to-use
</details>
2023-07-24 06:48:04 +03:00
2023-07-24 09:14:33 +03:00
### FAQ
<details>
2023-07-24 09:24:11 +03:00
<summary><h4>Is there any venv equal for Go language or any virtual environment tool?</h4></summary>
2023-07-24 09:29:15 +03:00
<br><ul><li> No, previously GOPATH was used but now Go Modules are using instead of that. Thanks to Go Modules, go.mod file handles all versions/modules/packages and there is no need for a virtual environment. But if you have to use a virtual environment because of another reason just have a look at <a href="https://github.com/GetStream/vg">this</a> repo
2023-07-24 09:24:11 +03:00
</li></ul>
2023-07-24 09:14:33 +03:00
</details>