Библиотека 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
🖼️ Постоянное обновление, или Как сохранить авторизацию API-клиента

Конкурентный доступ к переменной? Вам нужен mutex! Или оператор sync/atomic, если он подходит для вашего юзкейса. Хотя и он на самом деле не нужен. Оператор select — это элегантная альтернатива.

Christoph Berger раскрывает проблему поддержания актуальности токена доступа в веб-приложениях, когда множество клиентских сессий требует непрерывного потока данных от API.

Основное внимание уделяется методу dynamic futures в Go, который позволяет инициализировать и обновлять токен доступа из централизованного места, делая его доступным для многочисленных клиентских сессий.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍41
🧰 Команда Git представила Go-проект trace2receiver, который представляет собой компонент trace receiver для демона Custom Collector OpenTelemetry. Он получает телеметрию Git Trace2 от локальных команд Git, преобразует ее в формат OpenTelemetry и пересылает другим компонентам OpenTelemetry.

Этот компонент полезен, если вы хотите собрать данные о производительности команд Git, агрегировать данные от нескольких пользователей для создания панелей мониторинга производительности, построить распределенные трассировки вложенных команд Git или понять, как размер и форма ваших репозиториев Git влияют на производительность команд.

👉 GitHub
4🔥1
Zero-Configuration Environment Variables: как настроить переменные окружения по умолчанию с помощью стандартной библиотеки.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱10👍4
🌃🧰 GoCity — инструмент для визуализации исходного кода Go в виде зданий города.

Он может дать лучшее представление о том, как вы структурировали код, либо вы можете просто использовать его по фану. Здесь можно увидеть примеры для:

🔸sirupsen/logrus
🔸gin-gonic/gin
🔸spf13/cobra
🔸gohugoio/hugo

👉 GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🥱6🌚4👏3
🛠Разработка движка регулярных выражений с нуля: пошаговый гайд для Go-разработчика

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

• Parsing
• Building the state machine
• Matching

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
🗿Подводные камни, с которыми сталкиваются новички в Go: серия статей от одного из разработчиков go-mysql-server (Dolt)

🔹Часть 1. Как избежать ловушек в Go: простые примеры
🔹Часть 2. Размышления о nil в Go
🔹Часть 3. Размышления о срезах в Go
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥3
🧰 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