37.1K subscribers
1.46K photos
34 videos
5 files
1.62K links
加入频道
👣 goqu — go-библиотека для построения и выполнения SQL-запросов

go get -u github.com/doug-martin/goqu/v9

Без проблем поддерживает Postgres, MySQL, SQLite3, SQLServer и кастомные диалекты

🖥 GitHub

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Telegraf — open-source серверный агент на Go

Telegraf – это не только MQTT клиент. Telegraf – это серверный агент для сбора, обработки, агрегирования и записи метрик из различных стеков, датчиков и систем в InfluxDB.
Полезный инструмент для работы с IoT и не только

Быстрый старт с помощью Docker:
docker run --rm --volume $PWD/config.toml:/etc/telegraf/telegraf.conf telegraf

🖥 GitHub
🟡 Доки

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

brew install tfsec

tfsec опирается на статический анализ кода terraform для выявления потенциальных ошибок в конфигурации.

Особенности tfsec:
— Проверяет неправильные конфигурации у всех крупных (и некоторых мелких) облачных провайдеров.
— Сотни встроенных правил
— Сканирование модулей (локальных и удаленных)
— Оценивает HCL-выражения, а также буквенные значения
— Оценивает функции Terraform, например, concat()
— Поддерживает несколько форматов вывода: lovely (по умолчанию), JSON, SARIF, CSV, CheckStyle, JUnit, text, Gif.
— Легко настраивается (с помощью флагов CLI и/или файла конфигурации).
— Очень быстрый, способен быстро сканировать огромные репозитории

🖥 GitHub

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 ebpf-go — отладка, компилляция программ eBPF

go get github.com/cilium/ebpf

ebpf-go - это библиотека на чистом Go, которая предоставляет утилиты для загрузки, компиляции и отладки программ eBPF
ebpf-go имеет минимум внешних зависимостей и предназначена для использования в длительно работающих процессах

🖥 GitHub
🟡 Доки

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Кодогенерация Protobuf файлов используя плагин Buf

В этой статье научимся генерировать Protobuf файлы через плагин Buf. Настроим зависимости сторонних proto нотаций, такие как googleapis, grpc-gateway и protovalidate.

🟡Что внутри?
├╼ Подготовительные работы
├╼ Установка зависимостей
├╼ Структура api
├╼ Генерируем код
╰╼ Запускаем gRPC и REST сервер

▶️ Статья

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Goa позволяет ускорить разработку Go API

go install goa.design/goa/v3/cmd/goa@v3

Goa использует такой подход к созданию сервисов — позволяет описать дизайн API сервиса с помощью простого DSL языка Go.
Goa расширяется с помощью плагинов, например, плагин goakit генерирует код, использующий библиотеку Go kit.

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

🖥 GitHub
🟡 Доки

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Caddy — расширяемая серверная платформа, которая по умолчанию использует TLS

git clone "https://github.com/caddyserver/caddy.git"
cd caddy/cmd/caddy/
go build


Быстрый и расширяемый многоплатформенный веб-сервер HTTP/1-2-3 с автоматическим HTTPS
Также Caddy предоставляет полнофункциональный пакет PKI для создания собственной полностью автоматизированной внутренней PKI и частных центров сертификации.

🖥 GitHub
🟡 Доки

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

curl -fsSL https://get.jetify.com/devbox | bash

Devbox не требует использование Docker или Nix.
Всё начинается с определения списка пакетов, необходимых для проекта, а Devbox создает изолированную, воспроизводимую среду с установленными пакетами.

Devbox работает аналогично пакетному менеджеру вроде yarn — за исключением того, что пакеты, которыми он управляет, находятся на уровне операционной системы (как если установить их с помощью brew или apt-get)

🖥 GitHub
🟡 Доки

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 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