uz
Feedback
Go tests

Go tests

Kanalga Telegram’da o‘tish

По всем вопросам- @haarrp @itchannels_telegram - 🔥полезные ит-каналы https://t.me/Golang_google - Golang программирование @golangl - golang chat @GolangJobsit - golang channel jobs @golang_jobsgo - go chat jobs

Ko'proq ko'rsatish
7 770
Obunachilar
-724 soatlar
-77 kunlar
-2430 kunlar
Obunachilarni jalb qilish
Iyul '26
Iyul '26
+45
0 kanalda
Iyun '26
+73
0 kanalda
Get PRO
May '26
+91
0 kanalda
Get PRO
Aprel '26
+81
0 kanalda
Get PRO
Mart '26
+120
0 kanalda
Get PRO
Fevral '26
+133
0 kanalda
Get PRO
Yanvar '26
+131
0 kanalda
Get PRO
Dekabr '25
+124
0 kanalda
Get PRO
Noyabr '25
+168
1 kanalda
Get PRO
Oktabr '25
+112
0 kanalda
Get PRO
Sentabr '25
+280
1 kanalda
Get PRO
Avgust '25
+134
0 kanalda
Get PRO
Iyul '25
+273
0 kanalda
Get PRO
Iyun '25
+146
0 kanalda
Get PRO
May '25
+118
0 kanalda
Get PRO
Aprel '25
+161
1 kanalda
Get PRO
Mart '25
+163
0 kanalda
Get PRO
Fevral '25
+187
0 kanalda
Get PRO
Yanvar '25
+258
0 kanalda
Get PRO
Dekabr '24
+271
0 kanalda
Get PRO
Noyabr '24
+282
0 kanalda
Get PRO
Oktabr '24
+454
5 kanalda
Get PRO
Sentabr '24
+315
1 kanalda
Get PRO
Avgust '24
+314
0 kanalda
Get PRO
Iyul '24
+272
0 kanalda
Get PRO
Iyun '24
+405
1 kanalda
Get PRO
May '24
+526
36 kanalda
Get PRO
Aprel '24
+461
43 kanalda
Get PRO
Mart '24
+514
20 kanalda
Get PRO
Fevral '24
+351
1 kanalda
Get PRO
Yanvar '24
+370
43 kanalda
Get PRO
Dekabr '23
+370
39 kanalda
Get PRO
Noyabr '23
+224
1 kanalda
Get PRO
Oktabr '23
+148
0 kanalda
Get PRO
Sentabr '23
+257
0 kanalda
Get PRO
Avgust '23
+414
0 kanalda
Get PRO
Iyul '23
+315
0 kanalda
Get PRO
Iyun '23
+377
0 kanalda
Get PRO
May '23
+63
0 kanalda
Get PRO
Aprel '23
+34
0 kanalda
Get PRO
Mart '23
+119
0 kanalda
Get PRO
Fevral '23
+227
0 kanalda
Get PRO
Yanvar '23
+76
0 kanalda
Get PRO
Dekabr '22
+1 344
0 kanalda
Get PRO
Noyabr '22
+41
0 kanalda
Get PRO
Oktabr '22
+147
0 kanalda
Get PRO
Sentabr '22
+132
0 kanalda
Get PRO
Avgust '22
+528
0 kanalda
Get PRO
Iyul '22
+282
0 kanalda
Get PRO
Iyun '22
+301
0 kanalda
Get PRO
May '22
+151
0 kanalda
Get PRO
Aprel '22
+1 190
0 kanalda
Get PRO
Mart '22
+900
0 kanalda
Get PRO
Fevral '22
+1 230
0 kanalda
Sana
Obunachilarni jalb qilish
Esdaliklar
Kanallar
14 Iyul+2
13 Iyul+1
12 Iyul+2
11 Iyul+1
10 Iyul+7
09 Iyul+4
08 Iyul+6
07 Iyul+5
06 Iyul+1
05 Iyul+4
04 Iyul+2
03 Iyul+3
02 Iyul+4
01 Iyul+3
Kanal postlari
👣 Go давно починил старую ловушку с замыканиями в цикле. Но concurrency всё ещё может кусаться. Что не так с этим кодом?

package main

import (
 "fmt"
 "sync"
)

func main() {
 nums := []int{1, 2, 3, 4}

 var wg sync.WaitGroup
 result := make([]int, 0, len(nums))

 for i, n := range nums {
  wg.Go(func() {
   result = append(result, i*n)
  })
 }

 wg.Wait()

 fmt.Println(result)
}
На первый взгляд всё нормально. i и n уже не общие для всех итераций. В современном Go каждая итерация получает свои переменные, поэтому старого бага с замыканием тут нет. Проблема в другом месте. `append` меняет slice header и может трогать общий backing array. Несколько горутин делают это одновременно. Значит, здесь data race, даже если loop variables теперь безопасные. Правильный вариант: ```go id="9f32ws" package main import ( "fmt" "sync" ) func main() { nums := []int{1, 2, 3, 4} var wg sync.WaitGroup result := make([]int, len(nums)) for i, n := range nums { wg.Go(func() { result[i] = i * n }) } wg.Wait() fmt.Println(result) } ``` Теперь каждая горутина пишет в свой индекс. Без mutex. Без channel. Без лишнего копирования переменных. Хороший тест на то, понимаешь ли ты Go после 1.22, а не просто помнишь старую страшилку про closures.

