Распространенные ошибки программирования на Go и как их избежать
Статья обсуждает типичные ошибки в Go, такие как неправильное использование init, избыточное использование интерфейсов, игнорирование поведения цикла range, и неэффективную конкатенацию строк, а также предлагает способы их предотвращения.
👉 Прочитать подробнее можно здесь
👉 @juniorGolang | #cтатья
Статья обсуждает типичные ошибки в Go, такие как неправильное использование init, избыточное использование интерфейсов, игнорирование поведения цикла range, и неэффективную конкатенацию строк, а также предлагает способы их предотвращения.
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 | #ресурсы
Это топовый гайд, где язык осваивается через TDD (разработка через тестирование).
Всё разложено по полочкам: от основ до конкурентности и веб-сокетов, с кучей примеров и тестов. Причём не просто теория, а сразу практика — пишешь код, тестируешь, кайфуешь.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🤔1
Принёс вам классный ресурс для изучения паттернов проектирования
На сайте Refactoring Guru собрали примеры для каждого паттерна на таких языках, как Go, C#, Java, Python, PHP, Rust и ещё куча других.
Всё удобно разложено по категориям — порождающие, структурные, поведенческие.
Примеры суперпонятные, с кодом и пояснениями.
👉 Смотрите сами
👉 @juniorGolang | #ресурсы
На сайте Refactoring Guru собрали примеры для каждого паттерна на таких языках, как Go, C#, Java, Python, PHP, Rust и ещё куча других.
Всё удобно разложено по категориям — порождающие, структурные, поведенческие.
Примеры суперпонятные, с кодом и пояснениями.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤1
Building a Webhook payload delivery service in Go
Статья описывает, как разработать сервер и клиент для перенаправления Webhook-сообщений с удаленного сервера на локальную машину.
Основные моменты:
🔹 Сервер принимает Webhook-события (например, от GitHub) и пересылает их подписанным клиентам через Server-Sent Events (SSE).
🔹 CLI-клиент подключается к серверу, получает события и отправляет их на локальный сервер для обработки.
🔹 Рассматривается настройка, реализация, тестирование и альтернативные решения (например, smee.io, ngrok).
👉 Прочитать подробнее можно здесь
👉 @juniorGolang | #cтатья
Статья описывает, как разработать сервер и клиент для перенаправления Webhook-сообщений с удаленного сервера на локальную машину.
Основные моменты:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Используйте интерфейсы для абстракции логики и лёгкой замены реализаций!
Пример: Получите книгу из разных баз данных (Postgres или MongoDB).
Меняйте базы данных, передавая нужную структуру. Код в других местах менять не нужно
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🌚3
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - depado/gin-auth-example: Example cookie-based authentication with Gin
Example cookie-based authentication with Gin. Contribute to depado/gin-auth-example development by creating an account on GitHub.
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - cshum/imagor: Fast, secure image processing server and Go library, using libvips
Fast, secure image processing server and Go library, using libvips - cshum/imagor
👍4
Создайте свою собственную базу данных с нуля на Go
Поймите, как работают базы данных изнутри, создавая свою собственную — небольшими шагами и с простым кодом на Golang.
🔹 Начните с B+ дерева — структуры данных для выполнения запросов и изменения данных.
🔹 Сделайте его долговечным — это отличает базу данных от обычного файла.
🔹 Добавьте поддержку реляционных БД с параллельными транзакциями поверх копируемого при записи (copy-on-write) B+ дерева KV.
🔹 Финальный штрих — язык запросов, похожий на SQL.
👉 https://build-your-own.org/database/
👉 @juniorGolang | #ресурсы
Поймите, как работают базы данных изнутри, создавая свою собственную — небольшими шагами и с простым кодом на Golang.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍4❤1
Библиотека Go, предоставляющая простые и общие абстракции базы данных поверх Google Sheets
👉 https://github.com/FreeLeh/GoFreeDB
👉 @juniorGolang | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - FreeLeh/GoFreeDB: GoFreeDB is a Golang library that provides common and simple database abstractions on top of Google…
GoFreeDB is a Golang library that provides common and simple database abstractions on top of Google Sheets. - FreeLeh/GoFreeDB
🔥4👍1
Самая маленькая, но крутая фича Go 1.24 — это, конечно, crypto/rand.Text, которая возвращает криптографически случайную строку, используя алфавит Base32.
Я просто в восторге от этого👍
👉 @juniorGolang
Я просто в восторге от этого
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29❤6🔥2🤔1
Нулевые выделения памяти в Go
В статье рассматривается, как избыточная нагрузка на сборщик мусора (GC) может повлиять на производительность, особенно в системах с высокими требованиями к быстродействию или в реальном времени.
Автор делится стратегиями избегания выделений памяти, такими как использование эффективных методов конкатенации строк, предварительное выделение слайсов и повторное использование буферов с помощью sync.Pool.
В статье подчеркивается важность балансировки оптимизаций с читаемостью кода и рисками ручного управления памятью. Также автор рекомендует профилировать приложения до и после применения таких оптимизаций.
👉 Подробнее здесь
👉 @juniorGolang | #cтатья
В статье рассматривается, как избыточная нагрузка на сборщик мусора (GC) может повлиять на производительность, особенно в системах с высокими требованиями к быстродействию или в реальном времени.
Автор делится стратегиями избегания выделений памяти, такими как использование эффективных методов конкатенации строк, предварительное выделение слайсов и повторное использование буферов с помощью sync.Pool.
В статье подчеркивается важность балансировки оптимизаций с читаемостью кода и рисками ручного управления памятью. Также автор рекомендует профилировать приложения до и после применения таких оптимизаций.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - Tanq16/ai-context: CLI tool to produce MD context files from many sources, to help interact with LLMs (ChatGPT, Llama3…
CLI tool to produce MD context files from many sources, to help interact with LLMs (ChatGPT, Llama3, Claude, etc.). - Tanq16/ai-context
❤4
Современная веб-разработка с Go: легковесная альтернатива React SSR
Cтатья обсуждает подход к созданию веб-приложений, сочетающий возможности Go и легковесных фронтенд-технологий.
Автор предлагает использовать стек, включающий Templ для серверного рендеринга в Go, HTMX для динамических взаимодействий с сервером и Petite Vue (размером всего 6 КБ) для реактивности на клиенте.
Этот подход позволяет:
🔹 Содержать весь код в одном Go-приложении.
🔹 Минимизировать использование JavaScript на клиенте.
🔹 Снизить сложность инфраструктуры и затраты на развертывание.
🔹 Обеспечить высокую производительность и безопасность.
👉 Читать подробнее
👉 @juniorGolang | #cтатья
Cтатья обсуждает подход к созданию веб-приложений, сочетающий возможности Go и легковесных фронтенд-технологий.
Автор предлагает использовать стек, включающий Templ для серверного рендеринга в Go, HTMX для динамических взаимодействий с сервером и Petite Vue (размером всего 6 КБ) для реактивности на клиенте.
Этот подход позволяет:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🌭2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🤔1🌭1
Изменяемые vs Неизменяемые структуры данных в Go
Хотя Go не предоставляет встроенной поддержки неизменяемости, автор рассматривает способы моделирования неизменяемых структур данных в Go, а также преимущества и недостатки использования неизменяемости в разработке программного обеспечения.
👉 Подробности можно найти здесь
👉 @juniorGolang | #cтатья
Хотя Go не предоставляет встроенной поддержки неизменяемости, автор рассматривает способы моделирования неизменяемых структур данных в Go, а также преимущества и недостатки использования неизменяемости в разработке программного обеспечения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - gbrayhan/microservices-go: Golang Microservice Boilerplate using PSQL, Docker and Cucumber, API REST. Gin Go and GORM…
Golang Microservice Boilerplate using PSQL, Docker and Cucumber, API REST. Gin Go and GORM with pagination and implementation of a Clean Architecture. - gbrayhan/microservices-go
👍10🌭3🤔1
Создание собственного Git с нуля на Go
Автор описывает ключевые принципы, такие как репозитории, коммиты и отслеживание изменений, а также шаги, необходимые для реализации этих функций.
Это хороший способ углубить понимание работы Git на практике.
👉 Подробности можно найти здесь
👉 @juniorGolang | #cтатья
Автор описывает ключевые принципы, такие как репозитории, коммиты и отслеживание изменений, а также шаги, необходимые для реализации этих функций.
Это хороший способ углубить понимание работы Git на практике.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🌚6❤1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2🔥1
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татья
Автор статьи рассказывает, как он создал безголовый браузер на Go (Gost-DOM) для тестирования HTMX-приложений.
Он столкнулся с задачами парсинга HTML и выполнения JavaScript, использовал x/net/html и встроил движок V8. В итоге получил легковесный инструмент, подходящий для TDD в Go.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1