Библиотека Go-разработчика | Golang
23.2K subscribers
1.9K photos
39 videos
87 files
4.3K links
Все самое полезное для Go-разработчика в одном канале.

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

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

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

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
⚡️ Ошибки, которые ставят под угрозу безопасность вашего API

Зачем ждать взлома, если можно предотвратить атаки заранее? В карточках — основные аспекты, которые помогут надёжно защитить ваш API и избежать распространённых ошибок.

➡️ Прочитайте статью и внедрите лучшие практики в свой проект

🐸Библиотека Go-разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 Как измерить масштаб изменений между коммитами

Часто при работе с большими репозиториями нужно увидеть количество изменений, а не построчную разницу. Для этого есть команда:
git diff --stat <commit1> <commit2>


Это покажет статистику изменений между двумя коммитами, в каком файле сколько строк изменено, создано или удалено.

🐸Библиотека Go-разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Обработку ошибок в Go не будут менять

Команда разработки Go столкнулась с трудностями при попытке упростить этот процесс через синтаксические изменения языка.

За последние несколько лет разработчики пытались улучшить обработку ошибок через:

• Механизм check/handle в 2018.
• Функцию try в 2019.
• Предложение с оператором «?» в 2024.

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

➡️ Читать размышления разработчиков

🐸Библиотека Go-разработчика #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Чек-лист для создания и запуска пет-проекта

Составили для вас чек-лист, который поможет вам структурировать процесс создания вашего пет-проекта. Описали всё от 0 до 1.

1. Определите цель проекта

• Сформулируйте, зачем вы хотите создать этот проект (например, улучшить навыки, создать портфолио, решить реальную задачу).

• Разбейте цель на более мелкие, измеримые задачи.

2. Выберите интересную и полезную тему


• Выберите тему, которая вам интересна, чтобы поддерживать мотивацию.

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

3. Составьте план разработки


• Определите основные этапы и сроки выполнения.

• Разбейте проект на небольшие задачи и milestones.

• Оцените, сколько времени вы готовы уделять проекту.

4. Выберите стек технологий

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

• Выберите инструменты и библиотеки, которые соответствуют вашим целям.

5. Настройте репозиторий и версионный контроль

• Создайте репозиторий на GitHub, GitLab или другом сервисе для хранения кода.

• Настройте .gitignore и добавьте базовые файлы конфигурации.

6. Подготовьте рабочее окружение

• Настройте IDE, редактор кода и необходимые инструменты (например, Docker, виртуальные окружения, базу данных).

• Если проект требует внешних сервисов, настройте их.

7. Начните с прототипа


• Разработайте прототип или MVP (минимально жизнеспособный продукт).

• Сосредоточьтесь на реализации ключевой функциональности без излишних деталей.

8. Пишите тесты с самого начала

• Начинайте писать юнит-тесты для важных функций

• Убедитесь, что ваш код легко тестировать и поддерживать.

9. Документируйте


• Оставляйте комментарии и создавайте документацию. Иначе рискуете оказаться в меме, где разработчик не понимает того, что писал неделю назад.

• Объясняйте, как запустить проект, какие зависимости использовались и как использовать функциональность.

10. Отслеживайте прогресс

• Регулярно проверяйте выполнение задач по плану.

• Спрашивайте сами у себя статус по задаче.

• Используйте инструменты для управления задачами и следите за сроками.

11. Развивайте проект

• Начните с основной функциональности и постепенно добавляйте новые возможности.

• Не пытайтесь сразу сделать всё идеально, любой проект начинается из .. и палок

12. Публикуйте проект

• Если это веб-приложение, разместите его на хостинге.

• Если это библиотека или инструмент, опубликуйте его на платформах с библиотеками, поделитесь с коллегами.

13. Продемонстрируйте результат

• Напишите блог-пост или сделайте видеопрезентацию проекта

• Поделитесь ссылкой на проект в социальных сетях, форумах или с коллегами.

14. Получайте обратную связь

• Попросите других людей проверить ваш проект и дать отзыв.

• Используйте полученные комментарии для улучшений.

15. Планируйте дальнейшее развитие

• После завершения базового функционала подумайте, что можно добавить или улучшить

• Сделайте план для будущих улучшений и новых функций.

Следуйте пошагово по составленному чек-листу и тогда у вашего приложения будет шанс показать себя, а не лежать в стадии «почти MVP» несколько лет.

🐸Библиотека Go-разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🫣 Устали от HR-сказок про «дружный коллектив» и «печеньки в офисе»?

Давайте честно поговорим о том, что действительно происходит на IT-рынке. Не в розовых презентациях, а в реальной жизни разработчиков, тестировщиков, аналитиков и всех, кто живет кодом.

🧐 Мы проводим исследование, чтобы выяснить:

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

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

😈 Опрос займет 5 минут, но результаты будут работать на всех нас → https://clc.to/9aaXVg
Please open Telegram to view this post
VIEW IN TELEGRAM
📹 Когда хочется просто сделать игру

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

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

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

🐸Библиотека Go-разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
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
🥴 Средний разработчик меняет работу каждые 1,5 года

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Минорный релиз 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
Вакансии «Библиотеки программиста»

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

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

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

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

🔥 Оставляйте отклик, и мы свяжемся с вами: https://forms.gle/o4BZnsQ526JoqsCq9