Библиотека Go-разработчика | Golang
24K subscribers
2.48K photos
48 videos
88 files
4.95K links
Все самое полезное для Go-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/32d20779

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a4a8c24689c2151c752af0

#WXSSA
Download Telegram
🤨 Реален ли DRY в реальной жизни

Вчера на собеседовании админа спросили вопрос, который поставил его в тупик:
Возможно ли применить DRY в своей повседневной жизни


На собеседовании в голову так ничего не пришло, но спустя пару часов появился вариант с двумя входными дверьми в квартиру. В обычном жилом доме явно не нужно второй вход.

💬 Сможете придумать свой ответ? Есть ли у вас дубли в жизни?

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека Go-разработчика

#GoTalk
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚32
🔄 Релиз Go 1.26

Команда Go представила версию 1.26 с улучшениями языка, рантайма и инструментария.

Ключевые нововведения:

➡️ Язык

• Функция new теперь принимает выражения с начальным значением

• Дженерики получили поддержку самоссылающихся типов для сложных структур данных

➡️ Производительность

• Green Tea GC теперь включён по умолчанию.

• Накладные расходы cgo сократились примерно на 30%

• Компилятор чаще размещает слайсы на стеке

➡️ Инструменты

• go fix переписан с нуля: автоматические модернизации кода под новые возможности языка

• Встроенные анализаторы помогают использовать фичи эффективнее

➡️ Стандартная библиотека

• Три новых пакета: crypto/hpke, crypto/mlkem/mlkemtest, testing/cryptotest

➡️ Экспериментальное:

• simd/archsimd — работа с SIMD-инструкциями

• runtime/secret — безопасная очистка криптографических данных

➡️ Блог разработчиков

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека Go-разработчика

#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🔥11👏4
✏️ API-клиент для терминала, который не заставит вас покидать tmux

Каждый разработчик на Go должен написать свой инструмент. Вот ещё один пример отличного проекта.

gottp — это альтернатива Postman и Insomnia для тех, кто живёт в терминале.

Проект поддерживает HTTP/REST, GraphQL, WebSocket и gRPC. Коллекции запросов хранятся в YAML-файлах, есть переменные окружения с интерполяцией, а импортировать данные можно из cURL, Postman или Insomnia.

➡️ Репозиторий

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека Go-разработчика

#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥8
🤓 Топ-вакансий для Go-разработчиков за неделю

Middle+ Golang-разработчик
(ИИ-код) — 230 000 - 320 000 ₽. Удаленно (Москва)

Senior Golang Engineer в команду Отелло — до 550 000 ₽. Гибрид/Офис (Москва, Санкт-Петербург, Новосибирск)

Junior Go Developer — от 75 000 до 120 000 ₽. Удаленно (Казань)

➡️ Еще больше топовых вакансий — в нашем канале Go jobs

🐸 Библиотека Go-разработчика

#GoWork
Please open Telegram to view this post
VIEW IN TELEGRAM
33
benchmark_test.go
11 KB
🚀 5 техник оптимизации Go

Оптимизация в Go нужна, когда приложение упирается в CPU, память или задержки в проде. Но Дональд Кнут прав: преждевременная оптимизация портит код, так что сначала замерьте узкие места.

Запускайте бенчмарки через go test -bench=. -benchmem или go test -cpu=1,2,4. Они покажут наносекунды на операции, аллокации и объекты в GC.

Для глубокого анализа используйте pprof: импортируйте net/http/pprof, соберите профиль curl localhost:8080/debug/pprof/profile?seconds=30, разберите go tool pprof.

Полный бенчмарк приложим отдельным файлом. Ниже будут сами техники.

📎 Преаллокация слайсов

Слайсы в Go динамические — они растут, когда заканчивается место.

Если знаете размер заранее, то укажите ёмкость:
make([]int, 0, известныйРазмер)


При указанной ёмкости будет 0 реаллокаций и предсказуемое потребление памяти. Лучше выделить чуть больше памяти, чем делать реаллокации.

📎 strings.Builder для строк

Строки в Go иммутабельны. Каждая операция s = s + "x" создаёт новую строку, копируя старую.

strings.Builder — это буфер, который растёт как слайс. Вы добавляете части, а в конце получаете готовую строку одним вызовом String().

Правило: если видите s += something в цикле — меняйте на Builder.

📎 Избегание конверсий []byte в string

Слайсы байт — изменяемые, а строки нет. Чтобы гарантировать, что строка не изменится, при конверсии string([]byte) Go всегда копирует данные. Даже если вы не планируете менять слайс.

Работайте с одним типом до конца. Если данные пришли как []byte — используйте функции для []byte.

data := []byte("payload")
str := string(data) // копирование
if strings.Contains(str, "error") { ... }

// Без копирования
if bytes.Contains(data, []byte("error")) { ... }


Unsafe вариант. Используйте осторожно — только если []byte не изменяется:
func unsafeString(b []byte) string {
return *(*string)(unsafe.Pointer(&b))
}

