Golang Portal
8.13K subscribers
429 photos
27 videos
7 files
458 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Golang-разработчика

Связь: @devmangx
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Набор инструментов на Go для создания React-like GUI

Spot — это простой, кроссплатформенный, реактивный GUI-инструментарий для Go, использующий нативные виджеты там, где это возможно.
Большой акцент при разработке Spot был сделан на простоту использования и предоставление согласованного API на разных платформах

Ссылка: тык

👉 @juniorGolang | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
Подборка из 25 полезных ресурсов для разработчиков на Go

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

👉 https://dev.to/0x3d_site/25-golang-resources-every-developer-will-find-helpful-and-interesting-1ooh

👉 @juniorGolang | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Недавно наткнулся на интересную штуку — Go Blueprint.

Это CLI-инструмент, который позволяет быстро развернуть проект на Go с уже настроенной структурой.

Можно выбрать один из популярных фреймворков, таких как Chi, Gin, Fiber и другие. Кроме того, поддерживаются различные базы данных: MySQL, Postgres, SQLite, MongoDB и даже Redis

Плюс, есть прикольные фичи, такие как поддержка HTMX, настройка CI/CD через GitHub Actions, интеграция с Docker и даже генерация фронтенда на React с TypeScript.

Если хотите заценить, как это работает, вот видеообзор: https://youtu.be/-8XKrQUexrQ?si=KxwnMPDfT-DXM6sx

👉 @juniorGolang | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🌚1
Build an OTP-Based Authentication Server with Go

В серии из двух статей автор Vishal Axl подробно рассказывает, как создать сервер аутентификации на основе одноразовых паролей (OTP) с использованием языка Go.

👉 Первая часть посвящена настройке структуры проекта, Docker-среды и базовой HTTP-маршрутизации.

👉 Вторая часть фокусируется на реализации генерации OTP, управлении сроком их действия и организации временного хранилища данных.

👉 @juniorGolang | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
⚙️ wp2hugo — инструмент для миграции блогов с WordPress на Hugo, написанный на Go

Популярный генератор статических сайтов на базе Go, и этот инструмент позволяет легко конвертировать в него блоги на базе WordPress, включая множество особых случаев, в которых WordPress REST API не помогает.

🔛 GitHub

👉 @juniorGolang | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
Создание Go-приложений на базе LLM

Retrieval Augmented Generation (RAG) позволяет предоставлять LLM знания из кастомных ресурсов, от локальных текстовых файлов до репозиториев кода. Затем LLM может использовать эти новые знания для ответов на вопросы.

🔛 Читать

👉 @juniorGolang | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Откопал тут годный инструмент — библиотека GoMailer для Go🍌

Это мощная штука, построенная на стандартном net/smtp, но с кучей плюшек. Например, отправка писем с HTML и вложениями, удобная работа с заголовками, гибкая настройка TLS и аутентификации.

Подключить можно через go get, а настроить — проще простого

🔛 GoMailer

👉 @juniorGolang | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥142👍1
How HTTP/2 Works and How to Enable It in Go

HTTP/2 является значительным улучшением по сравнению с HTTP/1.1, решая проблему блокировки "head-of-line" на уровне приложения путем мультиплексирования нескольких потоков через одно TCP-соединение.

В статье подробно рассматривается, как HTTP/2 достигает этого, а также описываются шаги по его включению в Go-приложениях.

Стандартная библиотека Go поддерживает HTTP/2 по умолчанию при использовании HTTPS, и с некоторой конфигурацией его можно настроить для работы поверх обычного HTTP.

Для получения более подробной информации рекомендуется ознакомиться с полной статьей

👉 @juniorGolang | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Тест из 76 вопросов на знание Go

Тест основан на вопросах по Go, собранных с LinkedIn, эти вопросы особенно часто попадаются на собеседованиях

Ссылка: тык

👉 @juniorGolang | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19
The_Complete_Guide_to_Context_in_Golang_Efficient_Concurrency_Management.pdf
3.1 MB
⚡️ Полный гайд по работе с пакетом context в Go: эффективное управление конкурентностью

