Telegram Web Link
📹 Когда хочется просто сделать игру

Go всё больше привлекает начинающих инди-разработчиков. С библиотекой Ebiten простая аркада с графикой, звуком и физикой делается за пару дней.

Предлагаем посмотреть видео, в котором на наших глазах придумывается и разрабатывается мини-игра на Go.

➡️ Смотреть видео

🐸Библиотека Go-разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍5🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
👨‍💻 Жизненный цикл компонентов в Go по-взрослому

Когда в приложении три сервиса — можно вручную стартовать их в main(), закрыть через defer, и всё будет «работать».

А потом начинается боль: кто должен стартовать первым? Как убедиться, что компонент реально готов? Как корректно всё гасить при падении?

Знакомьтесь — GOscade, библиотека для автоматического старта, остановки и координации зависимостей в Go.

🧩 Что делает GOscade:

• Компоненты запускаются по цепочке: сначала зависимости, потом — всё остальное

• Готовность проверяется через readinessProbe(nil) — если не готов, зависящие компоненты не стартуют.

• Остановка — тоже по графу: если кто-то падает, все связанные корректно завершаются

• Всё управляется через контектс — понятно, прозрачно, канонично по-Go-шному.

Как это выглядит в коде:
func (s *Server) Run(ctx context.Context, ready func(error)) error {
go func() {
err := checkPort(s.Addr)
ready(err)
}()

if err := s.ListenAndServe(); err != nil {
return err
}

<-ctx.Done()
return s.Shutdown(context.Background())
}


Всё просто. Главное — сигнализировать о готовности и уметь завершаться по ctx.

📎 Репозиторий проекта
📎 Подробнее про проект

🐸Библиотека Go-разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍85🥱5🔥2
🥴 Средний разработчик меняет работу каждые 1,5 года

И это не потому, что мы такие непостоянные. Просто рынок показывает свое истинное лицо быстрее, чем успевают напечатать визитки.

Поэтому мы собираем инсайды от тех, кто находится в окопах digital-трансформации каждый день. От джуниоров, которые только въезжают в профессию, до сеньоров, повидавших всякого.

😳 О чем говорим откровенно:
— Job-hopping и что за этим стоит
— Red flags, которые мгновенно убивают мотивацию
— Реальные источники вакансий (не те, что рекламируют)
— Боль от общения с рекрутерами
— Сколько этапов отбора — норма, а сколько — издевательство

Когда мы объединим опыт сотен IT-специалистов, получится настоящая карта того, как устроена индустрия. Не по версии HR-отделов, а по версии тех, кто пишет код, тестирует продукты и двигает технологии вперед.

🚀 Участвовать в исследовании → https://clc.to/9aaXVg
😁52
🤩 Поверить HR'у или остаться на месте

Перед нами типичный выбор: остаться на текущем месте с повышением 20–30% или принять предложение от нового проекта с неопределёнными перспективами.

Повышение на 20-30% — это стабильность и гарантии

Многие считают, что повышение в текущей компании — это безопасный выбор. У вас уже есть понимание процессов, команда, и вам не нужно сталкиваться с рисками.

Зачем менять комфорт и стабильность ради неизвестности? Особенно, если увеличение зарплаты даёт возможность улучшить качество жизни.

Прыжок в новый проект — шанс на быстрый рост и новые возможности

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

💬 Что важнее — стабильность или риск ради потенциального карьерного скачка? Делитесь своим опытом и мнением в комментариях👇

🐸Библиотека Go-разработчика #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱4👍32🔥1
📰 Дайджест недели

Пора освежить знания. Мы выбрали самые интересные статьи и материалы недели, которые стоит изучить.

Минорный релиз Go

В Go 1.24.4 включены исправления для уязвимости в пакете net/http, проблемы с dlopen и улучшенная поддержка модуля FIPS 140.

Ошибки, которые ставят под угрозу безопасность вашего API

Свежий выпуск Cup o' Go

Обсуждается отказ Go от синтаксической обработки ошибок, ошибка HTTP 407 и необходимость DI-фреймворков.

Обработку ошибок в Go не будут менять

Поучаствуйте в нашем опросе

Релиз Pluto v. 1.0.0

Pluto исправляет имена файлов в различных операционных системах. Автоматически обрабатывает пробелы, спецсимволы и регистр в именах файлов.

🐸Библиотека Go-разработчика #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Вакансии «Библиотеки программиста»

Привет! Мы ищем контент-менеджеров, которые будут вести наши телеграм-каналы о разработке.

👾 Требования:
— знать принципы залетающего контента
— разбираться в темах, связанных с разработкой

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

Условия:
— удаленка
— частичная занятость
— сдельная оплата в зависимости от количества задач

🔥 Оставляйте отклик, и мы свяжемся с вами: https://forms.gle/o4BZnsQ526JoqsCq9
Реализуйте семафор с помощью буферизированного канала

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍7🥱5
😊 Подборка вакансий для Go-разработчиков за неделю

Go-разработчик — Удаленно (Москва).

