Полезный обзор хороших и не очень практик написания кода на Go.
Здесь описывается работа с ошибками, обработка паники, изменение сигнатур функций, перезапись имён пакетов, тестирование и ещё несколько очень моментов, в которых ошибки делать не стоит.
Есть несколько и чисто архитектурных моментов, наподобие использования монолита
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
—
go get -u github.com/JubaerHossain/rootx
Вот такой пет-проект на Go, эта утилита позволяет создавать модули, делать миграцию баз данных и многое другое из-под root'а, без необходимости вручную на него переключаться.
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Здесь подробно описаны порождающие паттерны конкурентного программирования, такие как:
— Generator — нахождение последовательности некоторых значений, которые используется для получения конечного результата
— Fan In — объединение несколько входов в один выходной канал
— Pipeline — соединение каналами разных групп горутин; горутины в одной группе выполняют одну и ту же задачу
— Worker Pool — распараллеливание задачи между несколькими горутинами
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Здесь приведено множество примеров Go кода для самых частых и базовых задач;
на примерах объясняются разные концепции Go
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Эти практические задания покрывают разные темы Go: циклы и функции, слайсы, map, строки и много других тем
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Здесь приведено много примеров для понимания не самых простых тем Go — интерфейсов, горутин, конкурентности, каналов и работы с ними, WaitGroup, Mutex'ов и т.д.
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Здесь приведено несколько типичных заданий, которые наверняка попадутся на собеседовании. Решения к первым нескольким задачам можно посмотреть без авторизации.
Вот условия некоторых из задач:
— напиши функцию, которая проверяет, является ли строка палиндромом
— реализуй функцию бинарного поиска
— создай реализацию стека (LIFO)
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM