Go — один из немногих языков, где конкурентность встроена в сам язык, а не прикручена сверху через библиотеки.
Конкурентность ≠ параллелизм
Конкурентность — это структура программы, где задачи продвигаются независимо.
Параллелизм — когда задачи буквально выполняются одновременно на разных ядрах.
Go даёт инструменты конкурентности, а параллелизм — уже дело железа и планировщика.
Почему не потоки
Обычный OS-поток весит ~1 МБ памяти и дорого переключается. Тысячи потоков — и планировщик ОС уже задыхается.
Горутина стартует с ~2 КБ стека, растёт динамически, создаётся и уничтожается молниеносно. Go-рантайм мультиплексирует тысячи горутин на маленький пул OS-потоков. Запустить 100 000 горутин — норма. 100 000 потоков — трэш.
Общение вместо общей памяти
Классика с потоками — общая память + мьютексы + гонки данных. Go предлагает другой подход:
Не общайтесь через общую память — передавайте данные через общение
Канал — типизированный конвейер для передачи данных между горутинами.
Каналы хороши для передачи владения данными, пайплайнов, воркер-пулов и сигнализации. Мьютекс из
sync — для защиты счётчиков и небольших критических секций, где важна производительность.Одно слово
go — и задача живёт своей жизнью. Никакого церемониала, никакого страха.📍 Навигация: Вакансии • Задачи • Собесы
#GoDeep
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍5
👩💻 Гендерный разрыв в IT
Женщины в российском IT зарабатывают в среднем 99 тысяч рублей, мужчины — 156 тысяч. Разрыв в 40% выглядит тревожно, но объяснить его одной лишь дискриминацией не получится.
Где начинается реальное неравенство, а где просто статистика — разбираемся в статье 👈
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека Go-разработчика
Женщины в российском IT зарабатывают в среднем 99 тысяч рублей, мужчины — 156 тысяч. Разрыв в 40% выглядит тревожно, но объяснить его одной лишь дискриминацией не получится.
Где начинается реальное неравенство, а где просто статистика — разбираемся в статье 👈
📍 Навигация: Вакансии • Задачи • Собесы
Please open Telegram to view this post
VIEW IN TELEGRAM
😁12🤔6❤2🥱1🌚1
🐹 Высоконагруженные AI-агенты: инжиниринг вместо промпт-инжиниринга
В 2026 году AI-системы становятся частью высоконагруженной инфраструктуры. Для Go-разработчика это означает вызовы в области управления ресурсами, токенами и задержками. Наш обновлённый курс сфокусирован именно на технической стороне вопроса.
📚 В обновлённой программе:
— экономика агентов: управление затратами, кэшированием и эффективным роутингом;
— продвинутый
—
— безопасность и закон: работа с конфиденциальными данными в рамках
Материалы для подготовки уже ждут вас — начните изучение фундамента агентов прямо сейчас.
⏳ Специальные условия до 28 февраля:
— введите промокод
— участвуйте в **акции «3 курса по цене 1» — выберите два любых курса в дополнение к основному.
👉 Получить доступ к курсу и подаркам
В 2026 году AI-системы становятся частью высоконагруженной инфраструктуры. Для Go-разработчика это означает вызовы в области управления ресурсами, токенами и задержками. Наш обновлённый курс сфокусирован именно на технической стороне вопроса.
📚 В обновлённой программе:
— экономика агентов: управление затратами, кэшированием и эффективным роутингом;
— продвинутый
RAG: методы улучшения поисковых запросов в промышленной эксплуатации;—
LangGraph: построение сложных цепочек решений с контролем промежуточных состояний;— безопасность и закон: работа с конфиденциальными данными в рамках
152-ФЗ.Материалы для подготовки уже ждут вас — начните изучение фундамента агентов прямо сейчас.
⏳ Специальные условия до 28 февраля:
— введите промокод
Agent для получения скидки 10 000 рублей**; — участвуйте в **акции «3 курса по цене 1» — выберите два любых курса в дополнение к основному.
👉 Получить доступ к курсу и подаркам
😢2🥱2❤1😁1
Вспоминаем прошедшую неделю, уже поели блины?
— TicTacToe SSH
— Фронтенд-разработчик рассказал про переход на Go
— go-testdeep v1.15.0
— Новая жизнь старой команды
— Гендерный разрыв в IT
📍 Навигация: Вакансии • Задачи • Собесы
#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉 Завтра понедельник, но выходной
А значит можно наконец:
— дочитать статью, которая висит в закладках с прошлого года
— поковырять пет-проект без угрызений совести
— или просто лежать и думать что надо бы покодить 😅
💬 Что выбираете? 👇
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека Go-разработчика
#GoTalk
А значит можно наконец:
— дочитать статью, которая висит в закладках с прошлого года
— поковырять пет-проект без угрызений совести
— или просто лежать и думать что надо бы покодить 😅
💬 Что выбираете? 👇
📍 Навигация: Вакансии • Задачи • Собесы
#GoTalk
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Если вы пишете веб-приложения на Go и устали вручную рендерить HTML-формы — посмотрите на эту библиотеку.
go-form генерирует формы автоматически: берёт Go-структуру и отдаёт готовый HTML.
Как это работает
Описываете форму как обычную структуру:
type LoginForm struct {
Username string `form:"input,text" label:"Имя пользователя" required:"true"`
Password string `form:"input,password" label:"Пароль" required:"true"`
Email string `form:"input,email" label:"Email" required:"true"`
}Подключаете шаблон и рендерите:
f := form.NewForm(templates.BootstrapV5)
funcMap := f.FuncMap()
tmpl := template.Must(
template.New("form").Funcs(funcMap).Parse(`{{ form_render .Form nil }}`),
)
Готово — форма с лейблами, плейсхолдерами и валидацией.
Что внутри
Поддерживаемые типы полей: text, password, email, number, date, datetime-local, time, color, range, hidden, search, url, tel, checkbox, radio, dropdown, textarea, multicheckbox.
Три готовых стиля оформления:
• Plain HTML — минимум стилей
• Bootstrap 5 — стандартная Bootstrap-разметка
• Tailwind CSS v3 — классы Tailwind
CSRF-защита — встроенная, с поддержкой middleware для стандартного http.ServeMux и Chi-роутера. Токены автоматически генерируются, проверяются и обновляются.
📍 Навигация: Вакансии • Задачи • Собесы
#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11🤔6👍3
Команда go run запускает код напрямую, без создания бинарного файла. Никаких промежуточных артефактов, никаких лишних шагов — просто написал и сразу проверил результат.
Для одного файла:
go run main.go
Для проекта с несколькими файлами:
go run .
Где это реально спасает — при прототипировании. Пишете новый хендлер, разбираете формат данных, проверяете логику парсинга — и не хочется каждый раз устраивать полноценную сборку.
Да, для продакшена всё равно нужен go build — бинарник быстрее стартует и проще деплоить. Но на этапе разработки и экспериментов go run — это про скорость мышления, а не скорость компилятора.
📍 Навигация: Вакансии • Задачи • Собесы
#GoDeep
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱18❤6😁2
В Go есть анализатор unsafefuncs, который находит в коде ручную арифметику с указателями и предлагает заменить её на вызовы функций-хелперов из пакета unsafe.
Паттерн
unsafe.Pointer(uintptr(ptr) + uintptr(n)) заменяется на unsafe.Add(ptr, n). Функция
unsafe.Add появилась в Go 1.17 именно для того, чтобы убрать громоздкое приведение типов, которое легко написать неправильно.Цепочка
uintptr(ptr) + uintptr(n) — это арифметика над голыми числами, и GC не знает, что тут был указатель.📍 Навигация: Вакансии • Задачи • Собесы
#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🧑💻 Вопрос сообществу
Гоферы, вопрос к вам:
Как вам опыт? Всё работает гладко, или предпочитаете Linux/macOS?
Расскажите в комментариях — особенно интересно, как вы решаете вопросы с тулингом, WSL и окружением.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека Go-разработчика
#GoTalk
Гоферы, вопрос к вам:
Используете ли вы Windows в качестве основной ОС для разработки на Go?
Как вам опыт? Всё работает гладко, или предпочитаете Linux/macOS?
Расскажите в комментариях — особенно интересно, как вы решаете вопросы с тулингом, WSL и окружением.
📍 Навигация: Вакансии • Задачи • Собесы
#GoTalk
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Poll
31%
Да, даже код пишу
21%
Да, но код пишу на Linux
30%
Нет
18%
Ни за что
🥱9👾2🔥1
Winslop — утилита с одной задачей: убрать из Windows 11 всё лишнее.
Никакого Copilot в трее, никакой телеметрии, никаких виджетов и рекламы в меню Пуск. Только то, что вы сами разрешили оставить.
• показывает, что именно будет изменено
• ничего не запускает автоматически
• всё обратимо
• никакого облака — всё локально
👉 Чистим винду
📍 Навигация: Вакансии • Задачи • Собесы
#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13👍3
Когда вы пишете функцию с десятком параметров, особенно если это булевые флаги, код становится непонятным.
Просто посмотрите на строку:
client := NewClient("api.example.com", 30, true, false, 1000)Не хватает контекста — что значит 30, true, false, 1000? Следующий параметр — это таймаут? Количество попыток? Логирование? Нет. Никто не знает.
Решение — паттерн функциональные опции. Он не просто улучшает читаемость, он делает код естественным, как английский язык.
Вот как это выглядит:
type Client struct {
endpoint string
timeout time.Duration
retries int
verbose bool
}
type Option func(*Client)
func WithTimeout(d time.Duration) Option {
return func(c *Client) {
c.timeout = d
}
}
func WithRetries(n int) Option {
return func(c *Client) {
c.retries = n
}
}
func WithVerboseLogging() Option {
return func(c *Client) {
c.verbose = true
}
}
func NewClient(endpoint string, opts ...Option) *Client {
c := &Client{
endpoint: endpoint,
timeout: 10 * time.Second,
retries: 3,
verbose: false,
}
for _, opt := range opts {
opt(c)
}
return c
}Как это используется:
client := NewClient("api.example.com",
WithTimeout(30*time.Second),
WithRetries(5),
WithVerboseLogging(),
)Как будто вы говорите: создаём клиента к api.example.com, с таймаутом 30 секунд, 5 попытками и включённым логированием.
Когда вы пишете настройки, не используйте 10 параметров. Используйте функции, которые описывают, что вы хотите. Тогда код не будет требовать комментариев — он сам будет говорить.
📍 Навигация: Вакансии • Задачи • Собесы
#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤5🥰3😁1