Библиотека 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
🌐 Дайджест недели

Чтобы двигаться вперёд нужно оглянуться назад на новости прошедших дней.

Команда Go делится статусом о релизе 1.26

Нестандартные форматы резюме

WhoDB 0.89.0

В свежем релизе WhoDB CLI починили баг в стриминге AI-запросов, вернули Alpine в Docker для уменьшения размера образа, встроили BAML в CLI для автономности и обновили entitlements под macOS, отключив AI на armv7.

Figlet-go v0.0.2-beta

Библиотека figlet-go полностью переписывает классический FIGlet 2.2.5 на Go, проходя все оригинальные тесты и генерируя идентичный вывод для создания ASCII-арта из текста.

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

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

#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚1
Завтра стартуем: курс по разработке ИИ-агентов 🐹

Пора переходить к проектированию высокопроизводительных автономных систем. Мы научим создавать мультиагентные связки на CrewAI, управлять сложной логикой в LangGraph и связывать ИИ-решения с вашими базами данных и сервисами.

👉 Успейте занять место до начала занятий
🌚5❤‍🔥1👾1
💡 Минималист внутри вас одобряет

Анализатор minmax упрощает условные присваивания, заменяя конструкции if/else на вызовы встроенных функций min и max, которые появились в Go 1.21.

До преобразования:
if a < b {
x = a
} else {
x = b
}


После:
x = min(a, b)


Анализатор не применяется к числам с плавающей точкой. Причина: поведение min/max с NaN-значениями может отличаться от оригинальной if/else конструкции.

var a, b float64 = 1.0, math.NaN()

// if/else: может вернуть NaN в зависимости от порядка проверки
if a < b { x = a } else { x = b }

// min: имеет специфичное поведение с NaN
x = min(a, b)


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

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

#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54
🤩 Приложение, размывающее экран при плохой осанке

Posturr — приложение для macOS, которое следит за вашей осанкой через камеру и размывает экран, когда замечает, что вы сутулитесь. Выпрямились — экран мгновенно становится чётким.

Swift + Vision framework — очевидный выбор для macOS. Но что если переписать на Go?

Потенциальный стек: gocv для работы с камерой, mediapipe через CGo для оценки скрюченности, robotgo для манипуляций с экраном.

Swift + Vision — это easy mode для macOS. Go-реализация была бы сложнее, но открыла бы кроссплатформенность и интеграцию с существующими Go-экосистемами.

Если кто-то решится портировать на Go — было бы круто сделать это через TUI, чтобы запускать в tmux и видеть текущий статус осанки прямо в терминале. Что-то вроде htop, но для спины.

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

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

#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🤔42🥰2🌚1
Оркестрация AI-агентов на практике

Go идеально подходит для высоконагруженных систем управления агентами. Но чтобы их строить, нужно понимать внутреннюю кухню LLM и Agentic Frameworks.
Старт сегодня в 19:00 МСК.

Что в планах:

— разберём CrewAI, LangGraph и AutoGen;
— научимся проектировать сложные мультиагентные воркфлоу;
— внедрим агентов в рабочие процессы;
— разберём вопросы масштабирования систем.

Узнать подробнее
9🤔2
📰 Go в России

Компания Touch Instinct провела исследование о том, где Go показывает наибольшую эффективность и какие перспективы у языка на российском рынке.

Почему переходят на Go

Главная причина выбора Golang оказалась простой — запрос работодателей. Так ответили 22% участников опроса. Ещё 18% указали на личный интерес к изучению языка, а 14% работают на нём по требованию конкретного проекта.

Многие смотрят на Go как на способ заработать больше. 12% связывают знание языка с ростом зарплаты, а 9% отметили нехватку Go-специалистов на рынке.

Где Go нужен больше всего

77% опрошенных работают в IT-компаниях. Go особенно популярен в финансах, телекоме, e-commerce и геймдеве — там, где важна стабильность и производительность под нагрузкой.

30% респондентов говорят, что Go ускоряет разработку и повышает производительность продуктов. Компании быстрее выпускают обновления и сокращают Time-to-Market.

