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

Связь: @devmangx
Download Telegram
Распространенные ошибки программирования на 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
Urdu? 😁

👉 @juniorGolang | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁23👍3
Самая маленькая, но крутая фича Go 1.24 — это, конечно, crypto/rand.Text, которая возвращает криптографически случайную строку, используя алфавит Base32.

Я просто в восторге от этого 👍

👉 @juniorGolang
Please open Telegram to view this post
VIEW IN TELEGRAM
👍296🔥2🤔1
Нулевые выделения памяти в Go

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

Автор делится стратегиями избегания выделений памяти, такими как использование эффективных методов конкатенации строк, предварительное выделение слайсов и повторное использование буферов с помощью sync.Pool.

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

👉 Подробнее здесь

👉 @juniorGolang | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍1
⚙️ ai-context — CLI-инструмент для создания MD-файлов с контекстом из различных источников, чтобы помочь взаимодействовать с LLM (моделями языка, такими как ChatGPT, Llama3, Claude и т.д.).

👉 https://github.com/tanq16/ai-context

👉 @juniorGolang | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Современная веб-разработка с Go: легковесная альтернатива React SSR

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

Автор предлагает использовать стек, включающий Templ для серверного рендеринга в Go, HTMX для динамических взаимодействий с сервером и Petite Vue (размером всего 6 КБ) для реактивности на клиенте.

Этот подход позволяет:
🔹Содержать весь код в одном Go-приложении.
🔹Минимизировать использование JavaScript на клиенте.
🔹Снизить сложность инфраструктуры и затраты на развертывание.
🔹Обеспечить высокую производительность и безопасность.

👉 Читать подробнее

👉 @juniorGolang | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🌭2
⚙️ Go-пакет для валидации структур с использованием тегов

👉 https://github.com/twharmon/govalid

👉 @juniorGolang | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🤔1🌭1
Изменяемые vs Неизменяемые структуры данных в Go

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

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

👉 @juniorGolang | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
⚙️ Шаблон микросервиса на Golang с использованием MySQL, Docker и Swagger, API REST. Реализован с помощью Gin и GORM, поддерживает пагинацию и чистую архитектуру.

👉 https://github.com/gbrayhan/microservices-go

👉 @juniorGolang | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🌭3🤔1
Создание собственного Git с нуля на Go

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

Это хороший способ углубить понимание работы Git на практике.

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

👉 @juniorGolang | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🌚61🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
⚙️ Go-клиент для API Deepseek — простой, полноценный, надёжный и производительный.

👉 https://github.com/go-deepseek/deepseek

👉 @juniorGolang | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72🔥1
⚙️ Универсальный интерфейс командной строки для PostgreSQL, MySQL, Oracle Database, SQLite3, Microsoft SQL Server и многих других баз данных, включая NoSQL и нереляционные базы данных.

👉 https://github.com/xo/usql

👉 @juniorGolang | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Отличная статья: «Я создал безголовый браузер на Go. Вот что я узнал»

Автор статьи рассказывает, как он создал безголовый браузер на Go (Gost-DOM) для тестирования HTMX-приложений.

Он столкнулся с задачами парсинга HTML и выполнения JavaScript, использовал x/net/html и встроил движок V8. В итоге получил легковесный инструмент, подходящий для TDD в Go.

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

👉 @juniorGolang | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101