37.1K subscribers
1.46K photos
33 videos
5 files
1.62K links
加入频道
👣 Golang Microservices Boilerplate - Clean Architecture

Пример реализации Golang Microservice Boilerplate с использованием MySQL, Docker и Swagger, API REST.

git clone https://github.com/gbrayhan/microservices-go

Github

#golang #go #opensource
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 glog — это эффективная чистая Go-реализация многоуровневого логирования, аналогичная открытому C++ пакету glog!

🌟 Она предоставляет функции для логирования с различными уровнями серьезности, такими как Info, Warning, Error и Fatal, а также их форматированные варианты, например, Infof. Кроме того, glog поддерживает V-стиль логирования, который контролируется флагами командной строки -v и -vmodule.

🔐 Лицензия: Apache-2.0

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉 Выпущен релиз Go 1.24 Release Candidate 3!

🔐 Безопасность: Включает исправления безопасности для инструмента go и пакета crypto/elliptic.

🗣 Объявление: https://groups.google.com/g/golang-announce/c/w2gBC3sJibs/m/bUz6JjCCAAAJ

🚚 Скачать: https://go.dev/dl/#go1.24rc3

@golang_google

#golang #go #release
👣 Эта статья рассматривает проблему производительности при использовании функции crypt() в PostgreSQL для сравнения хешированных значений, созданных с помощью алгоритма Bcrypt!

🌟 Автор объясняет, что из-за особенностей Bcrypt, таких как использование случайной соли и необходимость её извлечения при проверке, PostgreSQL не может эффективно использовать индексы при выполнении запросов, сравнивающих хеши с помощью crypt(). Вместо этого база данных выполняет последовательное сканирование таблицы, что приводит к значительному снижению производительности при наличии большого количества записей.

🔗 Ссылка: *клик*

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Эта статья рассказывает о библиотеке Sonic, разработанной инженерами TikTok для высокопроизводительной обработки JSON в языке Go!

🌟 Она значительно превосходит стандартную библиотеку encoding/json, обеспечивая ускорение в 2–3 раза при меньшем потреблении памяти. Это достигается за счет технологий Just-In-Time Compilation (JIT), SIMD-инструкций и оптимизированного управления памятью. Например, Sonic использует всего 12 КБ памяти на JSON-файл, в то время как стандартная библиотека требует 49 КБ.

🔗 Ссылка: *клик*

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 ezBookkeeping — это приложение для ведения личных финансов с открытым исходным кодом, предназначенное для самостоятельного хостинга!

🌟 Оно поддерживает работу с базами данных SQLite, MySQL и PostgreSQL, а также развертывание через Docker. Приложение адаптировано для работы как на десктопах, так и на мобильных устройствах, обеспечивая удобный пользовательский интерфейс.

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍🎓 Algorithmica

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

В нем можно найти абсолютно любой алгоритм с кодом и хорошим объяснением.

Учебник на русском
На английском
Github

@golang_google
⭐️ Шпаргалка по командам Docker Compose

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🧨 Вышел Go 1.24.0!

📝 Примечания к выпуску: go.dev/doc/go1.24

⬇️ Загрузить: go.dev/dl/#go1.24.0

#golang #release

@golang_google
👣 Gody — это легковесная библиотека для языка Go, предназначенная для валидации структур данных!

🌟 Она позволяет разработчикам определять правила валидации с помощью тегов в структурах, что упрощает проверку входных данных в приложениях. Библиотека предоставляет встроенные правила, такие как проверка на непустое значение (not_empty) и минимальное значение (min), а также возможность добавления пользовательских правил.

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Netnscli – это удобный инструмент командной строки, написанный на GO для управления Локальными теестовми стендами в виртуальной машине (network testbeds) в Linux, который помогает администраторам и разработчикам быстро создавать, переключаться, настраивать и удалять сетевые пространства, не прибегая к сложному синтаксису стандартных утилит вроде «ip netns».

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

Автоматизация и интеграция:
- Благодаря простоте использования и скриптовому характеру, инструмент легко интегрируется в bash-скрипты и CI/CD пайплайны, что позволяет автоматизировать задачи, связанные с конфигурацией сетевого окружения.

Для пользователей, незнакомых с деталями работы «ip netns» из пакета iproute2, netnscli предлагает более понятный и удобный способ взаимодействия с сетевыми пространствами.

Чем он отличается от подобных инструментов
- Простой CLI-интерфейс:
В то время как стандартный инструмент «ip netns» обладает всеми необходимыми функциями, его синтаксис может показаться громоздким. Netnscli упрощает этот процесс, оборачивая сложные команды в более дружелюбные и легко запоминаемые команды.

