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

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

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

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

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
🚨 Смешные новости про IT теперь в одном канале

Мы запустили @hahacker_news — наш новый юмористический IT-канал.

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

👉 @hahacker_news — голосование уже идёт, переходите, читайте, угарайте и оставляйте реакции
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🧑‍💻 Расслабление и концентрация на коде

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

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

Как его включить

1. Вызовите Find Action — Ctrl+Shift+A
2. Введите в поиске команду «Zen Mode».
3. Активируйте её — интерфейс перейдёт в минималистичный вид.

Как работать без вкладок

• Используйте Navigation Bar (включается через Alt+Home или по команде) — это компактная строка навигации по проекту и файлам.

• Воспользуйтесь поиском файлов (Ctrl+Shift+N / Cmd+Shift+O) для быстрого открытия нужного файла.

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

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

🐸Библиотека Go разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Простыми словами о планировщике

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

В основе работы планировщика лежит модель GMP — связка из горутины (G), потока ОС (M) и абстракции процессора (P). Именно она позволяет Go удерживать баланс между легковесностью и управляемостью.

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

➡️ Подробнее про работу планировщика

🐸Библиотека Go разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🎮 Что мы загадали в ребусе

Попробуйте отгадать слово из go в комментариях 👇

P.S. Слова на английском языке

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

Без лишнего: мы собрали для вас только лучшее

Свежий выпуск подкаста Cup o' Go
Обсуждение ухода Иэна Лэнса Тейлора из команды Go и беседа с Кевином Хоффманом из SparkLogs, который делится своими взглядами на важность эмпатии в разработке и находит радость в процессе логирования.

Интеграция PostgreSQL в Go
Описывается использование драйвера pgx с пулом подключений, управление миграциями с помощью инструмента tern, организацию кода через паттерн репозиториев и настройку среды разработки с использованием Makefile и Docker.

Грин-флаги в вакансиях: 10 признаков хорошего работодателя

go-sandbox
Веб-инструмент, предоставляющий опыт разработки на Go, приближенный к полноценной IDE.

go-size-analyzer v1.9.0

goimapnotify 2.5
Вышла новая версия утилиты goimapnotify — IMAP IDLE-клиента на Go, позволяющего выполнять скрипты при изменениях в почтовом ящике.

В обновлении добавлена поддержка команды IMAP ID и шаблонов в конфигурации, а также улучшена обработка нестандартных ответов серверов.

Смешные новости про IT теперь в одном канале

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

Senior Golang-разработчик — от 300 000 ₽, Офис (Москва)

Golang Developer — от 210 000 ₽, Удаленно/Офис (Питер)

Golang наставник — от 350 000 ₽, Гибрид/Офис (Воронеж)

Hotel Search Team Lead — от 6 400 $, Удаленно

Бустер — удалённо (не только Москва)

➡️ Еще больше топовых вакансий — в нашем канале Go jobs
Please open Telegram to view this post
VIEW IN TELEGRAM
🌐 Шпаргалка по ключевым сетевым протоколам и их взаимосвязям

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

Краткие пояснения по схеме:

• IPv4 / IPv6 — сетевые протоколы, определяющие, как устройства находят друг друга в интернете

• ICMP / ICMPv6 — диагностика и контроль (например, команды ping, traceroute)

• TCP / UDP / SCTP / DCCP — транспортные протоколы

• IPSec — безопасность на уровне IP (шифрование, проверка подлинности)

На основе UDP работают:

• DNS — доменные имена
• DHCP — выдача IP-адресов
• SIP — VoIP телефония
• NTP — синхронизация времени
• RIP / RPT — маршрутизация
• QUIC — альтернатива TCP от Google, работает поверх UDP

На основе TCP:

• HTTP / HTTPS — веб-протокол
• SSL/TLS — безопасное соединение
• SSH — защищённый удалённый доступ
• POP / IMAP — получение почты
• RDP / VNC — удалённый рабочий стол
• BGP — обмен маршрутами между провайдерами

💬 На какие темы вы бы хотели увидеть шпаргалки? Напишите свои варианты в комментарии 👇

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

В ходе аудита библиотеки TOB Crypto команда Go обнаружила несколько важных технических уязвимостей, включая ошибки в обработке ключей и недостатки в управлении памятью.

Также выявили места с возможными рисками тайминговых атак из-за недостаточно защищённых операций.

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

➡️ Блог команды разработки Go

🐸Библиотека Go-разработчика #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 HTML-санитайзер

Bluemonday — это инструмент для очистки HTML-контента. Его главная задача — защитить веб-приложения от атак типа Cross-Site Scripting (XSS), удаляя из пользовательского ввода потенциально опасные теги и атрибуты.

Bluemonday использует политики на основе allowlist, позволяя контролировать, какие элементы остаются в HTML, а какие — удаляются.

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

Инструмент интегрируется в Go-проекты и поддерживает разные форматы ввода, от строк до потоков.

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

Пример очистки пользовательского контента с помощью стандартной политики UGC:
import (
"fmt"
"github.com/microcosm-cc/bluemonday"
)

func main() {
p := bluemonday.UGCPolicy() // Политика для пользовательского контента
dirtyHTML := `<a href="http://example.com" onclick="alert('XSS')">Ссылка</a><script>alert('bad')</script>`
cleanHTML := p.Sanitize(dirtyHTML)
fmt.Println(cleanHTML)
}


Результат:
<a href="http://example.com" rel="nofollow">Ссылка</a>

Вредоносный <script> и атрибут onclick удалены, добавлен rel="nofollow" для безопасности.

💬 Используете ли вы подобные санитайзеры, фреймворки безопасности или собственные решения? Делитесь тулзами в комментариях 👇

📎 Репозиторий проекта

🐸Библиотека Go-разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🥵 Устали от статей, где эйчары рассказывают, как на самом деле выглядит рынок труда в ИТ?

Мы тоже! Поэтому решили узнать правду и представить ее всем айтишникам — но нам нужен ваш голос. Опрос займет 3 минуты, а пользы — вагон для всего сообщества.

Результаты этого исследования помогут понять, как специалистам искать работу в 2025-м (а компаниям — специалистов).

👉 Если вы готовы сделать свой вклад в исследование — велком: https://clc.to/VGgyNA
🎮 Игра на Go: от меню до победы

Если вы пишете на Go, но устали от серверного кода и CLI-интерфейсов — то мы нашли для вас видео, в котором с нуля реализован классический «Сапёр».

В основе проекта лежит библиотека Raylib с Go-обвязкой, которая обеспечивает простой API для работы с окнами, текстом, мышью и отрисовкой.

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

🐸Библиотека Go-разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻 Сборка только с необходимым

В процессе разработки и деплоя Go-программ в продакшн-среду важно минимизировать зависимости и размер итогового бинарного файла.

Команда, которая компилирует программу с минимальным размером и включает все зависимости статически:
go build -ldflags="-s -w -extldflags '-static'"


-s: удаляет информацию о символах (символьные таблицы и отладочную информацию), что сокращает размер бинарника.

-w: исключает таблицу отладочных данных, еще больше уменьшая размер.

-extldflags '-static': компилирует все внешние зависимости в статически слинкованный бинарник, чтобы он не зависел от библиотек на целевой системе (особенно полезно в контейнерах).

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

🐸Библиотека Go разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM