37.1K subscribers
1.46K photos
34 videos
5 files
1.62K links
加入频道
👣 PTerm — Go-модуль для современного вывода в консоль

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

🖥 GitHub

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Кратко про то, как устроен компилятор Go

Компилятор Go не просто черный ящик, который берет на входе код и выдает бинарник. Он скорее похож на хорошо отлаженный конвейер, где каждый этап выполняет свою роль.

Классически, компилятор делится на две большие части: frontend, который занимается пониманием и анализом вашего кода, и backend, который отвечает за генерацию машинного кода.

В части фронтенда исходный код проходит через несколько этапов. Лексический анализ разбивает ваш код на токены, как если бы вы разрезали строку на слова и знаки пунктуации. Синтаксический анализ берет эти токены и строит из них абстрактное синтаксическое дерево (AST).

Подробнее об этом и не только — в этом туториале:
📎 Статья

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
👣 Keploy — open-source инструмент на Go для быстрого создания тестового покрытия

curl -O https://raw.githubusercontent.com/keploy/keploy/main/keploy.sh && source keploy.sh

Keploy — это ориентированный на разработчиков инструмент для тестирования API, который создает тесты вместе со встроенными моками быстрее, чем юнит-тесты.

Keploy не только записывает вызовы API, но и записывает вызовы базы данных и воспроизводит их во время тестирования.

🖥 GitHub
🟡 Доки

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
👣 buildkit — инструментарий для сборки, не зависящий от Dockerfile, с эффективным использованием кэша

brew install buildkit

BuildKit — это набор инструментов для сборки из исходного кода эффективным, простым и повторяемым способом.

BuildKit состоит из службы buildkitd и клиента buildctl. В то время как клиент buildctl доступен для Linux, macOS и Windows, buildkitd в настоящее время доступен только для Linux (и Windows, но с ограничениями)

🖥 GitHub

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Чистая архитектура на Go

Проект "architecture_golang" на GitHub представляет собой реализацию "Чистой архитектуры" на Go. В этом проекте использованы принципы и структура, представленные в репозитории golang-standards/project-layout, чтобы обеспечить хорошую организацию кода.

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

Проект использует структуру каталогов, определенную в репозитории golang-standards/project-layout. Это помогает упорядочить код и логически разделить различные компоненты проекта.

Main-пакет
— В корневом каталоге проекта будет находиться main-файл, откуда начинается выполнение приложения.

Пакеты слоев
— В проекте реализованы различные пакеты, представляющие различные слои архитектуры Clean Architecture. Каждый слой имеет свою ответственность и взаимодействует только с ближайшими соседями.

Entity
— В этом пакете определены основные сущности приложения, представляющие основные бизнес-объекты и правила.

Use Cases
— Этот пакет содержит реализацию различных use cases (использование случаев), предоставляя основные бизнес-сценарии и операции над сущностями.

Repositories
— Здесь определены интерфейсы репозиториев, которые служат для взаимодействия с хранилищами данных. Реализация репозиториев находится в более низких уровнях, чтобы соблюдать принцип инверсии зависимостей.

...ну и ещё некоторые папки и репозитории

📎 Ссылка

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Calico — решение на Go для обеспечения безопасности сетей и не только

kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.28.0/manifests/tigera-operator.yaml

Calico — это сетевое решение на Go для обеспечения безопасности, которое позволяет рабочим нагрузкам Kubernetes и другим рабочим нагрузкам выдерживаться параллельно.

🖥 GitHub
🟡 Доки

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 CasaOS — простая и легковесная open-source ОС на Go

curl -fsSL https://get.casaos.io | sudo bash

Проект CasaOS был основан с целью создания простой облачной ОС на базе экосистемы Docker.

Особенности CasaOS:
— CasaOS пытается совместить возможности публичного облака с управляемостю и конфиденциальностью полностью локальной инфраструктуры

— CasaOS можно развернуть на любой совместимой машине с помощью всего 1 строки кода

🖥 GitHub

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🎊 Выпущены версии Go 1.22.4 и 1.21.11!

🔏 Безопасность: Добавлены улучшения безопасности архивов / zip и ip-адресов

🗣 Анонс: https://groups.google.com/g/golang-announce/c/XbxouI9gY7k

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

#golang

@Golang_google
👣 sh — парсер, форматтер и интерпретатор shell

go install mvdan.cc/sh/v3/cmd/shfmt@latest

sh поддерживает POSIX Shell, Bash и mksh.
Требует Go 1.21+

🖥 GitHub
🟡 Доки

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 D2 — текстовое описание диаграмм

curl -fsSL https://d2lang.com/install.sh | sh -s --

echo 'x -> y -> z' > in.d2
d2 --watch in.d2 out.svg


D2 — язык на базе Go для текстового задания диаграмм (наподобие Mermaid)

🖥 GitHub
🟡 Доки и примеры диаграмм

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Participle — библиотека для парсеров на Go

go get github.com/alecthomas/participle/v2@latest

Цель Participle — предоставить простой, идиоматичный и элегантный способ определения парсеров в Go.

Грамматика в Participle та же, что и в пакете encoding/json: теги полей struct определяют, что и как вводится в те же поля.

🖥 GitHub

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 OpenIM — open-source SDK для обмена мгновенными сообщениями

git clone https://github.com/openimsdk/open-im-server && cd open-im-server
docker compose up -d

# настроить внешний IP-адреса

bash bootstrap.sh


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

🖥 GitHub
🟡 Доки

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