Swag — инструмент для автоматического создания документации RESTful API в формате Swagger 2.0 для приложений на языке Go!
Он преобразует аннотации в коде Go в документацию, упрощая интеграцию Swagger UI с существующими проектами.
Swag поддерживает популярные веб-фреймворки Go, такие как Gin, Echo и другие. Разработчики могут использовать декларативные комментарии для описания API, включая информацию о маршрутах, параметрах, телах запросов и ответах, а также настройку авторизации. Это делает процесс создания и обновления документации более простым и удобным.
🔐 Лицензия: MIT
Github
@golangprofi
Он преобразует аннотации в коде Go в документацию, упрощая интеграцию Swagger UI с существующими проектами.
Swag поддерживает популярные веб-фреймворки Go, такие как Gin, Echo и другие. Разработчики могут использовать декларативные комментарии для описания API, включая информацию о маршрутах, параметрах, телах запросов и ответах, а также настройку авторизации. Это делает процесс создания и обновления документации более простым и удобным.
🔐 Лицензия: MIT
Github
@golangprofi
Что выведет код ?
package main
import (
"fmt"
)
func printChannel(ch chan int) {
for {
select {
case num := <-ch:
fmt.Printf("%d ", num)
}
}
}
func main() {
ch := make(chan int)
go printChannel(ch)
for i := 0; i < 5; i++ {
ch <- i
}
}
ОтветThis media is not supported in your browser
VIEW IN TELEGRAM
Dive
Инструмент для анализа Docker-образов, предназначенный для поиска возможностей оптимизации их размера.
Он предоставляет возможность просмотра содержимого слоёв и отслеживания изменений файлов, а также оценивает эффективность образов, вычисляя «потерянное» пространство.
Инструмент может быть интегрирован в процессы CI/CD и поддерживает работу с разными источниками образов, такими как
GitHub
@golangprofi
Инструмент для анализа Docker-образов, предназначенный для поиска возможностей оптимизации их размера.
Он предоставляет возможность просмотра содержимого слоёв и отслеживания изменений файлов, а также оценивает эффективность образов, вычисляя «потерянное» пространство.
Инструмент может быть интегрирован в процессы CI/CD и поддерживает работу с разными источниками образов, такими как
Docker и Podman.
dive <your-image-tag>
GitHub
@golangprofi
Друзья, какого контента не хватает, а какой нравится?
Нужны ли задачки с кодом по Go? Книги? Инструменты наподобие этого.
Дайте обратную связь, планирую активнее заняться каналом и дать больше инфы.
Нужны ли задачки с кодом по Go? Книги? Инструменты наподобие этого.
Дайте обратную связь, планирую активнее заняться каналом и дать больше инфы.
Для начала самое простое: сделал чат, где можно искать вакансии. Спарсил многие группы по Go и обьединил.
Например вот нашел вакансию для Junior: https://www.tgoop.com/golangjoboffer/. Подпишитесь.
Как только будет 100 человек в группе - отпишем всем HR менеджерам , чтобы они присылали каждый день вакансии.
Например вот нашел вакансию для Junior: https://www.tgoop.com/golangjoboffer/. Подпишитесь.
Как только будет 100 человек в группе - отпишем всем HR менеджерам , чтобы они присылали каждый день вакансии.
Telegram
Golang вакансии
Вакансии по Go с телеграм контактами HR менеджеров или тех, кто нанимает людей в компании.
SimplySocket — лёгкая библиотека на языке Go для работы с WebSocket!
Она упрощает управление соединениями, обработку событий и управление комнатами в реальном времени, что особенно полезно для разработки приложений, требующих обмена сообщениями или взаимодействия в реальном времени, таких как игры или чаты.
SimplySocket может быть полезной альтернативой более сложным решениям, таким как Centrifugo или Watermill, если вы ищете минималистичный подход к реализации WebSocket в реальном времени.
🔐 Лицензия: MIT
Github
Чат с Go вакансиями
Она упрощает управление соединениями, обработку событий и управление комнатами в реальном времени, что особенно полезно для разработки приложений, требующих обмена сообщениями или взаимодействия в реальном времени, таких как игры или чаты.
SimplySocket может быть полезной альтернативой более сложным решениям, таким как Centrifugo или Watermill, если вы ищете минималистичный подход к реализации WebSocket в реальном времени.
🔐 Лицензия: MIT
Github
Чат с Go вакансиями
🚀 Go 1.24: Главные обновления!
💡 Новое в языке
➖ Generic'и: go теперь поддерживает обобщенные псевдонимы типов: псевдоним типа может быть параметризован так же, как определенный тип
🛠 Инструменты
➖ Директива tool в go.mod: для учёта инструментов без лишнего кода.
➖ Кэширование go run: ускоряет повторные запуски.
➖ JSON-вывод для go build/install.
➖ Поддержка версий модулей в бинарниках.
⚡️ Производительность
➖ Карты (map) с Swiss Tables: до 3% прироста скорости.
🧹 Среда выполнения
➖ Новая финализация: runtime.AddCleanup заменяет SetFinalizer.
📚 Библиотеки
➖ Слабые ссылки: новый пакет weak.
➖ Постквантовая криптография: пакет crypto/mlkem.
➖ Ограничение файловой системы: тип os.Root.
🔍 Инструменты анализа
➖ vet ловит больше ошибок в тестах и printf.
#ужененовость
Чат с Go вакансиями
🛠 Инструменты
⚡️ Производительность
🧹 Среда выполнения
📚 Библиотеки
🔍 Инструменты анализа
#ужененовость
Чат с Go вакансиями
Please open Telegram to view this post
VIEW IN TELEGRAM
📕 Новинка компьютерной литературы про Go
Книга «Go: идиомы и паттерны проектирования» Джона Боднера — практическое руководство для разработчиков, желающих писать чистый и идиоматический код на Go.
Она поможет углубить знания и освоить эффективные практики проектирования, особенно полезные для тех, кто уже знаком с основами языка.
Основные темы книги:
➖ Паттерны проектирования в Go: подробное рассмотрение шаблонов, которые помогают строить масштабируемые и поддерживаемые приложения.
➖ Идиоматические конструкции: советы по использованию особенностей Go для написания кода, соответствующего лучшим практикам сообщества.
➖ Обработка ошибок и конкурентность: рекомендации по эффективному управлению ошибками и реализации конкурентных процессов с использованием горутин и каналов.
➡️ Рекомендуем к прочтению
Чат с Go вакансиями
Книга «Go: идиомы и паттерны проектирования» Джона Боднера — практическое руководство для разработчиков, желающих писать чистый и идиоматический код на Go.
Она поможет углубить знания и освоить эффективные практики проектирования, особенно полезные для тех, кто уже знаком с основами языка.
Основные темы книги:
Чат с Go вакансиями
Please open Telegram to view this post
VIEW IN TELEGRAM
Golang + Gin + Postgres + Docker + gRPC + NGINX
Реализация gRPC на основе Go с Gin, PostgreSQL, Docker и NGINX
#golang
Github
Чат с Go вакансиями
Реализация gRPC на основе Go с Gin, PostgreSQL, Docker и NGINX
#golang
go install github.com/golang/mock/mockgen@v1.6.0
Github
Чат с Go вакансиями
This media is not supported in your browser
VIEW IN TELEGRAM
huh — инструмент для создания интерактивных форм с использованием библиотеки Bubble Tea, которая применяется для построения текстовых пользовательских интерфейсов (TUI) на языке Go!
Основная цель huh — упростить создание форм с различными полями ввода, обработкой ошибок и возможностями навигации между группами полей.
Инструмент предоставляет готовую структуру для построения форм, поддерживает настройку тем, горячих клавиш и адаптацию для экранных читалок (режим доступности). Также он содержит возможности для обработки данных форм и их интеграции в текстовые интерфейсы, что может быть полезно для CLI-приложений или других текстовых интерфейсов.
🔐 Лицензия: MIT
Github
Junior Вакансии Go тут
Основная цель huh — упростить создание форм с различными полями ввода, обработкой ошибок и возможностями навигации между группами полей.
Инструмент предоставляет готовую структуру для построения форм, поддерживает настройку тем, горячих клавиш и адаптацию для экранных читалок (режим доступности). Также он содержит возможности для обработки данных форм и их интеграции в текстовые интерфейсы, что может быть полезно для CLI-приложений или других текстовых интерфейсов.
🔐 Лицензия: MIT
Github
Junior Вакансии Go тут
🌐 Как ускорить API
#инфографика про основные методы улучшения производительности API
💬 Какой из методов вы уже используете? Делитесь в комментариях! 👇
Junior Вакансии Go тут
#инфографика про основные методы улучшения производительности API
💬 Какой из методов вы уже используете? Делитесь в комментариях! 👇
Junior Вакансии Go тут
Dynamic Notification System — это проект на Go, разработанный для создания масштабируемого и гибкого планировщика уведомлений!
Он поддерживает отправку уведомлений через различные каналы, такие как Slack, Email, SMS, Webhook и другие. Система позволяет легко добавлять новые платформы с помощью динамической архитектуры плагинов, не требуя перезапуска приложения.
🔐 Лицензия: MIT
Github
Junior Вакансии Go тут
Он поддерживает отправку уведомлений через различные каналы, такие как Slack, Email, SMS, Webhook и другие. Система позволяет легко добавлять новые платформы с помощью динамической архитектуры плагинов, не требуя перезапуска приложения.
🔐 Лицензия: MIT
Github
Junior Вакансии Go тут
Linux: эффективная многопроцессорность
Используем Go
Автор: Олег Цилюрик
Год издания: 2024
#go #linux #ru
Скачать книгу
Используем Go
Автор: Олег Цилюрик
Год издания: 2024
#go #linux #ru
Скачать книгу
This media is not supported in your browser
VIEW IN TELEGRAM
Zasper — это IDE, разработанная с нуля для поддержки массового параллелизма!
Она разработана на языке Go для обеспечения высокой параллельности и эффективности использования ресурсов. Zasper отличается низким потреблением памяти и процессора, позволяя работать с большими объемами данных на локальных машинах. Она доступен как в виде приложения Electron, так и как веб-приложение.
🔐 Лицензия: AGPL-3.0
Github
@golangprofi
Она разработана на языке Go для обеспечения высокой параллельности и эффективности использования ресурсов. Zasper отличается низким потреблением памяти и процессора, позволяя работать с большими объемами данных на локальных машинах. Она доступен как в виде приложения Electron, так и как веб-приложение.
🔐 Лицензия: AGPL-3.0
Github
@golangprofi
Хочешь разобраться в ключевых аспектах работы Go-разработчика и подготовиться к следующему карьерному шагу? На True Tech Go обсудим, как писать эффективный код, успешно проходить собеседования и работать с видео на Go. Лучшие эксперты из индустрии поделятся практическим опытом и ответят на вопросы.
🔹 В программе:
✅ Как оценить уровень Go-разработчика — главные задачи на собеседовании и что на самом деле ищут работодатели
✅ Как построить карьеру — обсуждаем с нанимающими лидами, что важно для роста и собеседований
📅 27 марта 2025
📍 Москва, офлайн + онлайн-трансляция
🎟 Успей зарегистрироваться по ссылке, пока есть места!
🔹 В программе:
✅ Как оценить уровень Go-разработчика — главные задачи на собеседовании и что на самом деле ищут работодатели
✅ Как построить карьеру — обсуждаем с нанимающими лидами, что важно для роста и собеседований
📅 27 марта 2025
📍 Москва, офлайн + онлайн-трансляция
🎟 Успей зарегистрироваться по ссылке, пока есть места!
Техника проверки if got != want { t.Errorf(...) } в тестах Go — это простой и эффективный способ проверки значений, который полностью соответствует философии языка. Она не требует сторонних библиотек, остаётся прозрачной и легко читаемой, что особенно важно для минималистичного и понятного кода.
Благодаря своей простоте, этот подход легко масштабируется: от проверки одного значения до сложных сценариев с таблицами тестирования. Кроме того, стандартный вывод ошибок в Go обычно достаточно информативен, чтобы быстро понять, что пошло не так.
Согласны?
Junior Вакансии Go тут
Please open Telegram to view this post
VIEW IN TELEGRAM
mtlynch.io
if got, want: A Simple Way to Write Better Go Tests
There’s an excellent Go testing pattern that too few people know. I can teach it to you in 30 seconds.
Instead of writing Go tests like this:
// The common, unrefined way.
username := GetUser()
if username != "dummyUser" {
t.Errorf("unexpected username:…
Instead of writing Go tests like this:
// The common, unrefined way.
username := GetUser()
if username != "dummyUser" {
t.Errorf("unexpected username:…
📦 Пакет embed в Go
Если вы когда-либо работали с Go, то знаете, как важно уметь управлять статическими ресурсами. Пакет embed (представленный в Go 1.16) решает эту задачу элегантно: он позволяет встраивать файлы прямо в исполняемый бинарный файл, что делает приложение автономным и упрощает его развертывание.
💡 Зачем использовать embed?
С помощью директивы //go:embed вы можете встроить файлы (например, HTML, CSS, конфигурационные файлы или изображения) прямо в бинарный файл. Это исключает необходимость поставлять эти файлы отдельно, и ваши приложения становятся более компактными и безопасными.
🛠 Как это работает?
Вы указываете директиву //go:embed перед переменной.
Используете типы данных string для текстовых файлов, []byte для бинарных данных или embed.FS для работы с целыми директориями.
🚀 Пример использования:
В этом примере файл hello.txt встроен в приложение, и его содержимое доступно как строка.
Почему стоит использовать embed?
✅ Удобство развертывания: всё в одном файле — не нужно беспокоиться о поставке отдельных файлов.
✅ Безопасность: встроенные файлы не могут быть изменены после компиляции.
✅ Автономность: ваши приложения не зависят от внешних файлов и легко переносятся между окружениями.
Когда не стоит использовать embed?
❌ Когда нужно работать с динамически изменяющимися файлами (например, конфигурациями, которые могут меняться в процессе работы приложения).
❌ Для очень больших файлов, так как это увеличивает размер бинарника.
Чат с Go вакансиями
Если вы когда-либо работали с Go, то знаете, как важно уметь управлять статическими ресурсами. Пакет embed (представленный в Go 1.16) решает эту задачу элегантно: он позволяет встраивать файлы прямо в исполняемый бинарный файл, что делает приложение автономным и упрощает его развертывание.
С помощью директивы //go:embed вы можете встроить файлы (например, HTML, CSS, конфигурационные файлы или изображения) прямо в бинарный файл. Это исключает необходимость поставлять эти файлы отдельно, и ваши приложения становятся более компактными и безопасными.
🛠 Как это работает?
Вы указываете директиву //go:embed перед переменной.
Используете типы данных string для текстовых файлов, []byte для бинарных данных или embed.FS для работы с целыми директориями.
🚀 Пример использования:
package main
import (
"embed"
"fmt"
)
//go:embed hello.txt
var hello string
func main() {
fmt.Println(hello)
}
В этом примере файл hello.txt встроен в приложение, и его содержимое доступно как строка.
Почему стоит использовать embed?
Когда не стоит использовать embed?
Чат с Go вакансиями
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Время автоматизировать QA на JavaScript 🌚
Автоматизация шагает вперед: спрос на автотесты на JS продолжает расти!
По данным последнего опроса Stack Overflow, больше 60% QA-инженеров начинают карьеру с изучения JS. И даже фреймворк Allure 3, который раньше ассоциировался в основном с Java, теперь переписан на JavaScript.
В этот четверг в 20:00 (мск) у школы QA-инженеров QA.GURU пройдет вебинар по автоматизации тестирования на JavaScript.
👉 На занятии вы узнаете о профессии QA и трендах профессии.
👉 Поработаете с фреймворком Playwright.
👉 Напишете и запустите свой автотест на JS.
А еще после урока вас ждет полноценная домашка, которую проверит преподаватель школы. Все участники вебинара получат обратную связь по ДЗ.
🔗 Зарегистрируйтесь на открытый урок, чтобы получить ссылку на трансляцию.
Попробуйте себя в новой профессии!
Автоматизация шагает вперед: спрос на автотесты на JS продолжает расти!
По данным последнего опроса Stack Overflow, больше 60% QA-инженеров начинают карьеру с изучения JS. И даже фреймворк Allure 3, который раньше ассоциировался в основном с Java, теперь переписан на JavaScript.
В этот четверг в 20:00 (мск) у школы QA-инженеров QA.GURU пройдет вебинар по автоматизации тестирования на JavaScript.
А еще после урока вас ждет полноценная домашка, которую проверит преподаватель школы. Все участники вебинара получат обратную связь по ДЗ.
Попробуйте себя в новой профессии!
Please open Telegram to view this post
VIEW IN TELEGRAM