2
🔍Тестовое собеседование с Go Senior с опытом работы в Яндексе, EPAM и Uzum в этот четверг 16 июля(в четверг!) в 19:00 по мск
🔍Тестовое собеседование с Go Senior с опытом работы в Яндексе, EPAM и Uzum в этот четверг 16 июля(в четверг!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Go-разработчика. Как это будет: 📂 Маруф Караев, Senior в европйской компании, ex-Uzum, ex-Яндекс, ex-EPAM будет задавать реальные вопросы и задачи разработчику-добровольцу 📂 Маруф будет комментировать каждый ответ респондента, чтобы дать понять, чего от вас ожидает собеседующий на интервью 📂 В конце можно будет задать любой вопрос Маруфу Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Go-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы. Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_go_bot Реклама. О рекламодателе.
592
3
👣 Golang-задача с подвохом Версия: Go 1.23+ Что выведет код? package main import "fmt" func numbers(yield func(int) bool) { defer fmt.Println("iterator: defer") for i := 0; i < 5; i++ { if !yield(i) { fmt.Println("iterator: stopped") return } fmt.Println("iterator: after yield", i) } } func main() { for n := range numbers { fmt.Println("main:", n) if n == 2 { break } } fmt.Println("main: done") } Многие ждут, что после break итератор просто мгновенно исчезнет. Но в Go 1.23 появился range по функции. Под капотом yield возвращает false, если внешний цикл остановился через break. Ответ: ```txt id="5glpxa" main: 0 iterator: after yield 0 main: 1 iterator: after yield 1 main: 2 iterator: stopped iterator: defer main: done ``` Подвох в том, что `break` происходит во внешнем цикле, но функция-итератор получает сигнал остановки через `yield`. Если не проверить `!yield(i)`, можно продолжить работу после того, как потребитель уже вышел из цикла.
1 484
4
Разрабатываете на Go больше четырёх лет? Сразу 7 наших команд ждут вас: Сервис Транспорта строит маршруты во всех продуктах 2
Разрабатываете на Go больше четырёх лет? Сразу 7 наших команд ждут вас: Сервис Транспорта строит маршруты во всех продуктах 2ГИС, отображает пробки, дорожные события и автобусы на карте. Social сотворяет магию вокруг социального графа. Platform Backend Services превращает бизнес‑требования в платформенные сервисы: от идеи до запуска фич мобильными командами без лишних зависимостей. Web API решает все справочные задачи, управляет стилями карт и обратной связью от пользователей в продуктах. Сервис Рекламы создаёт техническую основу для продуктов рекламного направления. 2ГИС Логистика строит и пересчитывает маршруты с учётом пробок, погодных условий, типов транспорта, параметров груза и сложных логистических цепочек. ГеоПоток помогает бизнесу повышать прозрачность процессов и сокращать издержки. Все вакансии на сайте Другие инженерные инсайты от 2ГИС → в Telegram-канале RnD
1 136
5
❓ Какая команда запустит тестирование всех пакетов проекта, если вы находитесь в корневой директории проекта
2 062
6
⚙️ Лучшие практики в Go: кейсы, которые особенно ждём С 1 июня у нас стартует новый сезон Podlodka Go Crew — «Лучшие практики
⚙️ Лучшие практики в Go: кейсы, которые особенно ждём С 1 июня у нас стартует новый сезон Podlodka Go Crew — «Лучшие практики в Go». Он пройдёт при поддержке 2ГИС. Будем говорить о том, как писать код, который нормально живёт в продакшене при росте нагрузки и команды. Вот какие сессии в этом сезоне мы ждём с особенным вниманием: 🚀 «Практика Go оптимизаций: растем вместе с нагрузкой», Алексей Акулович — путь сервиса от прототипа до миллионов RPS, оптимизация CPU, grpc, protobuf и даже собственный GC поверх гошного. 🏗 «Эволюция структуры Go-проекта: как 30 человек пушат в один репозиторий», Кирилл Возжеников — про рост продуктового монорепозитория, построение системы и практики, которые помогают не утонуть в хаосе. 🧩 «Как и зачем писать свой CDC на Go», Юра Саргсян — о ситуации, где стандартных решений уже недостаточно. Postgres, Kafka, гарантии доставки и и подводные камни логической репликации. 🔥 А в конце сезона проведём битву кейсов «50 оттенков межсервисного взаимодействия» — вместе разберём архитектурные задачи с метриками, схемами и ограничением на уточняющие вопросы. 👨‍💻 Будет много живых инженерных кейсов и обсуждений без абстракций. Приходите — будем разбирать реальные задачи и подходы, которые помогают строить надёжные системы. 🎟 Билеты здесь: https://podlodka.io/gocrew
1 200
7
❓ Как объявить канал только для чтения в аргументе функции
1 722
8
Собираетесь к нам в Go? ➡ Рассказали, как мы построили наймовый процесс, чтобы сделать его честнее для всех. Другие инженерны
Собираетесь к нам в Go? ➡ Рассказали, как мы построили наймовый процесс, чтобы сделать его честнее для всех. Другие инженерные инсайты от 2ГИС → в Telegram-канале RnD
1 334
9
Что выведет код?
Что выведет код?
0
10
⚡️ Вышло большое обновление популярного курса- Ai AI агенты, которые реально работают в проде! Вы всё ещё пишете обёртки над
⚡️ Вышло большое обновление популярного курса- 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/
0