Senior Golang Engineer — от 5 000 $.

Senior Golang-разработчик — от 250 000 ₽, Удаленно (Омск).

Go-разработчик — от 100 000 ₽, Офис (Екатеринбург).

Senior Golang-разработчик — до 350 000₽, Удаленно.

Бустер — Удалённо (Не вставая с кресла)

➡️ Еще больше топовых вакансий — в нашем канале Go jobs
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2👾1
🎮 Эффективное управление ветками с помощью git rebase

Проблема: при работе с несколькими ветками в Git история коммитов может становиться запутанной из-за частых слияний, что усложняет анализ изменений.

Решение:
в книге "Mastering Git" автор показывает использование команды git rebase, которая позволяет линейно интегрировать изменения из одной ветки в другую, сохраняя историю чистой и понятной.

Пример кода:
# Переключаемся на ветку feature
git checkout feature

# Выполняем rebase на master
git rebase master

# Если возникают конфликты, разрешаем их и продолжаем rebase
git add <исправленные файлы>
git rebase --continue

# Переключаемся на master и сливаем изменения
git checkout master
git merge feature --ff-only


Преимущества:

— Чистая и линейная история изменений.
— Упрощение процесса ревью кода.
— Лёгкость в отслеживании изменений.

➡️ Лучшее из мира IT-книг — у нас в @progbook
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍43🔥1
😡 А вас тоже бесят облачные сервисы?

Согласитесь, статус отношений с облаками — все сложно. Но что, если можно изменить правила игры?

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

Что мы хотим узнать:
— Для чего вы реально используете облако?
— Чего катастрофически не хватает прямо сейчас?
— Что бесит больше всего? (можно материться)
— Как выбираете провайдера — по цене или по любви?
— и тому подобное

По результатам опроса мы подготовим исследование без маркетингового мусора и вы узнаете, как обстоят дела у коллег.

⚡️Время на опрос: меньше, чем на кофе-брейк. Жмите → https://clc.to/nboYDA
😁2
🔎 Маст-хэв для тех, кто копается в вебе

Этот инструмент на Go умеет обходить сайты, искать email, ключевые слова и проверять домены на битые ссылки.

Работает с приоритетной очередью, хранит данные в BadgerDB и умеет обходить сайты с учётом robots.txt.

GolamV2 — это как швейцарский нож для пентестеров, SEO-специалистов и всех, кто занимается веб-анализом. А самое главное — написан на Go.

➡️ Заглянуть в репозиторий проекта

🐸Библиотека Go-разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍143🔥1
🔧 Как не сломать рабочие структуры

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

Разберёмся как избежать ошибок.

1. Делайте безопасные дефолтные значения

Go не выдаёт ошибку, если вы забыли про новое поле. Оно просто инициализируется zero value. Убедитесь, что это значение не нарушает логику.

bool по умолчанию — false. Если вы добавили поле IsVerified, то false должно быть безопасной трактовкой.

2. Вводите конструкторы

Если структура публичная, то нужно запретить прямое создание через MyStruct{}. Введите конструктор с нужными параметрами. Так компилятор покажет ошибку, если будет пропущен аргумент.

3. Добавьте unit-тесты

Проверьте, что структура:

• Корректно сериализуется/десериализуется.
• Имеет ожидаемые значения по умолчанию.
• Работает в старых сценариях после добавления поля.

4. Используйте линтер exhaustruct

exhaustruct покажет, где поля не инициализированы явно. Работает с go vet.

Добавляйте поля в структуры безопасно: через ноль-значения, конструкторы, тесты и линтер.

🐸Библиотека Go-разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍138🔥2
Как насчёт обзора этой книги у нас в @progbook?

🐸 Библиотека Go-разработчика #развлекалово
Please open Telegram to view this post
VIEW IN TELEGRAM
😁14👍3
🧹 Автоматический уборщик антипаттернов в Go

Go-код должен быть читаемым. И для этого мы подготовили промпт, который мгновенно находит и устраняет то, что делает код запутанным и хрупким.

Промпт:
You are a seasoned "Go Cool Developer," renowned for your ability to identify and eliminate anti-patterns in Go code. Your expertise lies in spotting duplication, unnecessary nesting, inefficient allocations, and dependency cycles. Your goal is to analyze a given Go code snippet and provide a detailed report highlighting these anti-patterns, along with concrete suggestions for improvement.

Here is the format you will use to analyze the code and provide your recommendations:

---

## Code Snippet

```go
$code_snippet
```

## Anti-Pattern Analysis

### 1. Duplication

