37.1K subscribers
1.46K photos
33 videos
5 files
1.62K links
加入频道
👣 Фаззинг-тестирование в Go, gofuzz и go-fuzz

🟡Фаззинг — это метод автоматического тестирования ПО, который заключается в предоставлении некорректных, неожиданных или случайных данных в программу. В процессе тестирования отслеживается поведение программы, например, чтобы она не выбрасывала исключений, не пыталась завершиться с ошибкой или не возникло утечки памяти.

▶️ Собственно, о фаззинг-тестировании и пойдёт речь в данной статье
▶️Gofuzz

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Дайджест полезных материалов из мира Golang за неделю

Инструменты недели:
📌 go-size-analyzer - инструмент для анализа размера зависимостей в скомпилированных бинарных файлах
Go.
📌 Go-mongox - пакет Go Mongo, поддерживающий операции по работе с документами и эффективным компоновщиком данных BSON с использованием различных типов данных.
📌Dendy - это эмулятор NES/Famicom, написанный на Go и названный в честь советского клона Famicom, который был у многих в детстве.
📌 The Gowebly CLI - инструмент интерфейса командной строки, который упрощает создание Go приложений на серверной части.

Почитать:
Fuzzing-тестирование. Практическое применение
Почему теряются поля при конвертации?
Бойлерплейт как инструмент стандартизации Go-проектов
Как добавить метаданные в изображение?
Пишем поиск семантически похожих текстов (или товаров) за полчаса на Go и Postgres (pgVector)
Шаблон backend сервера на Go
Использование миграций баз данных в Go
My weekly dev.to recommendations
What’s New in Go 1.22: cmp.Or
Golang in-memory key-value pair cache
Golang generator functions (Experimental in 1.22)
From Homemade HTTP Router to New ServeMux
(Part 5)Golang Framework Hands-on - KisFlow Stream Computing Framework-Function Scheduling
Go Program pattern 04:Map-Reduce
Live reload em Go com docker e compile daemon
Go program pattern 05 : Decorations
Go program pattern 03:Inversion of Control
Gin + Gorm Practical Guide, Implementing a Simple Q&A Community Backend Service in One Hour
"The Two Reasons I Prefer Passing Struct Pointers Around"

Посмотреть:
🌐 Разработка полноценного распределенного хранилища файлов на Go ( 9:57:00)
🌐 Why Golang's IO.READER Is More Important Than You Think ( 06:38)
🌐 Расследуй убийство с SQL. Игры, которые реально учат писать код. ( 03:52)
🌐 3 Important Use Cases Why The Industry Is Using Kafka ( 07:52)
🌐 When Should You Pick NEOVIM Over VSCODE? ( 01:00)
🌐 Ultimate Golang - HTMX - TEMPL - TAILWIND Project Template ( 02:35:23)
🌐 DEPENDENCY INJECTION IN GOLANG? YEAH YIKES ( 01:55:43)
🌐 Внутреннее устройство планировщика Go ( 01:01:57)

Хорошего дня!

@Golang_google
👣 Как мы ускорили Golang-тесты на CI

Неплохая статья, которая даёт понимание, как используется Go в бигтехе.

О чём?
В СберМаркете микросервисная архитектура. В качестве CI/CD используется GitLab. На CI гоняются вполне типовые задачи по тестированию, различным проверкам, сборкам образов и т. д. Часть job предоставляется самим сервисом, часть — внедряется в пайплайн сервиса нашей платформой.
Во всех golang-сервисах пишут тесты на свой код, которые в среднем гоняются на CI более 5 минут.
Поэтому автор подумал, что неплохо бы это всё ускорить — собственно, этим он и решил поделиться

📎 Статья

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

Devcards предоставляет интерактивную визуальную среду для Go, аналогичную REPLY и python ноутбукам, таким как Jupyter.


go install github.com/igorhub/devcard/cmd/devcards@latest


Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Список вопросов на позицию Go-разработчика в МТС

🟡Встречайте большой список вопросов с собеседований в МТС. Примерно те же вопросы встречаются и в других бигтех-компаниях, так что список почти универсальный

🟡Вопросы разбиты по таким секциям, это не только Go:
— Секция 1, системный минимум
— Секция 2, минимум по Go
— Секция 3, форматы данных
— Секция 4, базы данных
— Секция 5, сети
— Секция 6, брокеры, очереди сообщений
— Секция 7, инфраструктура и архитектура
— Секция 8, алгоритмы

▶️ Вопросы

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Gitbook по основам Go и тестированию приложений

Открытый учебник по Go с упором на тестирование и test coverage

▶️ Gitbook

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 C# vs Go, сравнение, сходства и различия

Содержание статьи:
Введение в C# и Go: основы и философия
Сравнение производительности: C# против Go
Экосистема и инструментарий: возможности расширения
Удобство использования: синтаксис и обучение
Многопоточность и конкурентность:⁤ битва подходов
Применение на практике: от⁣ стартапов до крупных‍ систем

Статья поможет разобраться, что больше подходит для решения вашей задачи: C# или Go, ну и плюс в статье есть много важных моментов, уверен будет полезно

📎 Статья

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Лучшие библиотеки Go для парсинга данных

Держите пару наиболее популярных средств автоматизации Go при работе с парсингом (скрейпингом) данных.

Colly – это крутой фреймворк для ускорения написания программ-парсеров, web-пауков и сканеров любой сложности. Разрабатывается с 2017 года, имеет своё сложившееся комьюнити, распространяется по модели с открытым исходным кодом.

GoQuery – библиотека для языка Go, обеспечивающая тот же синтаксис при обращении с DOM-структурой, что и jQuery. Естественно, как и прототип, может использоваться не только для написания скриптов и создания интерфейсов, но и для удобного парсинга данных.
GoQuery основана на стандартном пакете net/html Go и на сторонней библиотеке cascadia (нужна для обработки CSS-селекторов).

Ferret – это готовая система для извлечения данных с web-страниц (софт для парсинга). Распространяется ПО с открытыми исходниками, большая часть кода написана на языке Go (альтернативная реализация на Python называется PyFer). Ferret может также использоваться для тестирования пользовательских интерфейсов, формирования баз для процесса машинного обучения, аналитики и подобных задач.

📎 Подробнее

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🔐 Hash

Hash - это простой удобный терминальный менеджер паролей, написанный на GO.

Если вы работает много времени в терминале, Hash может хорошо вписаться в ваш рабочий процесс.

Github

@Golang_google
👣 Evolving the Go Standard Library with math/rand/v2

Новый пост в официальном блоге Go посвящен пакету math/rand/v2 для Go 1.22, первому “v2” в стандартной библиотеке.

Еще этом посте обсуждается конкретные обоснование изменений в math /rand /v2, а затем рассматриваются общие принципы, которыми будут руководствоваться разработчики в следующих обновлениях.

https://go.dev/blog/randv2

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Lock-free структуры данных в Go (стек Трайбера)

Полезный контент по структурам данных, которые синхронизируются без блокировок.
Затрагиваются важные вопросы, такие как возникновение проблем с безопасностью при использовании неправильной lock-free структуры в конкурентном доступе.

Обсуждаемые моменты
├╼ Lock-free структуры данных
├╼ Реализация стека на связном списке
├╼ Неправильная реализация lock-free стека
├╼ Правильная реализация lock-free стека
├╼ ABA проблема
├╼ Hazard pointers
╰╼ Tagged pointers

📎 YouTube

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Распределенная легкая векторная база данных, написанная с нуля на Go.

Поддерживает
- полнотекстовый поиск с использованием алгоритмов ранжирования
- семантический поиск
- функции эмбединга текста (HTTP API на Python)
- отказоустойчивость сохранения данных на диске с сегментной репликацией с использованием Raft

#golang #go

Github

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