🎊 Выпущены версии Go 1.22.3 и 1.21.10!
📣 Анонс: https://groups.google.com/g/golang-announce/c/wkkO4P9stm0
📦 Загрузить: https://go.dev/dl/#go1.22.3
#golang
@Golang_google
📣 Анонс: https://groups.google.com/g/golang-announce/c/wkkO4P9stm0
📦 Загрузить: https://go.dev/dl/#go1.22.3
#golang
@Golang_google
quic-go — это Go-реализация протокола QUIC.
QUIC позволяет мультиплексировать несколько потоков данных между двумя компьютерами, работая поверх протокола UDP, и содержит возможности шифрования, эквивалентные TLS и SSL. Имеет более низкую задержку соединения и передачи, чем TCP.
Хорошо переносит потерю части пакетов путём выравнивания границ криптографических блоков по границам пакетов. В протокол заложена возможность прямой (упреждающей) коррекции ошибок на уровне пакетов, но на практике она отключена.
quic-go поддерживает HTTP/3, включая QPACK и HTTP Datagrams.
В дополнение к этим базовым RFC, quic-go также реализует и другие RFC.
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Веб-инструмент для просмотра журналов в режиме реального времени.
Транслируйте любое содержимое в веб-интерфейс с автоматически сгенерированными фильтрами.
Вы можете взять бинарник logdy, направить вывод логов в него, и вы получите на выходе веб-интерфейс, для удобной работы и фильтрации логов.
$ brew install logdy
#backend #golang.
▪Github: https://github.com/logdyhq/logdy-core
▪Demo: https://demo.logdy.dev/
▪Инструмент: https://logdy.dev/
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
brew tap anchore/grype
brew install grype
Работает с Syft, мощным инструментом SBOM (software bill of materials) для контейнерных образов и файловых систем.
▪GitHub
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Обычный подход в написании теста для компонента состоит из следующего:
Такой подход приводит к тому, что в тестах фиксируется внутренняя работа компонента, хотя все, что мы хотим проверить - это, что компонент делает то что нужно, без разницы как он это делает внутри
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
—
go install github.com/xyproto/algernon@latest
algernon — это веб-сервер со встроенной поддержкой QUIC, HTTP/2, Lua, Teal, Markdown, Pongo2, HyperApp, Amber, Sass(SCSS), GCSS, JSX, Ollama (LLMs), BoltDB (встроенный, хранит БД в файле, как SQLite), Redis, PostgreSQL, MariaDB/MySQL, MSSQL
Помимо этого algernon предоставляет ограничение скорости, плавное отключение, плагины, настройка прав доступа.
Все в одном небольшом исполняемом файле.
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
mockery предоставляет возможность легко генерировать моки для интерфейсов Golang с помощью пакета
stretchr/testify/mock
mockery избавляет от шаблонного кодирования, необходимого для использования моков
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
mkdir ~/golang
cd ~/golang
Далее переходим на страницу официального сайта https://go.dev/dl/, с перечнем доступных версий Golang и скачиваем нужный нам архив.
Распаковываем скаченный архив в созданный каталог, у меня это
~/golang
и переименовываем его так, чтобы было понятно какая это версия, например go-1.21.4. Должно получиться ~/golang/go1.21.4
.Предположим, что вышла новая версия Golang 1.21.5. Так же скачиваем архив, с данной версией на официальном сайте и распаковываем ее в созданный каталог
~/golang/go1.21.5
. И того должна получиться следующая структура:
├── go-1.21.4
├── go-1.21.5
Аналогичным образом в дальнейшем добавляем другие версии.
Сейчас если вести в терминале команду:
go version
Мы получим ошибку
go: команда не найдена
. Чтобы это исправить откроем в привычном вам редакторе файл ~/.profile
и добавим в него следующую конструкцию:
# golang
export GOROOT=~/golang/go1.21.5
export PATH=$PATH:$GOROOT/bin
Далее мы расширяем переменную сред
PATH
добавив к ее значениям $GOROOT/bin
, ссылающуюся на исполняемый файл Golang.Перезапустим терминал либо введем команду, чтобы изменения вступили в силу:
source ~/.profile
Теперь если ввести в терминале команду:
go version
Вместо ошибки увидим текущую версию —
go version go1.21.5 linux/amd64
.
go get <package>
go install <package>
Необходимо явно указать каталог куда пакеты будут скачены. Создадим каталог ~/golang/packages рядом с версиями Golang.
mkdir ~/golang/packages
Остается добавить, созданный каталог в переменные среды по аналогии как это было сделано с GOROOT и того должно получиться:
# golang
export GOROOT=~/golang/go1.21.5
export GOPATH=~/golang/packages
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
Перезапустим терминал либо введем команду, чтобы изменения вступили в силу:
source ~/.profile
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
В этой статье разберём архитектуру и детали реализации пакетного менеджера на Go. Рассмотрим универсальные вещи, которые вы сможете применить к любому менеджеру пакетов, если решите его написать.
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Подробнее о тестировании модулей — в статье. Если конкретнее, то речь пойдёт о:
— Проведение базовых тестов с использованием
testing
— Написание testcase
— Подготовительные работы до и после тестирования
— Повышение эффективности тестирования
— Техники расширенного тестирования
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Поддерживает такие виджеты:
— Контент из RSS-каналов
— Посты из субреддитов
— Погода
— Закладки
— Последние видеоролики на YouTube с определенных каналов
— Календарь
— Акции
— iframe
— Релизы GitHub
— Мониторинг сайта
Запустить, используя Docker:
docker run -d -p 8080:8080 \
-v ./glance.yml:/app/glance.yml \
-v /etc/timezone:/etc/timezone:ro \
-v /etc/localtime:/etc/localtime:ro \
glanceapp/glance
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
go install github.com/anqiansong/github-compare@latest
Написан с использованием
termui
, termui-dpc
, spinner
, go-github
, githubv4
, mapreduce
, cobra
и lipgloss
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM