📰 Дайджест недели
Без лишнего: мы собрали для вас только лучшее
— Свежий выпуск подкаста 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-разработчика #свежак
Без лишнего: мы собрали для вас только лучшее
— Свежий выпуск подкаста 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 теперь в одном канале
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1🤔1👾1
Forwarded from Библиотека задач по Go | тесты, код, задания
🤔34😁2❤1
Senior Golang-разработчик — от 300 000 ₽, Офис (Москва)
Golang Developer — от 210 000 ₽, Удаленно/Офис (Питер)
Golang наставник — от 350 000 ₽, Гибрид/Офис (Воронеж)
Hotel Search Team Lead — от 6 400 $, Удаленно
Бустер — удалённо (не только Москва)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1
🌐 Шпаргалка по ключевым сетевым протоколам и их взаимосвязям
Подготовили для вас наглядную схему, которая визуально покажет взаимодействие протоколов.
Краткие пояснения по схеме:
• 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-разработчика #буст
Подготовили для вас наглядную схему, которая визуально покажет взаимодействие протоколов.
Краткие пояснения по схеме:
• 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 — обмен маршрутами между провайдерами
💬 На какие темы вы бы хотели увидеть шпаргалки? Напишите свои варианты в комментарии 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🥱7👾4🥰2❤1
В ходе аудита библиотеки TOB Crypto команда Go обнаружила несколько важных технических уязвимостей, включая ошибки в обработке ключей и недостатки в управлении памятью.
Также выявили места с возможными рисками тайминговых атак из-за недостаточно защищённых операций.
Обнаруженные проблемы поправили, а также оставили аудиторские рекомендации, в числе которых усиления проверок данных, улучшение управления памятью и оптимизация криптографических методов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥5❤3
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="https://example.com" onclick="alert('XSS')">Ссылка</a><script>alert('bad')</script>`
cleanHTML := p.Sanitize(dirtyHTML)
fmt.Println(cleanHTML)
}
Результат:
<a href="https://example.com" rel="nofollow">Ссылка</a>
Вредоносный
<script>
и атрибут onclick
удалены, добавлен rel="nofollow"
для безопасности.💬 Используете ли вы подобные санитайзеры, фреймворки безопасности или собственные решения? Делитесь тулзами в комментариях 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🥱2❤1🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁35
🥵 Устали от статей, где эйчары рассказывают, как на самом деле выглядит рынок труда в ИТ?
Мы тоже! Поэтому решили узнать правду и представить ее всем айтишникам — но нам нужен ваш голос. Опрос займет 3 минуты, а пользы — вагон для всего сообщества.
Результаты этого исследования помогут понять, как специалистам искать работу в 2025-м (а компаниям — специалистов).
👉 Если вы готовы сделать свой вклад в исследование — велком: https://clc.to/VGgyNA
Мы тоже! Поэтому решили узнать правду и представить ее всем айтишникам — но нам нужен ваш голос. Опрос займет 3 минуты, а пользы — вагон для всего сообщества.
Результаты этого исследования помогут понять, как специалистам искать работу в 2025-м (а компаниям — специалистов).
👉 Если вы готовы сделать свой вклад в исследование — велком: https://clc.to/VGgyNA
🎮 Игра на Go: от меню до победы
Если вы пишете на Go, но устали от серверного кода и CLI-интерфейсов — то мы нашли для вас видео, в котором с нуля реализован классический «Сапёр».
В основе проекта лежит библиотека Raylib с Go-обвязкой, которая обеспечивает простой API для работы с окнами, текстом, мышью и отрисовкой.
➡️ Смотреть видео
🐸 Библиотека Go-разработчика #буст
Если вы пишете на Go, но устали от серверного кода и CLI-интерфейсов — то мы нашли для вас видео, в котором с нуля реализован классический «Сапёр».
В основе проекта лежит библиотека Raylib с Go-обвязкой, которая обеспечивает простой API для работы с окнами, текстом, мышью и отрисовкой.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11👾5🤔1
Недавно один из подписчиков спросил:
Как вы подходите к принятию технических решений в команде?
Технические решения — это не просто выбор между «правильно» и «неправильно». Это баланс между бизнес-целями, техническими ограничениями, ресурсами и человеческими факторами.
В каждой команде свой стиль, инструменты и методики, но есть общие практики, которые помогают выработать эффективный подход.
Прежде всего, важно чётко понять задачу, собрать все необходимые данные, требования и ограничения. Это может включать обсуждения с коллегами, анализ текущей архитектуры и бизнес-целей.
Ни одно решение не должно приниматься в одиночку. Обсуждения с командой помогают выявить разные взгляды, обнаружить скрытые риски и найти альтернативные подходы.
Для упрощения выбора полезно использовать визуализации — схемы, диаграммы, прототипы. Формальные практики, такие как технические или архитектурные ревью, помогают систематизировать процесс и задокументировать принятые решения.
В идеале — это компромисс, основанный на аргументах и фактах. Иногда необходимо голосование или прототипирование, чтобы проверить гипотезы на практике.
В ситуациях разногласий роль лидера — принять окончательное решение и донести логику до команды.
После внедрения решения полезно провести анализ его эффективности, выявить удачные и проблемные моменты. Такой подход позволяет учиться на опыте и улучшать процесс принятия решений в будущем.
Открытость, структурированность и последующий анализ — вот основные принципы, которые помогают команде работать эффективно и с минимальными конфликтами.
💬 Какие методы принятия технических решений работают в вашей команде? Ждём ваши ответы в комментариях 👇
P.S. Напоминаем, вы можете спросить сообщество библиотеки Go разработчика и не только! Самые интересные вопросы обязательно опубликуем.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2🥰1
В процессе разработки и деплоя Go-программ в продакшн-среду важно минимизировать зависимости и размер итогового бинарного файла.
Команда, которая компилирует программу с минимальным размером и включает все зависимости статически:
go build -ldflags="-s -w -extldflags '-static'"
-s
: удаляет информацию о символах (символьные таблицы и отладочную информацию), что сокращает размер бинарника.-w
: исключает таблицу отладочных данных, еще больше уменьшая размер.-extldflags '-static'
: компилирует все внешние зависимости в статически слинкованный бинарник, чтобы он не зависел от библиотек на целевой системе (особенно полезно в контейнерах).Эта команда полезна для создания приложений, которые должны быть максимально легкими, независимыми и готовыми к деплою в такие среды, как Docker или другие облачные платформы.
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉21👍14
Зачем наступать на грабли, если можно обойти их? В карточках типичные ошибки, которые совершают начинающие программисты.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱15❤2👍2🤔2