— Что такое контекст?
— Создание контекста
— Распространение контекста
— Получение значений из контекста
— Отмена контекста
— Timeouts и deadlines
— Контекст в HTTP-запросах
— Контекст в операциях с базой данных
— Лучшие практики использования контекста
— Распространенные ошибки, которых следует избегать
— Утечки контекста и горутины
— Использование контекста со сторонними библиотеками
— Контекст (новые функции, добавленные в Go 1.21)

🔜 Источник

👉 @juniorGolang | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍104
This media is not supported in your browser
VIEW IN TELEGRAM
Novus — локальный HTTPS-прокси, который превращает работу на macOS в удовольствие

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

Под капотом у Novus работают старые добрые Nginx в роли прокси и DNSMasq для определения кастомных доменных резолверов. Больше не нужно ковыряться в /etc/hosts, а SSL-сертификаты автоматически управляются и обновляются с помощью mkcert.

Всё, что от вас требуется, — это сопоставить ваши локальные URL с DNS-доменами, а остальное Novus сделает сам, обеспечивая бесшовный опыт, похожий на продакшн, прямо на вашей машине

Установка:
brew tap jozefcipa/novus
brew install novus


Потом можно проверить установку командой novus -v

Чтобы начать, запускаем novus init, редактируем созданный файл novus.yml, определяем там маппинг доменов, а затем novus serve — и всё, можно пользоваться.

👉 @juniorGolang | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥133👍2
Go Slices and Subslices: понимание общей памяти и избегание подводных камней функции append()

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

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

👉 Прочитать подробнее можно здесь

👉 @juniorGolang | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32
⚙️ DiscordGo — Это библиотека на Go, которая позволяет напрямую взаимодействовать с API Discord.

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

Если вы хотите создать бота или интеграцию с Discord на Go, это именно то, что нужно.

В репозитории есть куча примеров, которые помогут быстро стартануть: https://github.com/bwmarrin/discordgo

👉 @juniorGolang | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥4
Распространенные ошибки программирования на Go и как их избежать

Статья обсуждает типичные ошибки в Go, такие как неправильное использование init, избыточное использование интерфейсов, игнорирование поведения цикла range, и неэффективную конкатенацию строк, а также предлагает способы их предотвращения.

👉 Прочитать подробнее можно здесь

👉 @juniorGolang | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Откопал годноту для изучающих Go — Learn Go with Tests.

Это топовый гайд, где язык осваивается через TDD (разработка через тестирование).

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

👉 https://quii.gitbook.io/learn-go-with-tests

👉 @juniorGolang | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🤔1
Принёс вам классный ресурс для изучения паттернов проектирования

На сайте Refactoring Guru собрали примеры для каждого паттерна на таких языках, как Go, C#, Java, Python, PHP, Rust и ещё куча других.

Всё удобно разложено по категориям — порождающие, структурные, поведенческие.

Примеры суперпонятные, с кодом и пояснениями.

👉 Смотрите сами

👉 @juniorGolang | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍121
Building a Webhook payload delivery service in Go

Статья описывает, как разработать сервер и клиент для перенаправления Webhook-сообщений с удаленного сервера на локальную машину.

Основные моменты:
🔹Сервер принимает Webhook-события (например, от GitHub) и пересылает их подписанным клиентам через Server-Sent Events (SSE).
🔹CLI-клиент подключается к серверу, получает события и отправляет их на локальный сервер для обработки.
🔹Рассматривается настройка, реализация, тестирование и альтернативные решения (например, smee.io, ngrok).

👉 Прочитать подробнее можно здесь

👉 @juniorGolang | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
💡 Совет по Golang

Используйте интерфейсы для абстракции логики и лёгкой замены реализаций!

Пример: Получите книгу из разных баз данных (Postgres или MongoDB).

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

👉 @juniorGolang | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🌚3
⚙️ Быстрый и безопасный сервер обработки изображений и библиотека для Go, использующие libvips

👉 https://github.com/cshum/imagor

👉 @juniorGolang | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Создайте свою собственную базу данных с нуля на Go

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

🔹Начните с B+ дерева — структуры данных для выполнения запросов и изменения данных.
🔹Сделайте его долговечным — это отличает базу данных от обычного файла.
🔹Добавьте поддержку реляционных БД с параллельными транзакциями поверх копируемого при записи (copy-on-write) B+ дерева KV.
🔹Финальный штрих — язык запросов, похожий на SQL.

👉 https://build-your-own.org/database/

👉 @juniorGolang | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍41