{"id":63040,"url":"https://github.com/Gitart/GO-SIMPLE","name":"GO-SIMPLE","description":"These are simple examples for useful daily use in your projects.","projects_count":322,"last_synced_at":"2026-04-16T02:00:22.071Z","repository":{"id":21559904,"uuid":"24879663","full_name":"Gitart/GO-SIMPLE","owner":"Gitart","description":"These are simple examples for useful daily use in your projects.","archived":false,"fork":false,"pushed_at":"2025-06-04T14:42:44.000Z","size":4781,"stargazers_count":26,"open_issues_count":2,"forks_count":11,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-04-07T14:09:52.072Z","etag":null,"topics":["awesome","awesome-list","go","golang","tutorial"],"latest_commit_sha":null,"homepage":"https://www.arttech.inf.ua","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Gitart.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"security/password.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-10-07T06:43:18.000Z","updated_at":"2026-03-23T06:05:21.000Z","dependencies_parsed_at":"2024-06-18T08:55:47.933Z","dependency_job_id":"f90227af-6f31-4785-a499-fadb134ec744","html_url":"https://github.com/Gitart/GO-SIMPLE","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Gitart/GO-SIMPLE","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gitart%2FGO-SIMPLE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gitart%2FGO-SIMPLE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gitart%2FGO-SIMPLE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gitart%2FGO-SIMPLE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Gitart","download_url":"https://codeload.github.com/Gitart/GO-SIMPLE/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gitart%2FGO-SIMPLE/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31867712,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"online","status_checked_at":"2026-04-16T02:00:06.042Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"readme":"\n # 💎 GO SIMPLE SAMPLES\n![изображение](https://user-images.githubusercontent.com/3950155/185607076-18fcc1fc-5a6e-4261-8e1f-28df4ce0bc57.png)\n\n![image](https://user-images.githubusercontent.com/3950155/194109961-c0e6e1d2-8666-495d-8a38-efb4cb3c1b31.png)\n\n[![pages-build-deployment](https://github.com/Gitart/GO-SIMPLE/actions/workflows/pages/pages-build-deployment/badge.svg)](https://github.com/Gitart/GO-SIMPLE/actions/workflows/pages/pages-build-deployment)\n\n\nSamples for go language  \nПримеры использования языка GO \n\n## 👌 Go Full \nhttps://dasarpemrogramangolang.novalagung.com/5-go-command.html  \nhttps://www.golinuxcloud.com/golang-encrypt-decrypt/  \n\n\n## 👍  Other samples\nhttps://www.golangprograms.com\nhttps://golangexample.com\nhttps://www.geeksforgeeks.org/atomic-variable-in-golang       \nhttps://www.educba.com/golang-atomic    \nhttps://golangdocs.com/atomic-operations-in-golang-atomic-package    \nhttps://www.geeksforgeeks.org/variadic-functions-in-go/\n\n## 👍  Golang samples\nhttps://github.com/golang/go/wiki#using-the-go-toolchain\n\n## 📘 Library\nhttps://github.com/golang/go/wiki/Projects          \nhttps://libs.garden/go/protocols?page=3               \nhttps://astaxie.gitbooks.io/build-web-application-with-golang/content/en/08.4.html                          \n\n**Task** — это средство запуска/сборки задач, которое должно быть проще и удобнее в использовании, чем, например, GNU Make.\nhttps://github.com/go-task/task           \nhttps://taskfile.dev/usage/   \n\n**Nosql DB Rose**  \nhttps://github.com/flower-corp/rosedb         \n\n**Tengo** — это небольшой, динамичный, быстрый и безопасный язык сценариев для Go.\nhttps://github.com/d5/tengo            \n\nОбфусцируйте код Go, обернув цепочку инструментов Go. Требуется Go 1.18 или новее.        \nhttps://github.com/burrowers/garble              \n\n**HTTPLoot** — Go-инструмент для исследования безопасности веб-приложений. Позволяет автоматически сканировать, определять технический стек, заполнять формы, извлекать секреты из страниц ошибок/отладки и JavaScript-кода сайтов.\nИнструмент разработан командой RedHunt Labs. Свою результативность он уже доказал, найдя 1 676 634 секретов в результате двух этапов глубокого тестирования.            \n\n\n## 🔄 Description other oportunity\nhttps://checkmarx.gitbooks.io/go-scp/content/output-encoding/cross-site-scripting.html\n\n## 🥇 Samples   \nhttps://www.youtube.com/watch?v=53WkeeUVoTY  \nhttps://github.com/Rhymond/go-money  \nhttps://golang.org/doc/effective_go.html#init   \nhttp://www.golangbootcamp.com/book/interfaces    \nhttps://nanxiao.gitbooks.io/golang-101-hacks/content/posts/range.html   \nhttps://gobyexample.com/timers   \nhttp://golangtutorials.blogspot.com/2011/06/channels-in-go.html   \nhttp://guzalexander.com/2013/12/06/golang-channels-tutorial.html   \nhttps://gobyexample.com/non-blocking-channel-operations   \nhttps://medium.com/golangspec/range-over-channels-in-go-3d45dd825d2a   \nhttps://www.dotnetperls.com/chan-go    \nhttp://openmymind.net/Introduction-To-Go-Channels/  \nhttps://mmcgrana.github.io/2012/09/go-by-example-timers-and-tickers.html  \nhttp://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/   \nhttps://nanxiao.gitbooks.io/golang-101-hacks/content/posts/unbuffered-and-buffered-channels.html  \nhttps://www.golangprograms.com/go-slice-map-filter.html   \nhttps://www.golangprograms.com/go-language/slices-in-golang-programming.html\nhttps://www.golangprograms.com/remove-duplicate-values-from-slice.html    \nhttps://www.golangprograms.com/go-language/channels.html\nhttps://learningprogramming.net/golang/gorm/fetch-data-using-many-to-many-relationship-in-gorm/\nhttps://gosamples.dev/string-byte-slice/\nhttps://www.newthinktank.com/2015/02/go-programming-tutorial/  \nhttps://riptutorial.com/go/example/13468/logging-to-syslog   \nhttps://yourbasic.org/golang/    \nhttps://www.geeksforgeeks.org/data-types-in-go/   \nhttps://golangbot.com/custom-errors/   \nhttps://www.cosmiclearn.com/go/functions.php   \nhttps://aahansingh.com/data-structures-with-go-a1894b001940  \nhttps://www.techieindoor.com/golang-tutorial/  \nhttps://www.geeksforgeeks.org/golang-program-that-uses-func-with-variable-argument-list/    \nhttps://riptutorial.com/go/example/27479/how-to-encode-data-and-write-to-file-with-gob-   \nhttps://blog.carlmjohnson.net/post/2016-11-27-how-to-use-go-generate/    \nhttp://fabien-d.github.io/alertify.js/\nhttps://alertifyjs.com/\nhttp://wisembly.github.io/basil.js/\n\n## 🌏 Frameworks \nhttps://entgo.io/docs/crud/    \n\n\n# 🧑 Blogs \n* ## English   \n* [Go](https://github.com/golang/go)\n* [The official Go Blog](https://go.dev/blog) - For in depth posts by the Go team\n* [Gopher Academy Blog](http://blog.gopheracademy.com/)\n* [Dave Cheney's Blog](http://dave.cheney.net)\n* [Dave Cheney's Resources for Go Programmers](http://dave.cheney.net/resources-for-new-go-programmers)\n* [spf13's Blog](http://spf13.com/post/)\n* [Mat Ryer's Medium Blog](https://medium.com/@matryer)\n* [Matt Aimonetti's Blog](http://matt.aimonetti.net/)\n* [Marcio.io](http://marcio.io/)\n* [Carlos Becker's Blog](http://carlosbecker.com/)\n* [Ardan Labs](https://www.ardanlabs.com/blog/)\n* [The Golang Weekly](http://golangweekly.com/)\n* [Alex Edward's Go Posts](http://www.alexedwards.net/blog/category/golang)\n* [GoLang Tutorials](http://golangtutorials.blogspot.com/)\n* [Mathias Lafeldt's Blog](https://mlafeldt.github.io/)\n* [Marcelo Magallon's Blog](http://blog.ksub.org/bytes/)\n* [Mina Andrawos's Go Posts](http://www.minaandrawos.com/category/golang-2/)\n* [Aliaksandr Pliutau's Blog](http://pliutau.com/)\n* [Johan Brandhorst's Blog](https://jbrandhorst.com)\n* [Christoph Berger's Applied Go Blog](https://appliedgo.net)\n* [Jon Calhoun's Blog](https://www.calhoun.io/)\n* [Inanc Gumus's Learn Go Programming Blog](https://blog.learngoprogramming.com)\n* [Elliot Forbes - TutorialEdge.net Go Tutorials](https://tutorialedge.net/course/golang/)\n* [Timo Savola's Go Posts](http://savo.la/go)\n* [Packt Hub](https://hub.packtpub.com/)\n* [GoCenter Community Blog](https://jfrog.com/resource-center/?src=gocenter) - Blogs from GoCenter.io about Go modules and community.\n* [Basic](https://yourbasic.org/golang/append-explained/)\n\n\n# 💡 Go - Awesome Tutorial\n*   [Go pattern](https://github.com/tmrts/go-patterns)\n*   [Go wit test](https://github.com/quii/learn-go-with-tests)\n*   [Go Traning](https://github.com/ardanlabs/gotraining)\n*   [A Huge Number of Go Examples, Exercises and Quizzes](https://github.com/inancgumus/learngo)\n*   [Learn Go \u0026 Quez](https://github.com/inancgumus/learngo)\n*   [Epi](https://github.com/mrekucci/epi)\n*   [Project layout](https://github.com/golang-standards/project-layout)\n*   [Go Awesome](https://github.com/avelino/awesome-go)\n*   [Socket loop](https://socketloop.com/tutorials/read-parse-xml-file-go)\n*   [50 Shades of Go](http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/index.html)\n*   [A Tour of Go](https://tour.golang.org/welcome/1)\n*   [Go Bootcamp](http://www.golangbootcamp.com/book)\n*   [Go by Example](https://gobyexample.com/)\n*   [Go Programming Language: An Introductory Golang Tutorial](https://www.toptal.com/go/go-programming-a-step-by-step-introductory-tutorial)\n*   [Go Resources](http://www.golang-book.com/)\n*   [Go Tutorial](https://www.tutorialspoint.com/go/)\n*   [Go Web Examples](https://gowebexamples.com/)\n*   [Golang Basic](http://www.golangprograms.com/advance-programs.html)\n*   [Golang Code](https://golangcode.com/)\n*   [Golang tutorial for beginners](https://golangbot.com/)\n*   [Golang Tutorials](http://golangtutorials.blogspot.com/2011/05/table-of-contents.html)\n*   [Gophercises](https://gophercises.com/)\n*   [Learning Go](https://miek.nl/go/)\n*   [Learning Go tutorial](https://blog.learngoprogramming.com/)\n*   [Master Go](https://appliedgo.com/p/mastergo/)\n\n# Go - 💡 Awesome Tutorial Part 2\n\n*   [50 Shades of Go](http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/index.html)\n*   [A Tour of Go](https://tour.golang.org/welcome/1)\n*   [Go Bootcamp](http://www.golangbootcamp.com/book)\n*   [Go by Example](https://gobyexample.com/)\n*   [Go Programming Language: An Introductory Golang Tutorial](https://www.toptal.com/go/go-programming-a-step-by-step-introductory-tutorial)\n*   [Go Resources](http://www.golang-book.com/)\n*   [Go Tutorial](https://www.tutorialspoint.com/go/)\n*   [Go Web Examples](https://gowebexamples.com/)\n*   [Golang Basic](http://www.golangprograms.com/advance-programs.html)\n*   [Golang Code](https://golangcode.com/)\n*   [Golang tutorial for beginners](https://golangbot.com/)\n*   [Golang Tutorials](http://golangtutorials.blogspot.com/2011/05/table-of-contents.html)\n*   [Gophercises](https://gophercises.com/)\n*   [Learning Go](https://miek.nl/go/)\n*   [Learning Go tutorial](https://blog.learngoprogramming.com/)\n*   [Master Go](https://appliedgo.com/p/mastergo/)\n\n## 🏖️  Req Expr\nhttps://yourbasic.org/golang/regexp-cheat-sheet/\n[Limit exec program](https://golangify.com/code-timeout)\n\n\n## 🍬 Samples for learning\n*   [https://gobyexample.com/channels](https://gobyexample.com/channels)\n*   [https://tour.golang.org/concurrency/2](https://tour.golang.org/concurrency/2)\n*   [http://guzalexander.com/2013/12/06/golang-channels-tutorial.html](http://guzalexander.com/2013/12/06/golang-channels-tutorial.html)\n*   [https://www.golang-book.com/books/intro/10](https://www.golang-book.com/books/intro/10)\n*   [https://www.goinggo.net/2014/02/the-nature-of-channels-in-go.html](https://www.goinggo.net/2014/02/the-nature-of-channels-in-go.html)\n*   [Goroutines vs Green threads (Сравнение гоурутин и «зеленых» потоков)](https://softwareengineering.stackexchange.com/questions/222642/are-go-langs-goroutine-pools-just-green-threads)\n\n## 🧮 Other samples\nhttps://golangify.com/today-date   \nhttps://yourbasic.org/golang/days-between-dates/  \nhttps://play.golang.org/p/63p-T9uFcZo   \n\n## ⏰ Days between two date\nhttps://golang-blog.blogspot.com/2020/04/number-of-days-between-dates-in-golang.html  \nhttps://golangify.com/today-date  \nhttps://golangify.com/difference-dates-sub-since-until  \nhttps://www.geeksforgeeks.org/how-to-compare-times-in-golang/   \n\n## 🐱‍🏍 Work with date  \nhttps://www.programmersought.com/article/5604990010/  \nhttps://yourbasic.org/golang/days-between-dates/  \nhttps://www.socketloop.com/tutorials/golang-how-to-check-if-a-date-is-within-certain-range  \nhttps://www.tutorialspoint.com/barefoot_skiing/barefoot_skiing_starting_the_race.htm  \nhttps://yourbasic.org/golang/create-error/ \n\n## 📆 Parsing Date   \nhttps://tutorialedge.net/golang/snippets/parsing-date-strings-in-go/  \n\n## 🐱‍💻 Templates \nhttps://gowebexamples.com/templates/  \n\n## 🎶 Paterns  \nhttps://refactoring.guru/ru/design-patterns/go  \nhttps://golangbyexample.com/add-or-subtract-to-time-go/   \n\n## 🏈 Push server\nhttps://github.com/sharewind/push-server/tree/v3/broker\n\n## 💖  Sample\nhttps://play.golang.org/p/M972dltae2   \nhttps://play.golang.org/p/7M14RbGvU8   \nhttps://play.golang.org/p/vLIKNdSrpU   \nhttps://play.golang.org/p/1GVI37tisG \n\n##🥽 Monitoring\nhttps://github.com/wgliang/goappmonitor\n\n## 🍬 Go routine\nhttps://go.dev/play/p/MSmQSaT02Fc \n\n## 🥟 Sublime setting \nhttps://www.alexedwards.net/blog/streamline-your-sublime-text-and-go-workflow\n\n\n## 😎 Tutorial Series: How To Code in Go\nGo (or GoLang) is a modern programming language originally developed by Google that uses high-level syntax similar to scripting languages. It is popular for its minimal syntax and innovative handling of concurrency, as well as for the tools it provides for building native binaries on foreign platforms.\n\n\n## 🥧 Browse Series: 52 articles\n*   [1/52 How To Code in Go eBook](https://www.digitalocean.com/community/books/how-to-code-in-go-ebook)\n*   [2/52 How To Install Go and Set Up a Local Programming Environment on Ubuntu 18.04](https://www.digitalocean.com/community/tutorials/how-to-install-go-and-set-up-a-local-programming-environment-on-ubuntu-18-04)\n*   [3/52 How To Install Go and Set Up a Local Programming Environment on macOS](https://www.digitalocean.com/community/tutorials/how-to-install-go-and-set-up-a-local-programming-environment-on-macos)\n*   [4/52 How To Install Go and Set Up a Local Programming Environment on Windows 10](https://www.digitalocean.com/community/tutorials/how-to-install-go-and-set-up-a-local-programming-environment-on-windows-10)\n*   [5/52 How To Write Your First Program in Go](https://www.digitalocean.com/community/tutorials/how-to-write-your-first-program-in-go)\n*   [6/52 Understanding the GOPATH](https://www.digitalocean.com/community/tutorials/understanding-the-gopath)\n*   [7/52 How To Write Comments in Go](https://www.digitalocean.com/community/tutorials/how-to-write-comments-in-go)\n*   [8/52 Understanding Data Types in Go](https://www.digitalocean.com/community/tutorials/understanding-data-types-in-go)\n*   [9/52 An Introduction to Working with Strings in Go](https://www.digitalocean.com/community/tutorials/an-introduction-to-working-with-strings-in-go)\n*   [10/52 How To Format Strings in Go](https://www.digitalocean.com/community/tutorials/how-to-format-strings-in-go)\n*   [11/52 An Introduction to the Strings Package in Go](https://www.digitalocean.com/community/tutorials/an-introduction-to-the-strings-package-in-go)\n*   [12/52 How To Use Variables and Constants in Go](https://www.digitalocean.com/community/tutorials/how-to-use-variables-and-constants-in-go)\n*   [13/52 How To Convert Data Types in Go](https://www.digitalocean.com/community/tutorials/how-to-convert-data-types-in-go)\n*   [14/52 How To Do Math in Go with Operators](https://www.digitalocean.com/community/tutorials/how-to-do-math-in-go-with-operators)\n*   [15/52 Understanding Boolean Logic in Go](https://www.digitalocean.com/community/tutorials/understanding-boolean-logic-in-go)\n*   [16/52 Understanding Maps in Go](https://www.digitalocean.com/community/tutorials/understanding-maps-in-go)\n*   [17/52 Understanding Arrays and Slices in Go](https://www.digitalocean.com/community/tutorials/understanding-arrays-and-slices-in-go)\n*   [18/52 Handling Errors in Go](https://www.digitalocean.com/community/tutorials/handling-errors-in-go)\n*   [19/52 Creating Custom Errors in Go](https://www.digitalocean.com/community/tutorials/creating-custom-errors-in-go)\n*   [20/52 Handling Panics in Go](https://www.digitalocean.com/community/tutorials/handling-panics-in-go)\n*   [21/52 Importing Packages in Go](https://www.digitalocean.com/community/tutorials/importing-packages-in-go)\n*   [22/52 How To Write Packages in Go](https://www.digitalocean.com/community/tutorials/how-to-write-packages-in-go)\n*   [23/52 Understanding Package Visibility in Go](https://www.digitalocean.com/community/tutorials/understanding-package-visibility-in-go)\n*   [24/52 How To Write Conditional Statements in Go](https://www.digitalocean.com/community/tutorials/how-to-write-conditional-statements-in-go)\n*   [25/52 How To Write Switch Statements in Go](https://www.digitalocean.com/community/tutorials/how-to-write-switch-statements-in-go)\n*   [26/52 How To Construct For Loops in Go](https://www.digitalocean.com/community/tutorials/how-to-construct-for-loops-in-go)\n*   [27/52 Using Break and Continue Statements When Working with Loops in Go](https://www.digitalocean.com/community/tutorials/using-break-and-continue-statements-when-working-with-loops-in-go)\n*   [28/52 How To Define and Call Functions in Go](https://www.digitalocean.com/community/tutorials/how-to-define-and-call-functions-in-go)\n*   [29/52 How To Use Variadic Functions in Go](https://www.digitalocean.com/community/tutorials/how-to-use-variadic-functions-in-go)\n*   [30/52 Understanding defer in Go](https://www.digitalocean.com/community/tutorials/understanding-defer-in-go)\n*   [31/52 Understanding init in Go](https://www.digitalocean.com/community/tutorials/understanding-init-in-go)\n*   [32/52 Customizing Go Binaries with Build Tags](https://www.digitalocean.com/community/tutorials/customizing-go-binaries-with-build-tags)\n*   [33/52 Understanding Pointers in Go](https://www.digitalocean.com/community/conceptual_articles/understanding-pointers-in-go)\n*   [34/52 Defining Structs in Go](https://www.digitalocean.com/community/tutorials/defining-structs-in-go)\n*   [35/52 Defining Methods in Go](https://www.digitalocean.com/community/tutorials/defining-methods-in-go)\n*   [36/52 How To Build and Install Go Programs](https://www.digitalocean.com/community/tutorials/how-to-build-and-install-go-programs)\n*   [37/52 How To Use Struct Tags in Go](https://www.digitalocean.com/community/tutorials/how-to-use-struct-tags-in-go)\n*   [38/52 How To Use Interfaces in Go](https://www.digitalocean.com/community/tutorials/how-to-use-interfaces-in-go)\n*   [39/52 Building Go Applications for Different Operating Systems and Architectures](https://www.digitalocean.com/community/tutorials/building-go-applications-for-different-operating-systems-and-architectures)\n*   [40/52 Using ldflags to Set Version Information for Go Applications](https://www.digitalocean.com/community/tutorials/using-ldflags-to-set-version-information-for-go-applications)\n*   [41/52 How To Use the Flag Package in Go](https://www.digitalocean.com/community/tutorials/how-to-use-the-flag-package-in-go)\n*   [42/52 How to Use Go Modules](https://www.digitalocean.com/community/tutorials/how-to-use-go-modules)\n*   [43/52 How to Distribute Go Modules](https://www.digitalocean.com/community/tutorials/how-to-distribute-go-modules)\n*   [44/52 How to Use a Private Go Module in Your Own Project](https://www.digitalocean.com/community/tutorials/how-to-use-a-private-go-module-in-your-own-project)\n*   [45/52 How To Run Multiple Functions Concurrently in Go](https://www.digitalocean.com/community/tutorials/how-to-run-multiple-functions-concurrently-in-go)\n*   [46/52 How to Add Extra Information to Errors in Go](https://www.digitalocean.com/community/tutorials/how-to-add-extra-information-to-errors-in-go)\n*   [47/52 How To Use Dates and Times in Go](https://www.digitalocean.com/community/tutorials/how-to-use-dates-and-times-in-go)\n*   [48/52 How To Use Contexts in Go](https://www.digitalocean.com/community/tutorials/how-to-use-contexts-in-go)\n*   [49/52 How To Use JSON in Go](https://www.digitalocean.com/community/tutorials/how-to-use-json-in-go)\n*   [50/52 How To Make an HTTP Server in Go](https://www.digitalocean.com/community/tutorials/how-to-make-an-http-server-in-go)\n*   [51/52 How To Make HTTP Requests in Go](https://www.digitalocean.com/community/tutorials/how-to-make-http-requests-in-go)\n*   [52/52 How To Use Generics in Go](https://www.digitalocean.com/community/tutorials/how-to-use-generics-in-go)\n\n\n\n\n| Repository | Stars | Converts `byte != 0` to `bool`? |\n| --- | --: | --- |\n| [golang/go](https://github.com/golang/go) | 19,683 | No |\n| [hybridgroup/gobot](https://github.com/hybridgroup/gobot) | 2,278 | [Yes](https://sourcegraph.com/github.com/hybridgroup/gobot@fe057ba6bf2b3061f440f82f6231e3ca9493cbdd/-/info/GoPackage/github.com/hybridgroup/gobot/platforms/bebop/client/-/bool2int8) |\n| [streadway/amqp](https://github.com/streadway/amqp) | 933 | [Yes](https://sourcegraph.com/github.com/streadway/amqp/-/blob/read.go#L174-179) |\n| [vishvananda/netlink](https://github.com/vishvananda/netlink) | 216 | No |\n| [GoBelieveIO/im\\_service](https://github.com/GoBelieveIO/im_service) | 170 | No |\n| [zeromq/zproto](https://github.com/zeromq/zproto) | 114 | No |\n| [istreamdata/orientgo](https://github.com/istreamdata/orientgo) | 98 | [Yes](https://sourcegraph.com/gopkg.in/istreamdata/orientgo.v2/-/blob/obinary/rw/reader.go#L124-129) |\n| [mitchellh/go-vnc](https://github.com/mitchellh/go-vnc) | 93 | [Yes](https://sourcegraph.com/github.com/mitchellh/go-vnc/-/blob/client.go#L169-181) |\n\n\n## 🚩 Useful library\n\n*   Быстрый HTTP сервер с использованием [valyala/fasthttp](https://github.com/valyala/fasthttp)\n*   Парсинг User-Agent через [mssola/user\\_agent](https://github.com/mssola/user_agent)\n*   Взаимодействие с GeoIP через [oschwald/geoip2-golang](https://github.com/oschwald/geoip2-golang)\n*   Быстрый - замена стандартному парсеру  github.com/json-iterator/go\n*   [Firmata](https://github.com/firmata/protocol), как протокол для взаимодействия с ESP8266\n*   [Gobot](https://github.com/hybridgroup/gobot), как фреймворк для работы с Firmata\n\n## [README](https://github.com/VyacheslavGoryunov/remote-relay-gobot/tree/master/firmware/test#readme)\n\nThis directory is intended for PlatformIO Unit Testing and project tests.\n\nUnit Testing is a software testing method by which individual units of\nsource code, sets of one or more MCU program modules together with associated\ncontrol data, usage procedures, and operating procedures, are tested to\ndetermine whether they are fit for use. Unit testing finds problems early\nin the development cycle.\n\nMore information about PlatformIO Unit Testing:\n- [https://docs.platformio.org/page/plus/unit-testing.html](https://docs.platformio.org/page/plus/unit-testing.html)\n\n\nAn overview of tools that will help improve your Go code\n\n## [](https://github.com/golang/go/wiki/CodeTools#all-in-one)All-in-one\n\n*   [golangci-lint](https://github.com/golangci/golangci-lint) - Bundle of `gofmt`, `golint`, `govet` and many other tools that shares work between the different linters for better performance. Recommended by the original author to replace gometalinter (Drop-in replacement).\n*   DEPRECATED: [gometalinter](https://github.com/alecthomas/gometalinter) - Automates the installation, configuration and application of `gofmt`, `golint`, `govet` and several other code validation tools.\n\n## [](https://github.com/golang/go/wiki/CodeTools#code-formatting)Code Formatting\n\n### [](https://github.com/golang/go/wiki/CodeTools#articles)Articles\n\n*   [Formatting Go Code with gofmt](http://golangtutorials.blogspot.com/2011/06/formatting-go-code-with-gofmt.html)\n\n### [](https://github.com/golang/go/wiki/CodeTools#tools)Tools\n\n*   [air](https://github.com/cosmtrek/air) - Live reload for Go apps\n*   [gofmt](https://pkg.go.dev/cmd/gofmt/) - Start with the standard Go code formatter.\n*   [golint](https://github.com/golang/lint) - Detects style mistakes in Go code.\n*   [goimports](https://pkg.go.dev/golang.org/x/tools/cmd/goimports) - Format code and fix your import statements.\n*   [gofumpt](https://github.com/mvdan/gofumpt) - A stricter gofmt.\n*   [revive](https://github.com/mgechev/revive) - Fast, configurable, extensible, flexible, and beautiful linter for Go.\n\n## [](https://github.com/golang/go/wiki/CodeTools#code-generation-templating-and-generics)Code generation, Templating and Generics\n\n*   [json-to-go](https://mholt.github.io/json-to-go/) - Generate Go structs from JSON.\n*   [Go gen](http://clipperhouse.github.io/gen/) - Type-driven code generation (generics)\n*   [gojson](https://github.com/ChimeraCoder/gojson) - Another Go struct generator.\n*   [gotemplate](https://github.com/ncw/gotemplate) - Package-based templating system for Go.\n*   [sqlgen](https://github.com/drone/sqlgen) - Generate Go code for SQL interactions.\n*   [zek](https://github.com/miku/zek) - Generate Go struct from XML.\n*   [apidocgen](https://github.com/alovn/apidocgen) - Generate web apis markdown docs and mocks.\n\n## [](https://github.com/golang/go/wiki/CodeTools#refactoring)Refactoring\n\n### [](https://github.com/golang/go/wiki/CodeTools#articles-1)Articles\n\n*   [gorename - easy refactoring](https://texlution.com/post/gorename/)\n*   [Refactoring Tools](http://blog.ralch.com/tutorial/golang-tools-refactoring/) - An overview of refactoring tools for Go.\n*   [Quick renaming with gofmt](http://technosophos.com/2015/09/26/quick-go-hack-renaming-structs.html)\n\n### [](https://github.com/golang/go/wiki/CodeTools#tools-1)Tools\n\n*   [eg](https://pkg.go.dev/golang.org/x/tools/cmd/eg) - Example-based refactoring tool for Go.\n*   [gofmt](https://pkg.go.dev/cmd/gofmt/) - Start with the standard Go code formatter.\n*   [gorename](https://golang.org/x/tools/refactor/rename) - Renaming tool for Go.\n\n## [](https://github.com/golang/go/wiki/CodeTools#error-detection)Error Detection\n\n### [](https://github.com/golang/go/wiki/CodeTools#articles-2)Articles\n\n*   [Go Inspection Tools](https://blog.ralch.com/articles/golang-tools-inspection/) - An overview of tools for Go code inspection.\n\n### [](https://github.com/golang/go/wiki/CodeTools#tools-2)Tools\n\n*   [AlignCheck, StructCheck, VarCheck](https://github.com/opennota/check/) - A suite of tools for checking your code.\n*   [errcheck](https://github.com/kisielk/errcheck) - Ensure you check your error conditions.\n*   [go vet](https://pkg.go.dev/cmd/vet/) - Read this first on how to use the `go vet` command.\n*   [SafeSQL](https://github.com/stripe/safesql) - Protect against unsafe SQL in your code.\n\n## [](https://github.com/golang/go/wiki/CodeTools#navigation)Navigation\n\n*   [Go Guru - User Manual](https://go.dev/s/using-guru) - A tool for understanding Go code.\n*   [Pythia](https://github.com/fzipp/pythia) - A browser-based UI for Go Guru.\n\n## [](https://github.com/golang/go/wiki/CodeTools#visualization)Visualization\n\n*   [godepgraph](http://github.com/kisielk/godepgraph) - A tool for generating dependency graphs of Go code.\n\n\n## 💎 Course videos\n\n### [](https://github.com/techschool/simplebank#section-1-working-with-database-postgres)Section 1: Working with database \\[Postgres\\]\n\n*   Lecture #1: [Design DB schema and generate SQL code with dbdiagram.io](https://www.youtube.com/watch?v=rx6CPDK_5mU\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=1)\n*   Lecture #2: [Install \u0026 use Docker + Postgres + TablePlus to create DB schema](https://www.youtube.com/watch?v=Q9ipbLeqmQo\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=2)\n*   Lecture #3: [How to write \u0026 run database migration in Golang](https://www.youtube.com/watch?v=0CYkrGIJkpw\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=3)\n*   Lecture #4: [Generate CRUD Golang code from SQL | Compare db/sql, gorm, sqlx \u0026 sqlc](https://www.youtube.com/watch?v=prh0hTyI1sU\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=4)\n*   Lecture #5: [Write unit tests for database CRUD with random data in Golang](https://www.youtube.com/watch?v=phHDfOHB2PU\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=5)\n*   Lecture #6: [A clean way to implement database transaction in Golang](https://www.youtube.com/watch?v=gBh__1eFwVI\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=6)\n*   Lecture #7: [DB transaction lock \u0026 How to handle deadlock in Golang](https://www.youtube.com/watch?v=G2aggv_3Bbg\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=7)\n*   Lecture #8: [How to avoid deadlock in DB transaction? Queries order matters!](https://www.youtube.com/watch?v=qn3-5wdOfoA\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=8)\n*   Lecture #9: [Deeply understand transaction isolation levels \u0026 read phenomena in MySQL \u0026 PostgreSQL](https://www.youtube.com/watch?v=4EajrPgJAk0\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=9)\n*   Lecture #10: [Setup Github Actions for Golang + Postgres to run automated tests](https://www.youtube.com/watch?v=3mzQRJY1GVE\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=10)\n\n### [](https://github.com/techschool/simplebank#section-2-building-restful-http-json-api-gin)Section 2: Building RESTful HTTP JSON API \\[Gin\\]\n\n*   Lecture #11: [Implement RESTful HTTP API in Go using Gin](https://www.youtube.com/watch?v=n_Y_YisgqTw\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=11)\n*   Lecture #12: [Load config from file \u0026 environment variables in Go with Viper](https://www.youtube.com/watch?v=n5p8HkO6bnE\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=12)\n*   Lecture #13: [Mock DB for testing HTTP API in Go and achieve 100% coverage](https://www.youtube.com/watch?v=rL0aeMutoJ0\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=13)\n*   Lecture #14: [Implement transfer money API with a custom params validator](https://www.youtube.com/watch?v=5q_wsashJZA\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=14)\n*   Lecture #15: [Add users table with unique \u0026 foreign key constraints in PostgreSQL](https://www.youtube.com/watch?v=D4VtNC3vQUs\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=15)\n*   Lecture #16: [How to handle DB errors in Golang correctly](https://www.youtube.com/watch?v=mJ8b5GcvoxQ\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=16)\n*   Lecture #17: [How to securely store passwords? Hash password in Go with Bcrypt!](https://www.youtube.com/watch?v=B3xnJI2lHmc\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=17)\n*   Lecture #18: [How to write stronger unit tests with a custom gomock matcher](https://www.youtube.com/watch?v=DuzBE0jKOgE\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=18)\n*   Lecture #19: [Why PASETO is better than JWT for token-based authentication?](https://www.youtube.com/watch?v=nBGx-q52KAY\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=19)\n*   Lecture #20: [How to create and verify JWT \u0026 PASETO token in Golang](https://www.youtube.com/watch?v=Oi4FHDGILuY\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=20)\n*   Lecture #21: [Implement login user API that returns PASETO or JWT access token in Go](https://www.youtube.com/watch?v=lnHbZ9GOGAs\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=21)\n*   Lecture #22: [Implement authentication middleware and authorization rules in Golang using Gin](https://www.youtube.com/watch?v=Pw8fVBRS4jA\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=22)\n\n### [](https://github.com/techschool/simplebank#section-3-deploying-the-application-to-production-kubernetes--aws)Section 3: Deploying the application to production \\[Kubernetes + AWS\\]\n\n*   Lecture #23: [Build a minimal Golang Docker image with a multistage Dockerfile](https://www.youtube.com/watch?v=p1dwLKAxUxA\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=23)\n*   Lecture #24: [How to use docker network to connect 2 stand-alone containers](https://www.youtube.com/watch?v=VcFnqQarpjI\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=24)\n*   Lecture #25: [How to write docker-compose file and control service start-up orders with wait-for.sh](https://www.youtube.com/watch?v=jf6sQsz0M1M\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=25)\n*   Lecture #26: [How to create a free tier AWS account](https://www.youtube.com/watch?v=4UqN1P8pIkM\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=26)\n*   Lecture #27: [Auto build \u0026 push docker image to AWS ECR with Github Actions](https://www.youtube.com/watch?v=3M4MPmSWt9E\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=27)\n*   Lecture #28: [How to create a production DB on AWS RDS](https://www.youtube.com/watch?v=0EaG3T4Q5fQ\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=28)\n*   Lecture #29: [Store \u0026 retrieve production secrets with AWS secrets manager](https://www.youtube.com/watch?v=3i1mQ_Ye8jE\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=29)\n*   Lecture #30: [Kubernetes architecture \u0026 How to create an EKS cluster on AWS](https://www.youtube.com/watch?v=TxnCMhYhqRU\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=30)\n*   Lecture #31: [How to use kubectl \u0026 k9s to connect to a kubernetes cluster on AWS EKS](https://www.youtube.com/watch?v=hwMevai3_wQ\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=31)\n*   Lecture #32: [How to deploy a web app to Kubernetes cluster on AWS EKS](https://www.youtube.com/watch?v=PH-Mcd0Rs1w\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=32)\n*   Lecture #33: [Register a domain name \u0026 set up A-record using Route53](https://www.youtube.com/watch?v=-JF2ukmW3i8\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=33)\n*   Lecture #34: [How to use Ingress to route traffics to different services in Kubernetes](https://www.youtube.com/watch?v=lBrqP6FkNsU\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=34)\n*   Lecture #35: [Automatic issue TLS certificates in Kubernetes with Let's Encrypt](https://www.youtube.com/watch?v=nU4FTjrgSKI\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=35)\n*   Lecture #36: [Automatic deploy to Kubernetes with Github Action](https://www.youtube.com/watch?v=GVY-zze0V_U\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=36)\n\n### [](https://github.com/techschool/simplebank#section-4-advanced-backend-topics-grpc)Section 4: Advanced Backend Topics \\[gRPC\\]\n\n*   Lecture #37: [How to manage user session with refresh token - Golang](https://www.youtube.com/watch?v=rT20ylRLm5U\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=37)\n*   Lecture #38: [Generate DB documentation page and schema SQL dump from DBML](https://www.youtube.com/watch?v=dGfVwsPr-IU\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=38)\n*   Lecture #39: [Introduction to gRPC](https://www.youtube.com/watch?v=mRGnA3wPxMM\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=39)\n*   Lecture #40: [Define gRPC API and generate Go code with protobuf](https://www.youtube.com/watch?v=mVWgEmyAhvM\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=40)\n*   Lecture #41: [How to run a golang gRPC server and call its API](https://www.youtube.com/watch?v=BkfBJIS0_ro\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=41)\n*   Lecture #42: [Implement gRPC API to create and login users in Go](https://www.youtube.com/watch?v=7xiWqyZW9lE\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=42)\n*   Lecture #43: [Write code once, serve both gRPC \u0026 HTTP requests](https://www.youtube.com/watch?v=3FfDH3d0aHs\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=43)\n*   Lecture #44: [How to extract info from gRPC metadata](https://www.youtube.com/watch?v=Sno10WQ21Zs\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=44)\n*   Lecture #45: [Automatic generate \u0026 serve Swagger docs from Go server](https://www.youtube.com/watch?v=Uwkxxee7tvk\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=45)\n*   Lecture #46: [Embed static frontend files inside Golang backend server's binary](https://www.youtube.com/watch?v=xNgOIm86N5Q\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=46)\n*   Lecture #47: [Validate gRPC parameters and send human/machine friendly response](https://www.youtube.com/watch?v=CxZ9hMtmZtc\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=47)\n*   Lecture #48: [Run DB migrations directly inside Golang code](https://www.youtube.com/watch?v=TG43cMpaxlI\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=48)\n*   Lecture #49: [Partial update DB record with SQLC nullable parameters](https://www.youtube.com/watch?v=I2sbw1PzzW0\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=50)\n*   Lecture #50: [Build gRPC update API with optional parameters](https://www.youtube.com/watch?v=ygqSHIEc8sc\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=51)\n*   Lecture #51: [Add authorization to protect gRPC API](https://www.youtube.com/watch?v=_jqNs3d99ps\u0026list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE\u0026index=52)\n\n## [](https://github.com/techschool/simplebank#simple-bank-service)Simple bank service\n\nThe service that we’re going to build is a simple bank. It will provide APIs for the frontend to do following things:\n\n1.  Create and manage bank accounts, which are composed of owner’s name, balance, and currency.\n2.  Record all balance changes to each of the account. So every time some money is added to or subtracted from the account, an account entry record will be created.\n3.  Perform a money transfer between 2 accounts. This should happen within a transaction, so that either both accounts’ balance are updated successfully or none of them are.\n\n## [](https://github.com/techschool/simplebank#setup-local-development)Setup local development\n\n### [](https://github.com/techschool/simplebank#install-tools)Install tools\n\n*   [Docker desktop](https://www.docker.com/products/docker-desktop)\n*   [TablePlus](https://tableplus.com/)\n*   [Golang](https://golang.org/)\n*   [Homebrew](https://brew.sh/)\n*   [Migrate](https://github.com/golang-migrate/migrate/tree/master/cmd/migrate)\n\n    ```shell\n    brew install golang-migrate\n    ```\n\n*   [DB Docs](https://dbdocs.io/docs)\n\n    ```shell\n    npm install -g dbdocs\n    dbdocs login\n    ```\n\n*   [DBML CLI](https://www.dbml.org/cli/#installation)\n\n    ```shell\n    npm install -g @dbml/cli\n    dbml2sql --version\n    ```\n\n*   [Sqlc](https://github.com/kyleconroy/sqlc#installation)\n    ```shell\n    brew install sqlc\n    ```\n\n*   [Gomock](https://github.com/golang/mock)\n    ```shell\n    go install github.com/golang/mock/mockgen@v1.6.0\n    ```\n\n### [](https://github.com/techschool/simplebank#setup-infrastructure)Setup infrastructure\n\n*   Create the bank-network\n    ```shell\n    make network\n    ```\n\n*   Start postgres container:\n    ```shell\n    make postgres\n    ```\n\n*   Create simple\\_bank database:\n    ```shell\n    make createdb\n    ```\n\n*   Run db migration up all versions:\n    ```shell\n    make migrateup\n    ```\n\n*   Run db migration up 1 version:\n    ```shell\n    make migrateup1\n    ```\n\n*   Run db migration down all versions:\n    ```shell\n    make migratedown\n    ```\n\n*   Run db migration down 1 version:\n    ```shell\n    make migratedown1\n    ```\n\n### [](https://github.com/techschool/simplebank#documentation)Documentation\n\n*   Generate DB documentation:\n    ```shell\n    make db_docs\n    ```\n\n*   Access the DB documentation at [this address](https://dbdocs.io/techschool.guru/simple_bank). Password: `secret`\n\n### [](https://github.com/techschool/simplebank#how-to-generate-code)How to generate code\n\n*   Generate schema SQL file with DBML:\n    ```shell\n    make db_schema\n    ```\n\n*   Generate SQL CRUD with sqlc:\n    ```shell\n    make sqlc\n    ```\n\n*   Generate DB mock with gomock:\n    ```shell\n    make mock\n    ```\n\n*   Create a new db migration:\n\n    ```shell\n    migrate create -ext sql -dir db/migration -seq \u003cmigration_name\u003e\n    ```\n\n### [](https://github.com/techschool/simplebank#how-to-run)How to run\n\n*   Run server:\n    ```shell\n    make server\n    ```\n\n*   Run test:\n    ```shell\n    make test\n    ```\n\n## [](https://github.com/techschool/simplebank#deploy-to-kubernetes-cluster)Deploy to kubernetes cluster\n\n*   [Install nginx ingress controller](https://kubernetes.github.io/ingress-nginx/deploy/#aws):\n\n    ```shell\n    kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.48.1/deploy/static/provider/aws/deploy.yaml\n    ```\n\n*   [Install cert-manager](https://cert-manager.io/docs/installation/kubernetes/):\n\n    ```shell\n    kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.4.0/cert-manager.yaml\n    ```\n    \n    \n## ⚒ Advanced\n# Golang Advanced Tutorial\n\nPosted on [November 22, 2020June 15, 2021](https://golangbyexample.com/golang-comprehensive-tutorial/) by [admin](https://golangbyexample.com/author/admin/)\n\n### ⚙ Table of Contents\n\n*   [Overview](https://golangbyexample.com/golang-comprehensive-tutorial/#Overview \"Overview\")\n*   [Golang Basic Tutorial](https://golangbyexample.com/golang-comprehensive-tutorial/#Golang_Basic_Tutorial \"Golang Basic Tutorial\")\n    *   [About](https://golangbyexample.com/golang-comprehensive-tutorial/#About \"About\")\n    *   [Basics](https://golangbyexample.com/golang-comprehensive-tutorial/#Basics \"Basics\")\n    *   [Loops/Iterations/Flow Control](https://golangbyexample.com/golang-comprehensive-tutorial/#LoopsIterationsFlow_Control \"Loops/Iterations/Flow Control\")\n    *   [More Types](https://golangbyexample.com/golang-comprehensive-tutorial/#More_Types \"More Types\")\n    *   [Concurrency](https://golangbyexample.com/golang-comprehensive-tutorial/#Concurrency \"Concurrency\")\n    *   [Error Handling](https://golangbyexample.com/golang-comprehensive-tutorial/#Error_Handling \"Error Handling\")\n*   [Golang Advanced Tutorial](https://golangbyexample.com/golang-comprehensive-tutorial/#Golang_Advanced_Tutorial \"Golang Advanced Tutorial\")\n    *   [OOPS in Golang](https://golangbyexample.com/golang-comprehensive-tutorial/#OOPS_in_Golang \"OOPS in Golang\")\n    *   [Others](https://golangbyexample.com/golang-comprehensive-tutorial/#Others \"Others\")\n*   [All Design Patterns in Golang](https://golangbyexample.com/golang-comprehensive-tutorial/#All_Design_Patterns_in_Golang \"All Design Patterns in Golang\")\n    *   [Creational Design Patterns](https://golangbyexample.com/golang-comprehensive-tutorial/#Creational_Design_Patterns \"Creational Design Patterns\")\n    *   [Behavioural Design Patterns](https://golangbyexample.com/golang-comprehensive-tutorial/#Behavioural_Design_Patterns \"Behavioural Design Patterns\")\n    *   [Structural Design Patterns](https://golangbyexample.com/golang-comprehensive-tutorial/#Structural_Design_Patterns \"Structural Design Patterns\")\n*   [Data Structures in Golang](https://golangbyexample.com/golang-comprehensive-tutorial/#Data_Structures_in_Golang \"Data Structures in Golang\")\n\n## **Overview**\n\nWelcome to the Golang advanced tutorial series. The tutorial in this series are elaborative and we have tried to cover all concepts with examples. This tutorial is for those who are looking to gain expertise and a solid understanding of golang. We are looking for feedback as well if you find any mistakes or any improvements to be done.\n\nHere is the link to the golang official website for reference [https://golang.org/](https://golang.org/)\n\nThis tutorial is divided into four parts\n\n*   Golang Basic Topics\n*   Golang Advanced Topics\n*   All Design Patterns in Golang\n*   Data structures in Golang\n\n## **Golang Basic Tutorial**\nLet’s see some basic topics in go first\n\n### **About**\n*   Chapter 1   – [About Golang](https://golangbyexample.com/about-golang/)\n*   Chapter 2   – [GO installation](https://golangbyexample.com/golang-installation/)\n*   Chapter 3   – [Set up Go Workspace and hello world program](https://golangbyexample.com/workspace-hello-world-golang)\n\n### **Basics**\n*   Chapter 4   – [Packages and Modules – Part 1](https://golangbyexample.com/packages-modules-go-first)\n*   Chapter 5   – [Packages and Modules – Part 2](https://golangbyexample.com/packages-modules-go-second/)\n*   Chapter 6   – [Variables](https://golangbyexample.com/variables-in-golang-complete-guide/)\n*   Chapter 7   – [All basic data types](https://golangbyexample.com/all-basic-data-types-golang/)\n*   Chapter 8   – [Functions](https://golangbyexample.com/function-golang-complete-guide/)\n*   Chapter 9   – [Constants](https://golangbyexample.com/constant-golang/)\n\n### **Loops/Iterations/Flow Control**\n*   Chapter 10 – [For Loop](https://golangbyexample.com/for-loop-in-golang/)\n*   Chapter 11 – [For Range loop](https://golangbyexample.com/understand-for-range-loop-golang/)\n*   Chapter 12 – [If Else](https://golangbyexample.com/understand-if-else-statement-golang/)\n*   Chapter 13 – [Switch](https://golangbyexample.com/switch-statement-golang/)\n*   Chapter 14 – [Defer keyword](https://golangbyexample.com/defer-golang)\n\n### **More Types**\n*   Chapter 15 – [Pointer](https://golangbyexample.com/pointer-golang/)\n*   Chapter 16 – [Struct](https://golangbyexample.com/struct-in-golang-complete-guide/)\n*   Chapter 17 – [Array](https://golangbyexample.com/understanding-array-golang-complete-guid)\n*   Chapter 18 – [Slice](https://golangbyexample.com/slice-in-golang/)\n*   Chapter 19 – [Maps](https://golangbyexample.com/maps-in-golang)\n*   Chapter 20 – [Method](https://golangbyexample.com/method-in-golang/)\n*   Chapter 21 – [Interface](https://golangbyexample.com/interface-in-golang/)\n*   Chapter 22 – [Iota](https://golangbyexample.com/iota-in-golang)\n\n### **Concurrency**\n*   Chapter 23 – [Goroutines](https://golangbyexample.com/goroutines-golang/)\n*   Chapter 24 – [Channel](https://golangbyexample.com/channel-golang/)\n*   Chapter 25 – [Select Statement](https://golangbyexample.com/select-statement-golang/)\n\n### **Error Handling**\n*   Chapter 26 – [Error](https://golangbyexample.com/error-in-golang/)\n*   Chapter 27 – [Error -Part 2](https://golangbyexample.com/error-in-golang-advanced/)\n*   Chapter 28- [Panic and Recover](https://golangbyexample.com/panic-and-recover-golang/)\n\n## **Golang Advanced Tutorial**\nLet’s look at some advanced topics in go now.\n\n### **OOPS in Golang**\n*   [OOP: Inheritance in GOLANG complete guide](https://golangbyexample.com/oop-inheritance-golang-complete/)\n*   [Encapsulation in Golang](https://golangbyexample.com/encapsulation-in-go/)\n*   [Runtime Polymorphism](https://golangbyexample.com/runtime-polymorphism-go/)\n*   [Compile Time Polymorphism](https://golangbyexample.com/compile-time-polymorphism-go/)\n\n### **Others**\n*   [Understanding time and date in Go](https://golangbyexample.com/all-about-time-and-date-golang/)\n*   [Using Context Package in GO Complete Guide](https://golangbyexample.com/using-context-in-golang-complete-guide/)\n*   [Goto statement in go](https://golangbyexample.com/goto-statement-go/)\n*   [More about uintptr](https://golangbyexample.com/understanding-uintptr-golang)\n*   [Basic HTTP server implementation](https://golangbyexample.com/basic-http-server-go/)\n\n## **All Design Patterns in Golang**\nBelow is the list of all design patterns in go\n\n### **Creational Design Patterns**\n*   [Abstract Factory](https://golangbyexample.com/abstract-factory-design-pattern-go/)\n*   [Builder](https://golangbyexample.com/builder-pattern-golang/)\n*   [Factory](https://golangbyexample.com/golang-factory-design-pattern/)\n*   [Object Pool](https://golangbyexample.com/golang-object-pool/)\n*   [Prototype](https://golangbyexample.com/prototype-pattern-go/)\n*   [Singleton](https://golangbyexample.com/singleton-design-pattern-go/)\n\n### **Behavioural Design Patterns**\n*   [Chain of Responsiblity](https://golangbyexample.com/chain-of-responsibility-design-pattern-in-golang/)\n*   [Command](https://golangbyexample.com/command-design-pattern-in-golang/)\n*   [Iterator](https://golangbyexample.com/go-iterator-design-pattern/)\n*   [Mediator](https://golangbyexample.com/mediator-design-pattern-golang/)\n*   [Memento](https://golangbyexample.com/memento-design-pattern-go/)\n*   [Null Object](https://golangbyexample.com/null-object-design-pattern-golang/)\n*   [Observer](https://golangbyexample.com/observer-design-pattern-golang/)\n*   [State](https://golangbyexample.com/state-design-pattern-go/)\n*   [Template Method](https://golangbyexample.com/template-method-design-pattern-golang/)\n*   [Visitor](https://golangbyexample.com/visitor-design-pattern-go/)\n\n### **Structural Design Patterns**\n*   [Adapter](https://golangbyexample.com/adapter-design-pattern-go/)\n*   [Bridge](https://golangbyexample.com/bridge-design-pattern-in-go/)\n*   [Composite](https://golangbyexample.com/composite-design-pattern-golang/)\n*   [Decorator](https://golangbyexample.com/decorator-pattern-golang/)\n*   [Facade](https://golangbyexample.com/facade-design-pattern-in-golang/)\n*   [Flyweight](https://golangbyexample.com/flyweight-design-pattern-golang/)\n*   [Proxy](https://golangbyexample.com/proxy-design-pattern-in-golang/)\n\n## **Data Structures in Golang**\n*   [Queue](https://golangbyexample.com/queue-in-golang/)\n*   [Stack](https://golangbyexample.com/stack-in-golang/)\n*   [Set](https://golangbyexample.com/set-implementation-in-golang/)\n*   [Linked List](https://golangbyexample.com/singly-linked-list-in-golang/)\n*   [Doubly Linked List](https://golangbyexample.com/doubly-linked-list-golang/)\n*   Binary Search Tree\n    *   [Recursive](https://golangbyexample.com/binary-search-tree-in-go)\n    *   [Iterative](https://golangbyexample.com/iterative-binary-search-tree-go/)\n*   Heap\n    *   [Minheap](https://golangbyexample.com/minheap-in-golang/)\n    *   [Maxheap](https://golangbyexample.com/maxheap-in-golang/)\n*   [Trie](https://golangbyexample.com/trie-implementation-in-go/)\n","created_at":"2024-07-04T23:35:47.448Z","updated_at":"2026-04-16T02:00:22.071Z","primary_language":null,"list_of_lists":false,"displayable":true,"categories":["🌏 Frameworks","[](https://github.com/techschool/simplebank#setup-local-development)Setup local development","🥧 Browse Series: 52 articles","[](https://github.com/golang/go/wiki/CodeTools#code-formatting)Code Formatting","[](https://github.com/techschool/simplebank#deploy-to-kubernetes-cluster)Deploy to kubernetes cluster","**Golang Advanced Tutorial**","⚒ Advanced","🏖️  Req Expr","🍬 Samples for learning","[README](https://github.com/VyacheslavGoryunov/remote-relay-gobot/tree/master/firmware/test#readme)","[](https://github.com/golang/go/wiki/CodeTools#refactoring)Refactoring","[](https://github.com/golang/go/wiki/CodeTools#error-detection)Error Detection","💎 Course videos","**Golang Basic Tutorial**","**All Design Patterns in Golang**","**Data Structures in Golang**","[](https://github.com/golang/go/wiki/CodeTools#all-in-one)All-in-one","[](https://github.com/golang/go/wiki/CodeTools#code-generation-templating-and-generics)Code generation, Templating and Generics","🚩 Useful library","[](https://github.com/golang/go/wiki/CodeTools#navigation)Navigation","[](https://github.com/golang/go/wiki/CodeTools#visualization)Visualization"],"sub_categories":["[](https://github.com/techschool/simplebank#install-tools)Install tools","[](https://github.com/golang/go/wiki/CodeTools#tools)Tools","[](https://github.com/techschool/simplebank#how-to-run)How to run","**OOPS in Golang**","⚙ Table of Contents","[](https://github.com/golang/go/wiki/CodeTools#articles)Articles","[](https://github.com/golang/go/wiki/CodeTools#articles-1)Articles","[](https://github.com/golang/go/wiki/CodeTools#tools-1)Tools","[](https://github.com/golang/go/wiki/CodeTools#articles-2)Articles","[](https://github.com/techschool/simplebank#section-1-working-with-database-postgres)Section 1: Working with database \\[Postgres\\]","[](https://github.com/techschool/simplebank#section-2-building-restful-http-json-api-gin)Section 2: Building RESTful HTTP JSON API \\[Gin\\]","[](https://github.com/techschool/simplebank#section-3-deploying-the-application-to-production-kubernetes--aws)Section 3: Deploying the application to production \\[Kubernetes + AWS\\]","[](https://github.com/techschool/simplebank#section-4-advanced-backend-topics-grpc)Section 4: Advanced Backend Topics \\[gRPC\\]","[](https://github.com/techschool/simplebank#documentation)Documentation","**About**","**Basics**","**Loops/Iterations/Flow Control**","**More Types**","**Concurrency**","**Error Handling**","**Others**","**Creational Design Patterns**","**Behavioural Design Patterns**","**Structural Design Patterns**","[](https://github.com/golang/go/wiki/CodeTools#tools-2)Tools"],"projects_url":"https://awesome.ecosyste.ms/api/v1/lists/gitart%2Fgo-simple/projects"}