Zero-copy, но небезопасно eсли []byte освободится — строка будет указывать на мусор.

📎 Буферы для I/O

Каждый вызов Write() в файл или сеть — это системный вызов. Программа переключается, ядро делает операцию, возвращает управление. Это дорого.

Ядро эффективнее обрабатывает большие блоки данных, чем россыпь мелких запросов.

bufio.Writer — буфер для таких вызовов. Вы пишете в буфер, когда буфер заполнится или вы вызовете Flush() — данные уходят одним большим куском.

Eсли делаете >100 операций I/O в цикле — используйте буферизацию.

📎 Выравнивание полей в структурах

Процессор читает память словами — на 64-bit системе — 8 байт за раз. Если поле структуры не выровнено на границу слова, CPU придётся делать два чтения вместо одного.

Чтобы этого избежать, компилятор добавляет отступы — пустые байты для выравнивания. Но если поля расположены неоптимально, отступ может съесть много памяти.

Правила выравнивания:

• Сортируйте поля от большего к меньшему размеру
• Группируйте маленькие поля вместе
• Используйте инструменты для проверки

Эти техники — инструменты для конкретных проблем, а не обязательный чеклист для каждого проекта.

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека Go-разработчика

#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
20👍6
Чтобы ваши агенты не были такими глупыми приходите на наш курс по разработке AI-агентов

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека Go-разработчика

#GoGiggle
Please open Telegram to view this post
VIEW IN TELEGRAM
😁74
🤖 Контрольный слой для продовых AI-систем

Когда компания внедряет LLM в продакшн, возникает проблема: как контролировать то, что уходит к OpenAI или Anthropic? Как убедиться, что модель не получит персональные данные клиентов или не выполнит SQL-инъекцию через подключенную базу данных?

AxonFlow решает эту задачу, размещаясь между вашим приложением и LLM-провайдером. Платформа проверяет каждый запрос на соответствие политикам безопасности ещё до того, как он достигнет модели.

Cистема анализирует не только входящие запросы, но и ответы от подключённых баз данных через MCP-коннекторы. Если в ответе обнаружены признаки эксплуатации уязвимостей, данные не передаются дальше.

Исходный код открыт, разработка ведётся на Go с покрытием тестами.

➡️ Репозиторий

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека Go-разработчика

#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍3🥱3
🪴 Бустим продуктивность

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

➡️ В карточках 5 базовых советов, а в статье продвинутые лайфхаки

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека Go-разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤔62
✏️ Разные версии — разный вывод

Код на картинке достаточно прост, чтобы скомпилировать его в голове. Загвоздка лишь в том, что на разных версиях вывод будет разный.

Попробуйте разгадать какая версия изменит этот код и в чём конкретно будет разница.

Ответ: здесь и здесь

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека Go-разработчика

#ReadySetGo
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱11
Собираем фулл-хаус: 3 курса по цене 1

Хватит выбирать между «полезно», «модно» и «для души». Мы запустили механику, которая позволяет собрать кастомный стек навыков без удара по бюджету: покупаете один курс — два других забираете бесплатно.

Highload требует базы. Прокачайте алгоритмы и структуры данных для оптимизации производительности и архитектуру и шаблоны проектирования для создания надёжных микросервисов.

Для тех, кто хочет расширить стек (особенно в сторону ML) — полный набор по AI: от математики и ML-старта до разработки автономных агентов.

Ну и классика: обновлённый Python (стандарт в Data Science) и основы IT для тех, кто хочет закрыть пробелы.

Собрать свой пак
🤡 Игра против тёмных паттернов

Отдохнём в эту субботу от бэкенда и поиграемся с фронтом.

Тёмные паттерны — не только UX-грех, но и проблема для фронтенда. Наткнулись на игру, в которой нужно уворачиваться от всех попыток выманить у вас деньги, кликая по правильным кнопкам «Skip».

➡️ Пропустить платные услуги

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека Go-разработчика

#GoGiggle
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4
Библиотека Go-разработчика | Golang
📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика #GoGiggle
🔄 GoRL v2.0.0

GoRL — это библиотека для ограничения запросов на Go, которая недавно получила мажорное обновление v2.0.0.

GoRL поддерживает четыре алгоритма ограничения и работает как с in-memory хранилищем, так и с Redis для распределённых систем.

Что нового

• Lock-free in-memory хранилище

• Автоматическая сборка мусора для истёкших ключей

• Context-aware API

• Zero-config middleware для всех популярных фреймворков

• Оптимизированные алгоритмы

➡️ Репозиторий | Release Notes

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека Go-разработчика

#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72
💡 Дайджест недели

Главный фокус на Go 1.26, но помимо этого были события.

Go 1.26

ИИ хотел завалить разработчиков JetBrains

Чат-бот во время пожарной тревоги ответил в Slack, что не стоит беспокоится и тревога учебная. Тревога не была учебной.

Оптимизации кода + бенчмарк

Бустим продуктивность

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека Go-разработчика

#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
2