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
—
curl -fsSL https://get.casaos.io | sudo bash
Проект CasaOS был основан с целью создания простой облачной ОС на базе экосистемы Docker.
Особенности CasaOS:
— CasaOS пытается совместить возможности публичного облака с управляемостю и конфиденциальностью полностью локальной инфраструктуры
— CasaOS можно развернуть на любой совместимой машине с помощью всего 1 строки кода
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥49🤯16👍10❤6🤔3
🎊 Выпущены версии 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
🔏 Безопасность: Добавлены улучшения безопасности архивов / zip и ip-адресов
🗣 Анонс: https://groups.google.com/g/golang-announce/c/XbxouI9gY7k
⬇️ Загурзить: https://go.dev/dl/#go1.22.4
#golang
@Golang_google
👍22❤6🔥3🎉3
—
go install mvdan.cc/sh/v3/cmd/shfmt@latest
sh поддерживает POSIX Shell, Bash и mksh.
Требует Go 1.21+
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥4❤2🤔2
curl -fsSL https://d2lang.com/install.sh | sh -s --
echo 'x -> y -> z' > in.d2
d2 --watch in.d2 out.svg
D2 — язык на базе Go для текстового задания диаграмм (наподобие Mermaid)
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24❤8🔥4😁1🤬1
—
go get github.com/alecthomas/participle/v2@latest
Цель Participle — предоставить простой, идиоматичный и элегантный способ определения парсеров в Go.
Грамматика в Participle та же, что и в пакете
encoding/json
: теги полей struct
определяют, что и как вводится в те же поля.@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯11👍10❤2🔥2