—
brew install tfsec
tfsec опирается на статический анализ кода terraform для выявления потенциальных ошибок в конфигурации.
Особенности tfsec:
— Проверяет неправильные конфигурации у всех крупных (и некоторых мелких) облачных провайдеров.
— Сотни встроенных правил
— Сканирование модулей (локальных и удаленных)
— Оценивает HCL-выражения, а также буквенные значения
— Оценивает функции Terraform, например,
concat()
— Поддерживает несколько форматов вывода: lovely (по умолчанию), JSON, SARIF, CSV, CheckStyle, JUnit, text, Gif.
— Легко настраивается (с помощью флагов CLI и/или файла конфигурации).
— Очень быстрый, способен быстро сканировать огромные репозитории
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤2👍2
—
go get github.com/cilium/ebpf
ebpf-go - это библиотека на чистом Go, которая предоставляет утилиты для загрузки, компиляции и отладки программ eBPF
ebpf-go имеет минимум внешних зависимостей и предназначена для использования в длительно работающих процессах
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥3❤2
В этой статье научимся генерировать 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
👍19❤2🥰2
—
go install goa.design/goa/v3/cmd/goa@v3
Goa использует такой подход к созданию сервисов — позволяет описать дизайн API сервиса с помощью простого DSL языка Go.
Goa расширяется с помощью плагинов, например, плагин
goakit
генерирует код, использующий библиотеку Go kit
.Goa DSL состоит из Go-функций, поэтому его можно легко развивать.
Для распространения можно использовать естественный механизм импорта в Go, что очень удобно.
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤5🔥3😁2😢1
git clone "https://github.com/caddyserver/caddy.git"
cd caddy/cmd/caddy/
go build
Быстрый и расширяемый многоплатформенный веб-сервер HTTP/1-2-3 с автоматическим HTTPS
Также Caddy предоставляет полнофункциональный пакет PKI для создания собственной полностью автоматизированной внутренней PKI и частных центров сертификации.
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤7🤔3😢1
This media is not supported in your browser
VIEW IN TELEGRAM
—
curl -fsSL https://get.jetify.com/devbox | bash
Devbox не требует использование Docker или Nix.
Всё начинается с определения списка пакетов, необходимых для проекта, а Devbox создает изолированную, воспроизводимую среду с установленными пакетами.
Devbox работает аналогично пакетному менеджеру вроде yarn — за исключением того, что пакеты, которыми он управляет, находятся на уровне операционной системы (как если установить их с помощью brew или apt-get)
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🤔8❤4🔥3
PTerm позволяет отображать графики, прогресс-бары, таблицы, текстовый ввод, меню выбора и многое другое.
Очень настраиваемый и на 100% кроссплатформенный.
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤27🔥5🤔4
Компилятор Go не просто черный ящик, который берет на входе код и выдает бинарник. Он скорее похож на хорошо отлаженный конвейер, где каждый этап выполняет свою роль.
Классически, компилятор делится на две большие части: frontend, который занимается пониманием и анализом вашего кода, и backend, который отвечает за генерацию машинного кода.
В части фронтенда исходный код проходит через несколько этапов. Лексический анализ разбивает ваш код на токены, как если бы вы разрезали строку на слова и знаки пунктуации. Синтаксический анализ берет эти токены и строит из них абстрактное синтаксическое дерево (AST).
Подробнее об этом и не только — в этом туториале:
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥5❤1
This media is not supported in your browser
VIEW IN TELEGRAM
—
curl -O https://raw.githubusercontent.com/keploy/keploy/main/keploy.sh && source keploy.sh
Keploy — это ориентированный на разработчиков инструмент для тестирования API, который создает тесты вместе со встроенными моками быстрее, чем юнит-тесты.
Keploy не только записывает вызовы API, но и записывает вызовы базы данных и воспроизводит их во время тестирования.
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25❤5🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
—
brew install buildkit
BuildKit — это набор инструментов для сборки из исходного кода эффективным, простым и повторяемым способом.
BuildKit состоит из службы
buildkitd
и клиента buildctl
. В то время как клиент buildctl
доступен для Linux, macOS и Windows, buildkitd
в настоящее время доступен только для Linux (и Windows, но с ограничениями)@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤4🔥3👏1
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
❤25👍7🤬7🤔6🤯4🔥2
—
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.28.0/manifests/tigera-operator.yaml
Calico — это сетевое решение на Go для обеспечения безопасности, которое позволяет рабочим нагрузкам Kubernetes и другим рабочим нагрузкам выдерживаться параллельно.
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤4🔥3