> For the complete documentation index, see [llms.txt](https://sallam.gitbook.io/sec-88/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sallam.gitbook.io/sec-88/programming/go.md).

# Go

### Resources

* IDE -> <https://www.jetbrains.com/go/download/>&#x20;
* How to use -> <https://www.jetbrains.com/go/learn/>
* <https://go.dev/doc/> - Official Docs
* <https://quii.gitbook.io/learn-go-with-tests/>&#x20;
* <https://gobyexample.com/> -> Learn go by exaples
* <https://go.dev/tour/welcome/1> -> tour of Go
* <https://github.com/stars/zomasec/lists/allaboutgolang> -> Collection for studying go
* <https://gophercises.com/> -> Practice go&#x20;
* <https://www.youtube.com/playlist?list=PL-s79PvYsn56nex_VS-ms_APNmfDgmc3k> -> youtube Course&#x20;
* <https://github.com/blackhat-go/bhg> -> BlacHatGo Notes
* <https://www.youtube.com/@anthonygg_> -> Antony GG Chanel
* <https://www.programiz.com/golang/getting-started> -> Toturials from programiz&#x20;
* <https://devhints.io/go> -> Go *cheatsheet*

### *Go Commands*

* `go run main.go`  *-> Run a file*
* `go build hello.go`  -> this command should create an executable file with the name *hello*
* `$ go build -ldflags "-w -s"` will reduce the binary size by approximately 30 percent:
* `go doc fmt.Println`  -> The go doc command lets you interrogate documentation about a package, function, method, or variable
* `go get` -> To obtain package source code
* `go get github.com/stacktitan/ldapauth`
* `go fmt` Automatically formats your source code
* `go vet` Attempts to identify issues, some of which might be legitimate bugs, that a compiler might miss
* `golint` reports style mistakes such as missing comments, variable naming that doesn’t follow conventions, useless type specifications, and more
* use the `go test` tool to run unit tests and benchmarks, cover to check for test coverage, imports to fix import statements, and more.
*