Прогнозы

Мнения разделились: 39% считают, что Go сохранит текущие позиции, 32% — что будет востребован в отдельных отраслях, 14% уверены, что станет основным языком для большинства продуктов.

Go превратился из нишевого инструмента в универсальное решение для высоконагруженных систем. Спрос на специалистов превышает предложение, а сообщество растёт.

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

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

#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4
🖼 Изображения в TUI на Go

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

Он создаёт TUI-приложение для управления электронными книгами и столкнулся с проблемой качества отображения обложек книг.

Было использовано множество подходов:

• Манипуляции с параметрами библиотек — изменение настроек обеих библиотек, использование встроенных инструментов вроде Sharpen, Blur, AdjustSigmoid.

• Расчёт реальных пикселей ячейки — использование unix-пакета для определения реального размера пикселей ячейки терминала и применение этих значений в переменных.

• Ручная настройка пикселей — вместо динамического расчёта пробовал фиксированные значения.

После многих часов экспериментов удалось достичь нужного качества. Ключом оказалось понимание того, как работают ячейки терминала.

Терминалы состоят из ячеек — это как маленькие контейнеры, состоящие из крошечного холста пикселей. Нужно:

1. Определить, сколько пикселей занимает одна ячейка терминала
2. Умножить это значение на текущую ширину/высоту виджета
3. Использовать полученные значения как целевое разрешение для изображений

➡️ Посмотреть код

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

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

#GoDeep
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4
📎 Фреймворк с готовой архитектурой

Когда начинаете новый проект, первые несколько часов уходят на одно и то же: настройка базы данных, конфигурация JWT, структура папок, валидация запросов. goserve предлагает готовую базу, чтобы пропустить этот этап.

goserve — это фреймворк на базе Gin с интеграциями для типичных задач бэка:

• pgx или MongoDB для работы с данными
• go-redis для кеширования
• JWT с RS256 для токенов
• Viper для конфигов
• Валидация и криптографические утилиты

Проект организован по фичам, а не по слоям. Вместо глобальных папок controllers/, services/ каждая фича живет в своем модуле — users/, auth/ и так далее.

Запуск:
git clone https://github.com/afteracademy/goserve-example-api-server-postgres.git
cd goserve-example-api-server-postgres
go run .tools/rsa/keygen.go && go run .tools/copy/envs.go
docker compose up --build -d


После этого сервер доступен на localhost:8080.

Новички увидят пример организации кода. Разработчики с опытом сэкономят время на настройке инфраструктуры.

➡️ Сайт проекта

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

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

#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥83👍1
👨‍💻 Task 3.47.0: условное выполнение и интерактивные переменные

В новой версии Task появились две функции, которых давно ждали. Разберем, что они дают на практике.

Task — это инструмент на Go для автоматизации задач. Альтернатива Makefile, только с YAML-синтаксисом и без специфики make. Вы описываете команды в файле Taskfile.yml, а потом запускаете их через task имя-задачи.

К новым фичам.

Условное выполнение через if:

if: работает на уровне задачи или отдельной команды. Условие задается либо через bash-команду, либо через Go template.

Пример на уровне задачи:
version: '3'

tasks:
deploy:
if: '[ "$CI" = "true" ]'
cmds:
- echo "Deploying..."
- ./deploy.sh


Задача deploy выполнится только если переменная окружения CI равна true. В локальной разработке деплой не запустится, в CI — запустится.

До этого в Task были sources:, status: и preconditions:, но они решали другие задачи.

Интерактивный ввод переменных

Вторая функция — автоматический запрос обязательных переменных. По умолчанию отключена, включается флагом --interactive или параметром interactive: true в .taskrc.yml.

Когда функция активна, Task будет спрашивать значения обязательных переменных во время выполнения:
version: '3'

tasks:
greet:
desc: Greet someone by name
requires:
vars:
- NAME
cmds:
- echo "Hello, {{.NAME}}!"


При запуске task greet появится приглашение ввести NAME.

Условное выполнение упрощает Taskfile, когда логика зависит от окружения или флагов. Не нужно создавать отдельные задачи для разных условий — одна задача с несколькими ветками.