* **Description:** (Explain if duplication exists, where it is located, and why it's problematic)
* **Recommendation:** (Provide specific code changes or refactoring steps to eliminate the duplication)

### 2. Unnecessary Nesting

* **Description:** (Explain if unnecessary nesting exists, where it is located, and why it's problematic)
* **Recommendation:** (Provide specific code changes or refactoring steps to reduce nesting)

### 3. Inefficient Allocations

* **Description:** (Explain if inefficient allocations exist, where they are located, and why they are problematic)
* **Recommendation:** (Provide specific code changes or alternative approaches to improve allocation efficiency)

### 4. Dependency Cycles

* **Description:** (Explain if dependency cycles exist, which packages are involved, and why they are problematic)
* **Recommendation:** (Provide specific refactoring steps to break the dependency cycle, potentially involving interface extraction or dependency inversion)

## Summary of Improvements

(A concise summary of all the identified anti-patterns and the proposed solutions)

---

Here is the Go code you are tasked with analyzing: [ВСТАВЬТЕ ВАШ КОД СЮДА]


Промпт не просто ругается — он объясняет, где именно в коде проблема, почему она опасна или неудобна, и как её устранить с помощью конкретных шагов или рефакторинга.

🐸Библиотека Go-разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱9👍4😁31🔥1
🌧️ Облачная терапия: время выговориться!

Знакомая ситуация? Покупаете облако как BMW, а получаете телегу с квадратными колесами. Обещают 99.9% uptime, а сервер падает на релизе. Техподдержка отвечает через сутки фразой «попробуйте перезагрузить».

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

🤫О чем спросим:
— Зачем вам вообще это облако нужно
— Какие косяки достали до печенок
— Сколько денег утекает в никуда ежемесячно
— Что должно случиться, чтобы вы сменили провайдера
— И еще пару каверзных вопросов

⏱️ 2 минуты честности = большое исследование без воды → https://clc.to/nboYDA
👍2😁2
🙊 Когда баг стал секретом

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

Подписчик поделился своей историей о скрытом баге:
Я участвовал в релизе нового функционала. Всё шло отлично: тесты были пройдены, всё проверено, и продукт вышел в продакшн. Однако в одну ночь, когда я лежал и думал, меня осенило — в системе был баг, который мы не заметили.

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


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

💬 Прятали ли вы баги от начальства? Или сразу во всём признаётесь? Делитесь в комментариях 👇

P.S. Если хотите задать вопрос сообществу или поделиться историей, заполните нашу гугл-форму.

🐸Библиотека Go-разработчика #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
😁52
👨‍💻 Когда fmt.Println уже не спасает

Ваше Go-приложение может вести себя странно только на сервере. Отладка через log.Printf и догадки — не лучший путь. Лучше использовать удалённую отладку с помощью Delve.

Delve работает как сервер, принимающий подключения от клиента (например, VS Code).

Он умеет удалённо:

• Ставить брейкпоинты,
• Пошагово выполнять код,
• Смотреть значения переменных и стек вызовов,
• Отлаживать goroutines и каналы.

📦 Базовый сценарий

1. Ставите dlv на сервер (go install github.com/go-delve/delve/cmd/dlv@latest).

2. Запускаете приложение в режиме дебага:
dlv exec ./myapp --headless --listen=:2345 --api-version=2 --accept-multiclient


3. На локальной машине подключаетесь через VS Code с помощью плагина и конфигурации launch.json.

Работает даже в Docker-контейнере — просто пробросьте порт.

Самый главный минус — нельзя отлаживать уже запущенный бинарь без перезапуска.

🐸Библиотека Go-разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍137🔥1
🏃‍♀️ 1 день до конца спец предложения

У
спей впрыгнуть на курс «AI-агенты для DS» до завтрашнего повышения цены: 59.000 р. вместо 69.000 р.

🎙 Наш спикер — Никита Зелинский, Chief Data Scientist МТС, в своем канале рассказывает о RAG:

Про RAG слышали все — это уже два года самый массовый способ применения LLM в проде для бизнеса.

Это значит, что точность и надёжность такого решения достаточно предсказуемы для того, чтобы исключить человека из процесса аппрува выдачи LLM,
а связка «локально развернутая LLM + RAG над корпоративными документами» обеспечивает достаточную конфиденциальность, чтобы снять тревожность
«что наши данные попадут в OpenAI».

Эта история настолько популярна, что на рынке есть готовые RAG-решения,
а даже «маленькие» опенсорс-модели (до 5B) уже обзавелись своей RAG-ареной:
👉 https://huggingface.co/spaces/aizip-dev/SLM-RAG-Arena


Во время обучения на курсе «AI-агенты для DS» научим собирать автономные системы под реальные бизнес-задачи. На прошлой неделе мы рассказали о первом занятии.

➡️ вот что ждет слушателей курса на втором:

— Собираем свой RAG-пайплайн на своих данных
— Обсуждаем, почему качество такой системы нельзя измерять «на глаз»
— Разбираем схему LLM as a Judge и как подготовить для неё датасет
— Что такое guardrails и как они спасают от бреда
— Что делать, когда LLM не знает ответа
— Смотрим на агентский RAG и обсуждаем, можно ли использовать RAG как память агента

Если пропустили первое занятие, то вот ссылочка

❗️До повышения цены остался последний день — бронируйте место сейчас
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1😁1
2025/07/09 00:07:35
Back to Top
HTML Embed Code: