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

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

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

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

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download 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
😴 Ошибки, выдающие новичка в программировании

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

➡️ Прочитайте статью и сделайте всё наоборот

🐸Библиотека Go разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻 Какой фреймворк выбрать для Go

Go славится своей простотой, скоростью и лаконичностью. Многие разработчики считают, что «чистый net/http — это и есть фреймворк». Но всё больше проектов строятся на готовых решениях: Gin, Fiber, Echo.

Так стоит ли вообще использовать фреймворк в Go — или лучше идти по пути минимализма?

🔧 Когда стоит выбрать фреймворк:

• Нужно быстро MVP. Меньше кода — больше результата. Тогда Gin или Fiber экономят время.

• Команда новичков в Go. Фреймворки помогают с организацией кода, предлагают готовые паттерны.

• Проект типовой: REST API, простая маршрутизация, CRUD. Нет смысла писать всё руками.

• Не хочется собирать инфраструктуру самому. Логгеры, middleware, CORS — всё уже есть.

⚙️ Когда лучше писать на «голом» net/http:

• Долгосрочный проект. Чем меньше зависимостей — тем проще поддерживать.

• Нужен полный контроль. Нет «магии», всё прозрачно и предсказуемо.

• Следуете философии Go. Чем проще и очевиднее — тем лучше.

• Хочется писать идиоматично. Стандартная библиотека Go — это уже почти идеал.

💬 Что думаете вы? Go хорош и без обёрток или фреймворки наше всё? Делитесь рассуждениями в комментариях 👇

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

Краткий взгляд на темы недели.

Google рассказали о ключевых обновлениях Go

Среди главных обновлений — удобные итераторы для упрощения циклов, расширенная поддержка WebAssembly и встроенная постквантовая криптография для повышения безопасности.

Теперь можно общаться с репозиториями через AI

GitHub представил собственный сервер Model Context Protocol (MCP), интегрированный с GitHub Copilot.

Это открывает новые возможности для автоматизации рабочих процессов, анализа данных и создания AI-приложений, взаимодействующих с репозиториями.

Новый выпуск Cup o' Go

Команда Go рассказала о выявленных уязвимостях в криптобиблиотеке

Обновления:

stoolap 0.0.6
Устранена серьёзная ошибка потери данных в режиме хранения в памяти.

tint v1.1.0
Добавлена функция, позволяющая выводить цветные атрибуты без использования ANSI-кодов.

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