Библиотека Go-разработчика | Golang
23.3K subscribers
2.08K photos
42 videos
87 files
4.45K links
Все самое полезное для Go-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/32d20779

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
🧰 Carbon — простой семантический пакет Go с большим количеством функций, упрощающих и ускоряющих создание, анализ и сравнение даты и времени.

👉 GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍155
💬Для чего в Go используются синтаксическая конструкция ‘…’?

📌Синтаксическая конструкция ‘…’ в Go используется в нескольких контекстах, в частности для:

1️⃣Определения функции с переменным количеством аргументов (вариативная функция). Она позволяет функции принимать неопределенное количество аргументов одного типа. Например:

func sum(nums ...int) int {
total := 0
for _, num := range nums {
total += num
}
return total
}


2️⃣Передачи элементов среза как отдельных аргументов функции:

nums := []int{1, 2, 3, 4}
sum(nums...)


3️⃣Определения массивов неизвестной заранее длины:

x := [...]int{1, 2, 3} // Здесь Go определит длину массива на основе количества элементов
👍52🥱7
🤔Критика по поводу обработки ошибок в Go распространена, но какие есть решения? Их гораздо меньше.

🤯Автор предлагает синтаксис (на скрине), который можно расширить до типичного подхода if err != nil с помощью (весьма экспериментального) инструмента Bango.

🗣Ожидаемо, что на Hacker News эта статья привела к холивару, в котором мнения варьировались от «Мне нравится, как Go это делает» до «Вместо этого используйте Rust».
🤔15😁7🌚32🥱2
💬Радио в терминале, и все это на Go? Встречайте: RadioGoGo.

☑️Инструмент сочетает в себе элегантность TUI BubbleTea с широкими возможностями API RadioBrowser. Основные особенности:

🎤Изящный и интуитивно понятный TUI
🎤Возможность поиска, просмотра и прослушивания радиостанции из обширной глобальной базы данных
🎤Интегрированное воспроизведение с использованием ffplay и многое другое
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥92🤔2
🤔Представьте, что у вас есть комфортная зарплата с одним условием — вы создаёте проект, который всегда хотели создать.

💬Какой это будет проект? Он не обязательно должен быть связан с программированием👇

#холивар
🔥6
👩‍💻👩‍💻 Кажется, Goland значительно обходит VS Code, если судить по ответам Go-разработчиков на Reddit (хотя опрос Go-разработчиков говорит обратное).

Там, конечно, и Notepad++/Vim с другими инструментами тоже упоминают, но первые два инструмента все равно доминируют.

💬А какую(-ой) IDE/редактор кода используете вы?

👍 — Goland
🤩 — VS Code
🤔 — другой инструмент (напишу в комментарии)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍306🤩206🤔12
💻 20 лучших ноутбуков для программиста в 2023 году

Выбираем самые легкие, автономные и производительные ноутбуки для кодинга.

На карточках перечислили самые производительные. Но для кодинга есть и другие важные параметры — остальные подборки смотрите в нашей статье.
🥱20👍4
📌Новости и обновления популярных инструментов: подборка для Go-разработчика

📊Хоть в опросе The State of WebAssembly 2023 было не так много участников, Go занял четвертое место по популярности среди языков для проектов WASM
🏢 Команда Go продолжает вести коллекцию тематических исследований Go, охватывающих такие компании, как American Express, Dropbox, Cloudflare и Uber

🔧Go OpenAI 1.16.0 — Go-клиент для доступа к OpenAI API с поддержкой ChatGPT, GPT-3, GPT-4, DALL·E 2, Whisper
🔧slog-otel 1.2.1 — реализация Go-обработчика slog для обеспечения корреляции записей логов с Open-Telemetry spans
🔧trufflehog 3.60.4 — инструмент для поиска и верификации API-ключей и других секретов
🔧Algernon 1.15.4 — небольшой автономный веб-сервер на чистом Go с поддержкой Lua, Teal, Markdown, HTTP/2, QUIC, Redis и PostgreSQL
🔧Air 1.49 — live reload для Go-приложений
🔧pgroll 0.3 — CLI-инструмент для безопасной и обратимой миграции схемы PostgreSQL
🔧GoCV 0.35 — привязки для библиотеки изображений OpenCV 4
🔧Fiber 2.50.0 — веб-фреймворк для Go на основе Express.js
🔧Mockery 2.36 — автогенератор кода моков для Go
🔧elem-go 0.7 — типобезопасная библиотека для создания HTML-элементов и управления ими (с помощью htmx-хэлперов)
🔧go-echarts 2.3.2 — простая, но мощная библиотека для визуализации данных
🔧go-quartz 0.8 — zero-dependency библиотека для выполнения отложенных задач
🔧bloom 3.6 — реализация фильтра Блума
🔧oasdiff
1.8.1
— инструмент для сравнения и обнаружения критических изменений в спецификациях OpenAPI
🔧SCS 2.6 — инструмент для управления HTTP-сессиями в веб-приложениях
🔧fsnotify 1.7 — библиотека для предоставления уведомлений файловой системы
🔧LakeFS 1.0 — Git для ваших данных
🔧golangci-lint 1.55.1 — более быстрый способ запуска линтеров Go

#новости #чтопроисходит
👍13
The_Complete_Guide_to_Context_in_Golang_Efficient_Concurrency_Management.pdf
3.1 MB
Полный гайд по работе с пакетом context в Go: эффективное управление конкурентностью

🎓Что такое контекст?
🎓Создание контекста
🎓Распространение контекста
🎓Получение значений из контекста
🎓Отмена контекста
🎓Timeouts и deadlines
🎓Контекст в HTTP-запросах
🎓Контекст в операциях с базой данных
🎓Лучшие практики использования контекста
🎓Распространенные ошибки, которых следует избегать
🎓Утечки контекста и горутины
🎓Использование контекста со сторонними библиотеками
🎓Контекст (новые функции, добавленные в Go 1.21)

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍343🔥21
👨‍🏫Tebeka Shorts — серия коротких видео о различных фичах Go от Miki Tebeka из Ardan Labs.

📺Смотреть плейлист
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍1
▶️Интерактивное руководство по работе с FerretDB, альтернативой MongoDB, написанной на Go

Это — интерактивная версия руководства How to Pass Basic MongoDB CRUD Operations With FerretDB из официального блога FerretDB.

Из примеров, которые можно модифицировать и запускать в духе обычного playground, вы научитесь выполнять операции CRUD с FerretDB.
👍5
errors.Is и errors.As на практике: совет по обработке ошибок от Matt Boyle для Go-разработчика.

#tip
👍18