- Фокус на конкретной задаче:
Вместо того чтобы быть частью крупного набора сетевых утилит, netnscli сконцентрирован исключительно на управлении сетевыми пространствами, что позволяет ему быть лёгким, быстрым и специализированным решением.

- Поддержка автоматизации:
Инструмент спроектирован с расчётом на интеграцию в скрипты и автоматизированные процессы, что делает его особенно ценным в сценариях разработки и тестирования.

Github

@golang_google

#linux #cli #local #network #namespace #golang
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 go-tmdb-cli — это приложение командной строки на Go, предназначенное для взаимодействия с The Movie Database (TMDb) API!

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

🔐 Лицензия: Apache

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Misconfig Mapper — это проект на Go для выявления, обнаружения и устранения распространённых ошибок конфигурации безопасности в популярных сервисах, технологиях и SaaS-решениях, используемых вашей компанией или целями программы bug bounty!

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Fileserver — это легковесный сервер на Go, предназначенный для обслуживания статических файлов и одностраничных приложений (SPA) без зависимостей!

🌟 Он предоставляет такие функции, как генерация заголовков ETag для кэширования и сжатие контента с использованием gzip, что способствует эффективной доставке веб-контента.

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Minecraft from scratch

Этот проект представляет собой клон Minecraft, разработанный «с нуля» на Go с использованием только современного OpenGL.

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

Основные возможности проекта
- Процедурная генерация мира:
Используется многократно применяемый Perlin noise для создания бесконечного, процедурно генерируемого ландшафта. Присутствует система биомов, генерация пещер, деревьев и даже простейших систем формирования рельефа.

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

- Графика и рендеринг:
Приложение написано с использованием OpenGL 4.1. Реализованы собственные шейдерные программы для отрисовки блоков, UI-элементов и эффектов, а также применяются методы отсечения (view frustum culling) для оптимизации рендеринга.

- Игровой цикл и механика:
В проекте присутствует смена дня и ночи, динамическое освещение, а также возможность размещения и удаления блоков, что имитирует базовую механику игры Minecraft. Также предусмотрены такие элементы, как инвентарь игрока и режим полёта.

- Динамическая загрузка чанков:
Мир разбит на чанки, которые подгружаются и выгружаются динамически в зависимости от положения игрока, что помогает снизить нагрузку на систему и обеспечить плавную работу даже в больших мирах.

Как реализован проект
Язык и библиотеки:
Проект написан на Go. Для работы с графикой используются библиотеки github.com/go-gl/gl/v4.1-core/gl и github.com/go-gl/glfw/v3.3/glfw, а для математических вычислений применяется github.com/go-gl/mathgl/mgl32.

Архитектура:
Код организован по принципу компонентного подхода:

- World и World Generator: отвечают за генерацию чанков, ландшафта и размещение объектов (деревьев, пещер и т.д.).
- Physics Engine: содержит реализацию динамики, обработки столкновений и расчётов движения.
Рендеринг: система отрисовки, которая включает шейдеры, оптимизацию через отсечение невидимых объектов и поддержку динамического освещения.
- Система управления: включает обработку ввода с клавиатуры и мыши, что позволяет управлять персонажем, переключать режимы (например, полёта) и взаимодействовать с миром.


Проект интересен нескольким категориям разработчиков:

- Любители OpenGL и низкоуровневой графики:
Он демонстрирует, как можно создать полноценное 3D-приложение с использованием только OpenGL без сторонних движков.

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

- Инженеры, интересующиеся процедурной генерацией и физическими движками:
Реализация процедурного мира, генерация ландшафта с помощью Perlin noise и собственный физический движок представляют собой интересный материал для изучения и экспериментов.

Github

@golang_google

#gamedev #Minecraft #golang #go
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Xun — это HTTP-веб-фреймворк на Go, использующий net/http.ServeMux из Go 1.22 и html/template для серверного рендеринга!

🌟 Он поддерживает сжатие ответов (gzip, deflate), автоматическое SSL (AutoTLS) через Let's Encrypt, встроенную валидацию форм с i18n и систему ViewEngine (Static, Json, Html).

🔐 Лицензия: Apache-2.0

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Go Repos: простое веб-приложение, которое выводит случайные репозитории GitHub, написанные на языке Go.

Репозиторий может быть полезен Go-разработчикам, особенно если вы хотите:

Изучить, как создать простое веб-приложение на Go с использованием стандартных пакетов (net/http, html/template).

Понять, как работать с GitHub API для получения данных о репозиториях.
Получить примеры реализации быстрого и легковесного UI для поиска и отображения Go-проектов.

Однако стоит учитывать, что проект находится в активной разработке и код ещё не оптимизирован. Это больше эксперимент или учебный проект, чем готовое решение для продакшна.

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM