❌ Ошибка 1: Переменные как попало (и особенно через := везде)
Симптом:
name := "John"
age := 25
isActive := trueСначала норм. Потом у тебя 50 переменных в одном scope и ты уже не понимаешь, что откуда.
Проблема:
Сложно читать код
Легко случайно переопределить переменную
Как правильно:
var (
name string = "John"
age int = 25
)👉 Используй var, когда переменные логически связаны 👉 := — только для коротких локальных кейсов
❌ Ошибка 2: Игнорирование ошибок (классика 😎)
Симптом:
data, _ := os.ReadFile("file.txt")Ты такой: “да там всё норм будет”… А потом файл не найден — и ты ищешь баг 2 часа.
Как правильно:
data, err := os.ReadFile("file.txt")
if err != nil {
log.Fatal(err)
}👉 В Go ошибки — это не опция 👉 Игноришь ошибку → получаешь баг
❌ Ошибка 3: Горутины без контроля (добро пожаловать в хаос)
Симптом:
go doSomething()Запустил и забыл. А завершилась ли она? А ошибка была? А утечка?
Как правильно:
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
doSomething()
}()
wg.Wait()👉 Всегда контролируй горутины 👉 Используй WaitGroup или каналы
❌ Ошибка 4: Каша из пакетов
Симптом:
/project
main.go
utils.go
helpers.go
service.go
repository.goСначала удобно. Потом это превращается в “где что лежит???”
Как правильно:
/project
/cmd
/internal
/service
/repository
/handler
👉 Разделяй по ответственности 👉 Структура = читаемость + масштабируемость
❌ Ошибка 5: Писать “как в другом языке”
Очень частая штука:
пытаются писать как в Java / Python
тащат лишние абстракции
делают “ООП ради ООП”
Реальность:
Go — это про:
простоту
явность
минимум магии
Как правильно:
👉 Пиши проще 👉 Не усложняй 👉 Если можно сделать в 5 строк — не делай в 20
🚀 Бонус: где это всё нормально отработать?
Если ты сейчас такой:
“ок, понял ошибки… а как закрепить?”
Попробуй приложение Кодик 👇
💻 практика прямо в приложении
📚 задания от простого к сложному
🧠 обучение без перегруза
И ещё есть Telegram-сообщество, где:
выходят такие же полезные разборы
можно повторять темы короткими постами
и просто быть в среде разработчиков
👉 Очень помогает не слиться на старте
