37.1K subscribers
1.46K photos
34 videos
5 files
1.62K links
加入频道
👣 Тестирование модулей Go

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

🟡Кроме того, автоматический запуск модульных тестов в среде непрерывной интеграции (CI) позволяет быстро обнаруживать вновь введенные ошибки, тем самым повышая стабильность программного обеспечения.

Подробнее о тестировании модулей — в статье. Если конкретнее, то речь пойдёт о:
— Проведение базовых тестов с использованием testing
— Написание testcase
— Подготовительные работы до и после тестирования
— Повышение эффективности тестирования
— Техники расширенного тестирования

📎 Статья

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Glance — self-hosted дашборд на Go, который позволяет собрать все источники информации в одном месте

Поддерживает такие виджеты:
— Контент из 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


🖥 GitHub

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Github-compare — инструмент на Go для сбора статистики аккаунта github

go install github.com/anqiansong/github-compare@latest

Написан с использованием termui, termui-dpc, spinner, go-github, githubv4, mapreduce, cobra и lipgloss

🖥 GitHub

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

Простой инструмент для реализации i18n golang.

i18n - это сокращение от английского Internationalization — интернационализация, или поддержка программным продуктом различных языков.

🖥 Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Годное руководство по фреймворку Ent в Go

Ent — это фреймворк сущностей, он упрощает процесс создания и поддержки приложений для модели данных большого масштаба.

Фреймворк ent в основном следует следующим принципам:
Легко моделировать схему базы данных в виде графовой структуры.
Определение схемы в виде кода на языке Go.
Реализация статических типов на основе генерации кода.
Написание запросов к базе данных и обход графа очень просто.
Легко расширяем и настраиваем с использованием шаблонов Go.

📎 Руководство

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Syncthing — инструмент, написанный на Go, для непрерывной синхронизации файлов с разных устройств

Syncthing — это open-source программа для непрерывной синхронизации файлов между 2+ компьютерами.

🖥 GitHub
🟡 Доки

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Go-утилита для преобразования изображения в ASCII

Интересная идея для пет-проекта; к тому же есть большой простор для улучшений — вот что можно доработать:
— выбор количества символов в итоговой ASCII-графике
— отображение нескольких вариантов полученной графики с использованием разных наборов символов
— выбор уровня детализации изображения

🖥 GitHub

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Fiber - это веб-фреймворк на основе Express

go mod init github.com/your/repo
go get -u github.com/gofiber/fiber/v3

Fiber построен на основе Fasthttp, самом быстром HTTP-движке для Go. Создан для облегчения быстрой разработки с нулевой аллокацией памяти и с высокой производительностью.

🖥 GitHub

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Air — живая перезагрузка для Go-приложений

go install github.com/cosmtrek/air@latest

Air — это CLI-утилита для разработки приложений на Go с живой загрузкой.
Достаточно просто запустить air в корневом каталоге проекта и дальше можно сосредоточиться на коде.

🖥 GitHub

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Как создать тестовые данные GPS в Go

Если вы работаете с GPS, вам обязательно понадобятся данные для тестирования функций.
В этой статье автор описывает, как решил эту проблему: он создал функцию, которая генерирует полусвязные треки с данными GPS о местоположении

📎 Подробнее

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Как получить флаг с кавычками из командной строки

▶️Возможно, кто-то с этим сталкивался (можете дать знать :))
В этом коде ниже не получается корректно передавать аргумент:
option = flag.String("option", `None`, "set option")
flag.Parse()
fmt.Println(*option)

То есть, если при запуске указать go run client.go -option {"op":"ping"}, то fmt.Println выводит без кавычек — {op:ping}.

Как получить аргумент в исходном его виде?


▶️Проблема проста и банальна (как и большинство проблем программиста) — терминал считает кавычки спец. символами. Так что нужно использовать единичные кавычки, чтобы экранировать двойные:
$ go run client.go -option '{"op":"ping"}'


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