➡️ Источник

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

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

#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥134👍1
😎 Не предлагаем работу, а только показываем

Golang-разработчик
— до 200 000 ₽ на гибрид в МСК.

Junior Golang разработчик — до 120 000 ₽.

Golang Developer Middle+ — до 260 000 ₽ на удалёнку.

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

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

#GoWork
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱32🔥2
Go + AI-агенты: как строить архитектуру современных ИИ-сервисов

Хотя агентов чаще пишут на Python, их бэкенд и инфраструктура в нагруженных системах часто ложатся на Go. Чтобы эффективно интегрировать ИИ в свои продукты, нужно понимать логику работы агентских систем.

Курс «Углубленные AI-агенты» поможет вам разобраться в теме на стыке инженерии и ИИ.

На курсе вы:

— поймете принципы работы мультиагентных систем;
— изучите фреймворки LangGraph и CrewAI;
— разберетесь с RAG и использованием внешних инструментов;
— узнаете, как деплоить и масштабировать агентские решения.

Обучение уже идет, залетайте.

🚀 Записаться на основной курс

Если сомневаетесь — просто посмотрите вводное занятие.
1😁1
🔍 Анализатор newexpr

В Go 1.26 появится возможность передавать выражения в встроенную функцию new. Раньше new принимал только типы — new(int), new(MyStruct). Теперь можно писать new(123) или new(x + y), и функция вернет указатель на значение выражения.

Что делает анализатор newexpr

Анализатор находит функции вида:
func varOf(x T) *T { return &x }

и предлагает два фикса.

Первый фикс — преобразовать функцию в обертку вокруг new:
//go:fix inline
func varOf(x int) *int { return new(x) }


Директива //go:fix inline указывает анализатору inline предлагать инлайнинг вызовов этой функции.

Второй фикс — заменить вызовы функции напрямую на new:
//Было
use(varOf(123))

//Стало
use(new(123))


Если в проекте есть десятки или сотни вызовов вспомогательных функций типа varOf, intPtr, stringPtr, анализатор автоматизирует их замену.

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

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

#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1
🙂 Бустим продуктивность Go-разработчика

Признайтесь: вы не хотите работать больше. Вы хотите работать быстрее, чтобы скорее закрыть ноутбук и заняться своими делами.

Достаточно просто перестать мешать своему мозгу.

➡️ В статье — 10 простых чит-кодов для домашнего офиса: как убрать физиологические барьеры и включить продуктивность

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

🐸 Библиотека Go-разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2
😒 Изоляция Go-модулей

gomodjail ограничивает системные вызовы для конкретных Go-модулей. Цель — снизить риски от уязвимостей и атак через цепочку поставок зависимостей. Это контейнеризация на уровне модулей, а не всего приложения.

Старт в два шага

1. Добавить комментарий в go.mod:
require (
example.com/module v1.0.0 // gomodjail:confined
)


2. Запустить программу через gomodjail:
gomodjail run --go-mod=go.mod -- ./program


Модули с пометкой gomodjail:confined теперь работают с ограничениями на системные вызовы.

Важно понимать границы инструмента:

• Не работает с бинарниками от недоверенных сторон

• Не применим к модулям, использующим unsafe, reflect, plugin, CGO, ассемблер

• На macOS защиту можно отключить через unset DYLD_INSERT_LIBRARIES

В репозитории есть готовые профили для популярных инструментов, включая Docker.

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

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

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

#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍6
🎯 Нестандартные форматы резюме

Листайте карточки и подбирайте вариант резюме под свои навыки. В комментах можете поделиться своими нестандартными резюме 👇

➡️ В статье ещё один формат

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

🐸 Библиотека Go-разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👾4🥱2👍1🤔1
🤩 Go избавился от блокеров

Команда Go обновляет статус Go 1.26: на данный момент нет блокеров для релиза и права на коммиты в релизную ветку теперь имеют только релиз-координаторы.

На следующей неделе ждём третий релиз-кандидат

➡️ Источник

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

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

#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍6