Mega bundle go link
JujicПостарался найти все самое лучшее для этого языка
Итак для начала 3 платформы для изучения GO и их отличия{
- https://exercism.org/tracks - куча заданий, куча базы, как раз для отработки
- https://vectree.ru/path/38 - курс в котором идет от джуна до мидла, также есть мини проекты (маловато) и картиночки}
- Go: обучение программированию на языке go, бесплатно | CodeBasics (code-basics.com)
Все шорткаты для разных программ: Hotkey Cheatsheet
Все фриланс темы https://airtable.com/
Информация и гайды по инструментам DevOps {
https://ru.werf.io/guides/golang/100_basic.html - бесплатный самоучитель по CI/CD и Kubernetes для Go-разработчиков
https://medium.com/the-godev-corner/how-to-create-a-go-private-module-with-docker-b705e4d195c4 - Простой пошаговый гайд по работе с приватными модулями Go.
https://coderlessons.com/tutorials/devops/uchitsia-git/git-tutorial - множество гайдов с инструментами
https://landscape.cncf.io/ - все технологии
https://devsecopsguides.com/docs/rules/go/ - обучение devsecops
https://habr.com/ru/articles/307252/ 8 частей сетей
https://habr.com/ru/articles/588705/ сегментация сетей для самых маленьких
https://linkmeup.gitbook.io/sdsm практика сетей
https://www.kenaqshal.com/blog/debugging-dockerized-go-applications - Отладка Go приложений в Docker-контейнерах с использованием VS Code: гайд для начинающих.
https://betterprogramming.pub/replicating-and-load-balancing-go-applications-in-docker-containers-with-consul-and-fabio-3ec5eed15154 - Репликация и балансировка нагрузки Go-приложений в Docker-контейнерах с помощью Consul и Fabio
Archive - Architecture Notes — System Design & Software Development - полезные статьи
https://www.airplane.dev/blog/caching-golang-tests-in-ci - Кэширование Go-тестов в CI: как команде Airplane удалось на порядок сократить время прогона всех юнит-тестов через CI
Кубернетес{
https://isovalent.com/blog/post/cilium-egress-gateway-aks/ - Как развернуть Cilium и выходной шлюз в службе Azure Kubernetes
https://kube.academy/courses курс кубернетес
https://vmc.techzone.vmware.com/kubernetes-vmware-cloud-course курс кубернетес
}
Базовые понятия {
- https://yourbasic.org/golang/
- https://tour.ardanlabs.com/tour/rus/list - Основы го на русском
- https://go.dev/doc/tutorial/create-module - создание модуля
- https://www.calhoun.io/crash-course-on-go-interfaces/ - Курс по интерфейсам
- https://www.kelche.co/blog/go/build/ - все о build
- https://tproger.ru/articles/puteshestvie-v-golang-regexp - Регулярные выражения в Go
- https://bitfieldconsulting.com/golang/iterators - Итераторы в GO
- https://www.alexedwards.net/blog/a-gentle-introduction-to-pointers - Указатели
- https://olegk.dev/go-linters-configuration-the-right-version - Конфигурация линтера Go, правильная версия
- Learn Go/Golang with these articles - willem.dev - гайды по golang}
Ошибки и их исправления {
- https://golang50shad.es/ - Рассказывается о распространённых ошибках (хорошее дополнение к книге 100 ошибок)
- https://100go.co/ - более обширное рассмотрение ошибок в GO }
Паттерны программирования в GO {
- https://github.com/AlexanderGrom/go-patterns - перечислены все паттерны для го
- https://refactoring.guru/ru/design-patterns/go - рассказывается о рефакторинге, а также паттернах на GO (нужен впн)
- thewhitetulip/web-dev-golang-anti-textbook: Learn how to write webapps without a framework in Go. (github.com)}
Введение в основные библиотеки {
- Cover - Spaceship Go (blasrodri.github.io)
- https://github.com/carlmjohnson/requests/releases/tag/v0.23.4 - requests
- https://betterstack.com/community/guides/logging/go/zap/ - Zap для Go-разработчика: подробное введение в популярный пакет логирования и обзор его наиболее полезных функций}
Практика {
- https://codingchallenges.fyi/challenges/intro - челленджи
- Interactive Go Challenges | TutorialEdge.net - челленджи по go
- https://go-telegram-bot-api.dev/ - полное руководство по созданию бота на го
- https://gophercises.com/ - 20 практических задач
- https://tech.trivago.com/post/2023-05-17-building-our-first-graphql-server-with-go-an-implementation-guide - Реализация GraphQL-сервера
- https://www.twilio.com/blog/use-cobra-build-go-powered-clis - Пошаговый гайд по созданию CLI-инструмента на Go с использованием Cobra
- https://www.openfaas.com/blog/build-a-serverless-discord-bot/ - Разработка бессерверного бота Discord с помощью OpenFaaS и Go
- https://eli.thegreenplace.net/2023/faas-in-go-with-wasm-wasi-and-rust/ - пишем простой FAAS-сервер, который позволит писать модули на любом языке, предназначенном для WASM
- https://youtu.be/vInn3KNF1x4 - Отладка CLI-проектов на Go с помощью VS Code
- Пишем UBER на GO - 1 часть 2 часть 3 часть 4 часть
- https://habr.com/ru/articles/745256/ реализация анонимной сети
- https://encore.dev/docs/tutorials/uptime - создание мониторинга
- https://medium.com/the-godev-corner/how-to-create-publish-a-go-public-package-9034e6bfe4a9 - Пошаговое руководство по разработке и публикации Go-пакета
- https://youtu.be/gnchfOojMk4
- Home - Practical Go Lessons Book (practical-go-lessons.com) - книгу которую надо прочитать для понятия устройства ГО
- https://r2p.dev/b/2024-03-18-1brc-go/ - решение задачи One Billion Row Challenge (1BRC)
- https://earthly.dev/blog/tui-app-with-go/ - Building A Terminal User Interface With Golang
- Создание балансировщика нагрузки прикладного уровня с помощью Golang
- Создание DNS-преобразователя с помощью Golang
- https://github.com/bregman-arie/devops-exercises?tab=readme-ov-file - задания для практики по GO
- https://habr.com/ru/post/701488/ - Теория и практика разработки анонимного мессенджера на Go, построенного на ядре анонимной сети HLS (Hidden Lake Service).
- https://github.com/cblte/100-golang-exercises - челленджи
- https://habr.com/ru/post/674694/ - Имплементация простого WebSocket эхо-сервера на Go
- https://dev.to/signoz/implementing-distributed-tracing-in-a-golang-application-5cm1 - Руководство по реализации распределенной трассировки в Go-приложении с использованием OpenTelemetry и SigNoz
- https://habr.com/ru/company/ozontech/blog/668254/ - написания внешней Go-библиотеки, удобной для экспорта и импорта
- Машинное обучение GO теория практика
- https://eli.thegreenplace.net/2019/go-compiler-internals-adding-a-new-statement-to-go-part-1/ создание компилятора 1 часть
- https://eli.thegreenplace.net/2019/go-compiler-internals-adding-a-new-statement-to-go-part-2/ 2 часть
- Реализация распределенного хранилища key-value на Go - https://notes.eatonphil.com/2023-05-25-raft.html
- https://0xdf.gitlab.io/2024/05/07/gftrace.html - Анализ Go-бинарей с использованием gftrace
- https://youtu.be/J2svN8h21oo - Реверс Go-бинарей с использованием Ghidra
- https://totallygamerjet.hashnode.dev/the-smallest-go-binary-5kb - Создание компилятора С на Го
- Building A Terminal User Interface With Golang - Earthly Blog - Создание TUI
- https://proglib.io/w/b1a5c90d - Разработка приложений с Gui
- https://blog.sigma-star.at/post/2023/07/embedded-go-prog/ - Встраиваем Hello World на Go в ядро Linux
- Создание шаблона аутентификации с нуля, используя Go, GoFiber и PostgreSQL {- Реализация сервера с PostgreSQL (https://dev.to/mdfaizan7/create-a-server-with-postgresql-in-go-part-1-3-of-go-authentication-series-3127)
- Настройка маршрута SignUp (https://dev.to/mdfaizan7/creating-jwt-s-and-signup-route-part-2-3-of-go-authentication-series-5339)
- Реализация маршрута входа и частных маршрутов с обновлением токенов (https://dev.to/mdfaizan7/creating-login-and-private-routes-with-refreshing-tokens-part-3-3-of-go-authentication-series-2n0c)
}
Redis{
https://architecturenotes.co/redis/ - Глубокое техническое погружение во все аспекты Redis: от различных топологий Redis до data persistence и разветвления процессов.
https://t.me/goproglib/3890 - redis и Go
https://voskan.host/2023/08/14/golang-redis-caching/ - Повышение производительности: подробное руководство по кэшированию в Go с Redis
}
}
Новости и подкасты {
- https://golangweekly.com/issues/latest - новости
- https://changelog.com/gotime/205#transcript - подкасты}
Алгоритмы {
- https://github.com/TheAlgorithms/Go
- https://rtoch.com/posts/golang-segment-tree/ - Подробная реализация дерева отрезков (Segment Tree) на Go
- https://habr.com/ru/post/666904/ - R*-tree (подвид алгоритма R-tree) в Go: теория и детали реализации.}
Горутины {
https://proglib.io/w/94177b59 - Разбираем внутренности горутин и каналов в Go}
Дженерики {
- Туториал по дженерикам в Go | Ковардин (kovardin.ru) - введение в дженерики
- https://go.dev/blog/when-generics - когда использовать
- Go by Example информация о дженериках}
Тестирование {
Дополнение к книге 100 ошибок Го от создателя(
https://teivah.medium.com/concurrency-isnt-always-faster-in-go-de325168907c - Автор 100 Go Mistakes делится фундаментальными знаниями о конкурентности в Go и показывает пример, где к производительности конкурентного решения «есть вопросы».)
- Установка Go | Изучение Go через тестирование (gitbook.io)
- https://proglib.io/w/40f22786
- https://golangci-lint.run/ - либа для тестов
- https://www.youtube.com/watch?v=v24wrd3RwGo&list=PL2ntRZ1ySWBfiSJSt-zPRbVSMDfK0EwQC - От синтаксического анализа и сборки мусора до WebAssembly и фаззинг-тестирования: эти и другие доклады на GopherCon 2022
- https://blog.jetbrains.com/go/2022/11/22/comprehensive-guide-to-testing-in-go/ - полное руководство по тестированию
- https://habr.com/ru/company/kaspersky/blog/696724/ - про фаззинг
- https://teivah.medium.com/how-to-write-accurate-benchmarks-in-go-4266d7dd1a95 - Разбор четырех распространенных ловушек, которые ведут к неточностям тестирования в Go
- https://habr.com/ru/company/ozontech/blog/672678/ - Create Your Tests Easily: анонс open source библиотеки от Ozon Tech в BDD-стиле, которая облегчает тяготы создания автотестов.
- https://t.me/goproglib/3560 - Безопасность цепочки поставок с Go
- Безопасность цепочки поставок: серия статей Go-разработчика 1 2 3
Серия руководств о фаззинг-тестировании в Go:
1. Random testing in Go (https://bitfieldconsulting.com/golang/random-testing)
2. Fuzz tests in Go (https://bitfieldconsulting.com/golang/fuzz-tests)
3. Writing a Go fuzz target (https://bitfieldconsulting.com/golang/fuzz-target)
4. Finding bugs with fuzzing (https://bitfieldconsulting.com/golang/bugs-fuzzing)
Перевод языка в ассемблер
Организация кода {
- https://egonelbre.com/thoughts-on-code-organization/ - 12 правил организации кода
- https://12factor.net/ - Еще одна версия 12 правил
- Organizing a Go module - The Go Programming Language - организация кода для модуля
- https://habr.com/ru/company/indriver/blog/690088/ - структурировании Go-проекта
- https://go.dev/doc/modules/layout - организация проекта
- https://avivcarmi.com/finding-the-best-go-project-structure-part-1/ - Поиск лучшей структуры Go-проекта: история о пути, который прошла команда HUMAN Security}
Cheatsheet {
Web{
https://www.youtube.com/watch?v=xIN9HLThMq0&list=PLVEltXlEeWgkKucovAMCih4T0hQITxRX3&pp=iAQB - Веб-разработка с Go: серия видеоуроков от Jon Calhoun, автора таких образовательных ресурсов}
Архитектуры {
- https://github.com/thangchung/go-coffeeshop - Пример приложения для кофейни на Go. Архитектура
- https://habr.com/ru/companies/oleg-bunin/articles/791420/ - Domain Driven Design в Go}
Внутреннее строение {
- https://sumercip.com/posts/inside-the-go-cpu-profiler/ - Go CPU profiler под капотом
- https://leandrofroes.github.io/posts/An-in-depth-look-at-Golang-Windows-calls/ - Углубленный взгляд на системные вызовы Go в Windows
- https://habr.com/ru/articles/744822/ - Атомики в Go: обзор некоторых особенностей их внутренней реализации и отличий от мьютексов
- https://www.ardanlabs.com/blog/2023/07/getting-friendly-with-cpu-caches.html - Знакомство с кэшем ЦП
- https://go.dev/doc/gc-guide - документации новое руководство по сборщику мусора Go
- https://youtu.be/P_SXTUiA-9Y - Как на самом деле устроен тип Map в Go
- https://habr.com/ru/companies/vk/articles/776766/ - Как устроена память в Go: от теории к практике
- https://proglib.io/w/7a66a3fb - внутренностях реализации замыканий в Go
- https://www.youtube.com/watch?v=P2Tzdg8n9hw&t=0s - Видеогайд про внутреннее устройство планировщика Go от Владимира Балуна
- https://youtu.be/gnchfOojMk4 - Наглядное объяснение механизмов работы RPC и gRPC
- https://talks.golang.org/2012/splash.slide - презентация, которая дает общее представление о том, как работает Go.
- https://blog.golang.org/concurrency-is-not-parallelism - сложно изучать, чтобы понять, как работает язык.
- https://habr.com/ru/companies/ozonbank/articles/817381/ - детальный взгляд на стандартизацию с помощью gRPC-Gateway
- https://getstream.io/blog/how-a-go-program-compiles-down-to-machine-code/ - как го компилятор переводит код в машинный
- https://cmc.gitbook.io/go-internals - Внутреннее устройство Go
- Серия практических статей о том, как слайс работает под капотом{
1️⃣ Build your own slice: Arrays and slices (https://www.willem.dev/articles/build-your-own-slice-start-here/)
2️⃣ Build your own slice: Append and Copy (https://www.willem.dev/articles/build-your-own-slice-append-copy/) }
Работа с файлами {
- https://developer20.com/json/ - Практическое руководство по работе с JSON в Go
- https://thedevelopercafe.com/articles/serving-static-files-in-go-f4acf2b4cfe5 - Обработка статических файлов с помощью встроенных функций Go: http.Dir и http.FileServer}
Для кодинга {
- https://bitfieldconsulting.com/golang/vs-code-go - Обзор полезных возможностей VS Code для Go-разработчика
- https://habr.com/ru/post/678298/ - Настройка Neovim для разработки на Go с использованием плагинов Lua }
Логировние{
- https://betterstack.com/community/guides/logging/zerolog/ - Полный гайд по логированию в Go с использованием Zerolog: как установить, настроить и использовать Zerolog logger в Go-приложении.
- https://www.bytesizego.com/blog/guide-to-logging-in-go - Логирование в Go: от основ до профи
- https://www.madhur.co.in/blog/2023/06/10/processing-huge-log-files.html - Обработка огромных лог-файлов с помощью Go и Python
}
Сети {
- https://dev.to/kevwan/sending-type-safe-http-requests-with-go-5h2l - Краткие заметки по использованию пакета httpc из go-zero для отправки типобезопасных HTTP-запросов
- https://itnext.io/network-programming-in-go-389cd89ab874 - Сетевое программирование на Go: пишем простой TCP-сервер с логированием.
}
Go и HashiCorp {
- https://www.twilio.com/blog/manage-go-application-secrets-using-vault - Руководство по управлению секретами в Go-приложений с использованием
- https://habr.com/ru/articles/653927/ - Использование Hashicorp Vault для хранения секретов: гайд, построеный на основе Go-проекта}
БД {
- https://www.alexedwards.net/blog/organising-database-access - Разбор четырех различных методов организации доступа к базе данных на Go.
- https://thedevelopercafe.com/articles/database-migrations-in-go-using-migrate-package-5735cf056231 - Базовое руководство по использованию пакета migrate для миграции базы данных на Go
- https://betterprogramming.pub/database-migrations-f3a227e29f5f - Отслеживание изменений схемы базы данных с помощью Go: советы и простые практические приемы}
Интервью{
https://habr.com/ru/companies/cloud_mts/articles/735348/ - опыт подготовки к прохождению алгоритмических интервью с примерами на Go
}
Пакеты {
- https://threedots.tech/post/list-of-recommended-libraries/ - HTTP, базы данных, разработка CLI, тестирование, observability, конфигурация и многое другое: быстрый обзор 22-х Go-библиотек, проверенных в боевых условиях
- https://thedevelopercafe.com/articles/payload-validation-in-go-with-validator-626594a58cf6 - Базовое руководство по работе с пакетом Validator, который реализует проверку значений для структур и отдельных полей на основе тегов.
- https://habr.com/ru/post/667164/ - Анонс библиотеки потоковой обработки данных goio, вдохновлённой Scala-библиотеками cats-effect и fs2.
- https://github.com/goyek/goyek/releases/tag/v2.1.0 - библиотека для автоматизации задач
- Серия статей о работе со временем в Go {
— Parse timestamp formats (https://dev.to/aohorodnyk/parse-timestamp-on-backend-m0h)
— Parse time from different non timestamp formats (https://dev.to/aohorodnyk/parse-time-from-different-non-timestamp-formats-4kb9)
— Universal time UnmarshalJSON implementation (https://dev.to/aohorodnyk/universal-time-unmarshaljson-implementation-3okm)
}
}
Конкурентность {
- https://sayedalesawy.hashnode.dev/concurrency-race-conditions-and-concurrency-control - что такое конкурентность (можно читать перед книгой о конкурентности)
- https://dev.to/karanpratapsingh/advanced-concurrency-patterns-in-go-2je1 - Шаблоны конкурентности
}
API {
- https://blog.devgenius.io/golang-apis-a-skeleton-for-your-future-projects-a082dc4d6818 - Серия статей о построении скелетона для API на Go
}
Оптимизация {
https://sourcegraph.com/blog/slow-to-simd - Оптимизация производительности в Go на практике
https://habr.com/ru/companies/ozontech/articles/749328/ - Как построить систему, способную выдерживать нагрузку в 5 млн rps
https://habr.com/ru/articles/742402/ - оптимизации памяти и управлении сборщиком мусора в Go
}
Revers and maldev {
- https://medium.com/@APT-0x38/introduction-to-malware-engineering-with-go-part-1-3270706f1c28 - введение в разработку вирусов на GO
- https://cujo.com/blog/reverse-engineering-go-binaries-with-ghidra/ - Реверсинг с гидрой
- https://rednaga.io/2016/09/21/reversing_go_binaries_like_a_pro/ - Reversing GO binaries like a pro
- https://www.sentinelone.com/labs/alphagolang-a-step-by-step-go-malware-reversing-methodology-for-ida-pro/ - шаг за шагом методологии реверсинга на Го}
Низкоуровневое {
https://habr.com/ru/companies/ruvds/articles/744230/ - возможностями Go для выполнения манипуляций с битами
}