Go tests
Відкрити в Telegram
По всем вопросам- @haarrp @itchannels_telegram - 🔥полезные ит-каналы https://t.me/Golang_google - Golang программирование @golangl - golang chat @GolangJobsit - golang channel jobs @golang_jobsgo - go chat jobs
Показати більше7 800
Підписники
+124 години
Немає даних7 днів
+930 день
Архів дописів
7 801
❓ Какая команда запустит тестирование всех пакетов проекта, если вы находитесь в корневой директории проекта
7 801
⚙️ Лучшие практики в Go: кейсы, которые особенно ждём
С 1 июня у нас стартует новый сезон Podlodka Go Crew — «Лучшие практики в Go». Он пройдёт при поддержке 2ГИС. Будем говорить о том, как писать код, который нормально живёт в продакшене при росте нагрузки и команды.
Вот какие сессии в этом сезоне мы ждём с особенным вниманием:
🚀 «Практика Go оптимизаций: растем вместе с нагрузкой», Алексей Акулович — путь сервиса от прототипа до миллионов RPS, оптимизация CPU, grpc, protobuf и даже собственный GC поверх гошного.
🏗 «Эволюция структуры Go-проекта: как 30 человек пушат в один репозиторий», Кирилл Возжеников — про рост продуктового монорепозитория, построение системы и практики, которые помогают не утонуть в хаосе.
🧩 «Как и зачем писать свой CDC на Go», Юра Саргсян — о ситуации, где стандартных решений уже недостаточно. Postgres, Kafka, гарантии доставки и и подводные камни логической репликации.
🔥 А в конце сезона проведём битву кейсов «50 оттенков межсервисного взаимодействия» — вместе разберём архитектурные задачи с метриками, схемами и ограничением на уточняющие вопросы.
👨💻 Будет много живых инженерных кейсов и обсуждений без абстракций. Приходите — будем разбирать реальные задачи и подходы, которые помогают строить надёжные системы.
🎟 Билеты здесь: https://podlodka.io/gocrew
7 801
Собираетесь к нам в Go?
➡ Рассказали, как мы построили наймовый процесс, чтобы сделать его честнее для всех.
Другие инженерные инсайты от 2ГИС → в Telegram-канале RnD
7 801
⚡️ Вышло большое обновление популярного курса- Ai AI агенты, которые реально работают в проде!
Вы всё ещё пишете обёртки над ChatGPT и называете это «AI-продуктом»?
Пока вы промптите - рынок переходит на агентные системы. Те, что принимают решения, ходят в API, работают с Postgres и Redis, управляют браузером через Playwright.
И 90% таких систем ломаются между ноутбуком и продом.
AI Agents Engineering - курс, который закрывает этот разрыв. LangGraph, AutoGen, Computer Use, LLMOps. 8 модулей, 120+ шагов - от архитектуры до деплоя в Docker.
На выходе: реальный опыт на большой практической базе, а production-агент и навыки, за которые уже платят.
👉 48 часов действует скидка на курс 55 процентов: https://stepik.org/a/276971/
7 801
Для тех, кто строит и масштабирует сервисы на Go: 25 апреля пройдет Я.Субботник по Go
Яндекс проведет митап офлайн в Санкт-Петербурге и онлайн. Участников будут ждать практические доклады, живые кейсы и решения, проверенные под нагрузкой.
Руководитель группы разработки Городских сервисов Владимир Тельбухов покажет, как наладить консистентность в интеграциях с внешними сервисами. А разработчик Yandex Cloud Иван Похабов, расскажет, как устроен GoBGP, какие баги в нём встречаются и как их исправляют в production. Полную программу выступлений можно найти на сайте.
Помимо докладов, для участников проведут круглые столы, квиз по Go, а также экскурсию по питерскому офису Яндекса, для которой офлайн-участникам потребуется предварительная регистрация.
👉 Регистрируемся
7 801
❓ В каком случае можно использовать пользовательские типы как ключи в мапе
7 801
Проект можно запустить быстро, но выдержит ли он рост нагрузки, требования к безопасности и отказоустойчивости? Часто на старте думают только о функциях. Производительность, масштабирование, защита — добавим потом. В реальности это «потом» оборачивается дорогими переделками и компромиссами.
На бесплатном вебинаре:
• разберём, как требования к нагрузке, отказоустойчивости и безопасности формируют архитектуру с первого дня.
• поговорим о том, какие нефункциональные требования влияют на систему сильнее всего.
• как собирать и формулировать их вместе с бизнесом и как принимать архитектурные решения с учётом сроков и бюджета.
Спикер Александр Хохлов — архитектор платформенных решений в ГК Иннотех.
Открытый урок проходит в преддверии старта курса «Проектирование систем».
Регистрируйтесь сейчас - напомним перед вебинаром: регистрация
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
7 801
🔍Тестовое собеседование с Go Senior из Uzum в этот четверг
9 апреля(в четверг!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Go-разработчика.
Как это будет:
📂 Маруф Караев, Senior из Uzum, ex-Яндекс, ex-EPAM будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Маруф будет комментировать каждый ответ респондента, чтобы дать понять, чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Маруфу
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Go-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_go_bot
Реклама.
О рекламодателе.
7 801
❓ Почему код падает и как это исправить
Функция должна заполнить срез и мапу,
но сейчас она падает с panic.
В чём проблема?
func fillData(s []int, m map[string]int) {
// Добавляем в срез
s = append(s, 10, 20, 30)
// Добавляем в мапу
m["count"] = len(s)
m["total"] = 60
fmt.Println("Срез:", s)
fmt.Println("Мапа:", m)
}
func main() {
fillData(nil, nil)
}
💡 Подсказка: срез и мапа ведут себя по-разному
append к nil срезу работает нормально
запись в nil map → panic
🔥 В чём ошибка
m не инициализирована → это nil map
в неё нельзя записывать значения7 801
Скоро стартует F1 для Go-инженеров — VK JT Meetup
VK приглашает обсудить реальные архитектурные кейсы, а также новости и вызовы индустрии.
Когда и где:
📍 Москва — 4 апреля
📍 Санкт-Петербург — 11 апреля
Только офлайн. В программе технические доклады, командные активности и общение.
Москва:
• как сократить число проверок прав с 400 млн до 200 тысяч, не сломав бизнес-логику
• устройство безопасной архитектуры платформы мини-приложений: изоляция, мультитенантность, контроль ресурсов и границы ответственности между платформой и разработчиком
Дальше два трека на выбор: решение архитектурной задачи в команде с обратной связью от лидов VK или обсуждение инженерных новостей в записи подкаста. А в завершение встречи — неформальная вечеринка с коллегами.
Санкт-Петербург:
• устройство безопасной архитектуры платформы мини-приложений: изоляция, мультитенантность, контроль ресурсов и границы ответственности между платформой и разработчиком
• как сделать клиент для Tarantool на Go по-настоящему быстрым — от наивной реализации до оптимизаций, которые режут аллокации и горутины
После докладов — решение архитектурной задачи и живое общение с экспертами VK и коллегами.
Участие бесплатное. Регистрируйтесь по ссылке и приходите!
7 801
Хитрая Go-задача:
package main
import "fmt"
type uint128 struct {
Hi uint64
Lo uint64
}
func f(φ uint128, β int) uint32 {
return uint32(φ.Hi >> (63 - β))
}
func main() {
x := uint128{Hi: 0x8000000000000001}
fmt.Println(f(x, 0))
fmt.Println(f(x, 1))
fmt.Println(f(x, 63))
}
Вопросы:
Что выведет код?
Что будет при β = 64?
Можно ли объявить одновременно beta и β?
Ожидаемый ответ:
1
2
1
Подвох:
сдвиг зависит от β
возможен отрицательный shift
обрезание до uint32
beta и β - разные переменные
• Вам нужно понять, как работает сдвиг вправо
заметить, что в конце результат режется до uint32
• увидеть, что при β = 64 получится отрицательный сдвиг:
63 - 64 = -1
и ещё понять, что beta и β в Go - это разные имена переменных
То есть с виду задача про один shift, а на деле она проверяет сразу несколько знаний.
Запустить код: https://go.dev/play/
Полезные ресурсы Go 🚀Max
@Golang_google7 801
👣 Задача: что выведет программа?
package main
import "fmt"
func main() {
for i := 0; i < 3; i++ {
defer fmt.Println(i)
}
for i := 0; i < 3; i++ {
defer func() {
fmt.Println(i)
}()
}
for i := 0; i < 3; i++ {
i := i
defer func() {
fmt.Println(i)
}()
}
}
Ответ: https://go.dev/play/p/pntndQy2jzo7 801
👣 Большинство изучают Go ради синтаксиса.
Ты научишься писать сервисы, которые работают в продакшене.
Это не про
«Hello, World» и горутины ради галочки.
Это про бэкенд на Go, который:
* выдерживает нагрузку
* обрабатывает тысячи запросов одновременно
* работает быстро и стабильно
* легко масштабируется
* выглядит как реальный сервис, а не учебный проект
Ты начнёшь видеть Go не как язык, а как инструмент для построения систем.
В итоге ты сможешь:
* писать высоконагруженные API
* создавать микросервисы
* работать с базами данных и очередями
* разбираться в конкурентности и производительности
* брать коммерческие backend-проекты
Это навык, который ценится на рынке.
Не «знаю Go», а умею делать быстрые и надёжные сервисы.
🎁 48 часов скидка 50% на Stepik: https://stepik.org/a/274119/7 801
🧠 Хитрая Go-задача про интерфейсы и память (x64)
Код:
package main
import (
"fmt"
"unsafe"
)
type Foo struct {
A int64
}
type IFoo interface {
Get() int64
}
func (f Foo) Get() int64 { return f.A }
func main() {
var a int64 = 10
var s Foo = Foo{A: 42}
var i IFoo = s
fmt.Println(unsafe.Sizeof(a))
fmt.Println(unsafe.Sizeof(s))
fmt.Println(unsafe.Sizeof(i))
}
Вопросы
• Сколько байт занимает a на x64?
• Сколько байт занимает s?
• Сколько байт занимает i?
• Почему размер i не равен размеру Foo?
• Что реально хранится внутри interface{} в Go?
Разберём по шагам, как это работает в Go на x64.
Код:
```go
var a int64 = 10
var s Foo = Foo{A: 42}
var i IFoo = s
```
1) Размер a
unsafe.Sizeof(a)
```go
int64 = 8 байт
```
На x64:
a = 8 байт
2) Размер s
```go
type Foo struct {
A int64
}```
В структуре одно поле int64.
```go
s = 8 байт
```
3) Размер интерфейса i
```go
var i IFoo = s
unsafe.Sizeof(i)
```go
На x64:
```go
i = 16 байт```
Запустить код: https://go.dev/play/p/NLIG3q-jFc97 801
🔍Тестовое собеседование с Go ТехЛидом из WildBerries в этот четверг
29 января(в четверг!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Go-разработчика.
Как это будет:
📂 Рамиль Мясоутов, ТехЛид из WildBerries, ex-Купер будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Рамиль будет комментировать каждый ответ респондента, чтобы дать понять, чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Рамилю
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Go-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_go_bot
Реклама.
О рекламодателе.
7 801
❓ Какой размер у переменной, типом которой является интерфейс на x64 архитектуре
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
