Библиотека 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
Mastering_Type_Assertion_in_Go_A_Comprehensive_Guide_by_Jamal_Kaksouri.pdf
2.2 MB
Type assertion на практике: гайд для Go-разработчика

Type assertions (утверждения типа) представляют собой простой механизм, который обязательно должен быть в вашем наборе инструментов при работе с Go. Однако в нем есть некоторые важные особенности, о которых и пойдет речь в статье.

👉 Читайте на Medium или в PDF
👍6
🧰Обзор архитектуры быстрого сборщика логов на Go

Доклад Владимира Витковского из Ozon на HighLoad++ 2022 о лучших практиках, на которых основан быстрый сборщик логов, используемый в компании.

Владимир рассказывает, как c помощью этого инструмента удалось сократить издержки на сбор логов в 10 раз по CPU и добиться 100% доставляемости логов.

📌Вы узнаете:

✔️Как организована общая архитектура сборщика логов
✔️Как написать быстрый плагин для чтения логов из файлов
✔️Как оптимизировать внутреннюю обработку потока логов
✔️Как правильно распараллелить обработку
✔️Как гарантировать доставку
🔥8🤔5👍42
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🧠⚙️ Как научиться критически мыслить: 6 эффективных способов

Критическое мышление позволяет принимать решения в условиях неопределённости, доносить свои идеи до команды, видеть ошибки в логике, замечать манипуляции. В статье рассказываем, откуда пошло это понятие и как можно развить критическое мышление.

💬Считаете ли вы, что у вас развито критическое мышление?

👍 — да, и это очень помогает мне в жизни и работе
🤔 — да, но оно ничем не помогает
🥱 — нет
👍15🥱8🤔1
🧰Реализация обновляемой блокировки чтения и записи: гайд для Go-разработчика

Обычный RWMutex подходит в большинстве случаев. Но если задача требует долго удерживать блокировку записи, при этом большая часть времени уходит на подготовку к чтению, было бы здорово иметь блокировку чтения, которую можно «обновить» до блокировки записи.

Команда Upstash столкнулась с этой проблемой и разработала UpgradableRWMutex, улучшенную версию стандартного sync.RWMutex.
👍112😁2
🤩Сборка мусора, модульное тестирование и горутины сделали Go лучшим выбором для Krater, кроссплатформенного приложения для локальной отладки приложений Laravel (да, тот самый PHP-фреймворк).

🤔Несколько месяцев назад разработчики Krater решили мигрировать на Wails (Go), хотя изначально он был написан на Tauri (Rust). Под катом — опыт команды и предпосылки такого решения👇

🔗 Читать
👍15🔥1
Обнаружение утечек памяти в Go-приложении: лучшие практики и инструменты

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

👉 Читать
👍15😁3🥱1
Результаты ежегодного опроса разработчиков StackOverflow: 20+ главных инсайтов 2023 года

В данной статье мы собрали 20+ главных инсайтов, которые помогут лучше понять, что происходит в ИТ-сфере в мире.

🔗 Читать статью
🔗 Зеркало
🥱3👍2🔥1
🤔Динамика закрытия пулл-реквестов, прирост кодовой базы, активность разработчиков по часам и по дням недели и многое другое... Что только не придумают для оценки производительности разработчика.

💬А в вашей команде есть метрики оценки личной производительности? Если да, то какие и как они измеряются?

#холивар
📌Go Time

🎤 Опыт, полученный на GopherCon 2023: как организатора, ведущего воркшопов и докладчика
🎤 Семь смертных грехов Gо: по мотивам доклада John Gregory на GopherCon "7 Deadly Gopher Sins"
🎤 Что нового в криптографических библиотеках Go: Filippo Valsorda и Roland Shoemaker из команды Go делятся новостями старой доброй криптографии

📌Cup o' Go
🎤 Gopls 0.14 с включенной телеметрией уже скоро и многое другое
🎤 range over int & range over func в деталях и многое другое
🎤 Интервью с мейнтейнером testcontainers и многое другое

#подкасты
👍5
How to Generate Unique IDs in Distributed Systems.pdf
9.1 MB
Как генерировать уникальные идентификаторы в распределенных системах: 6 ключевых стратегий

В распределенном окружении два узла могут одновременно назначать идентификаторы. Задача состоит в том, чтобы эти идентификаторы оставались уникальными, избегая дублирования и обеспечивая согласованность системы. Читайте подробнее на Medium или в PDF:

◆ UUID
◆ NanoID
◆ Sequence
◆ ObjectID
◆ Twitter Snowflake
◆ Sonyflake
👍16
🥳 Выпущены релизы Go 1.21.4 и 1.20.11

🔐 Новый выпуск включает исправления безопасности path/filepath (CVE-2023-45283, CVE-2023-45284)

🗣 Анонс
🗃 Скачать
👍162👏2
⚡️С выпуском версии 9.3.0 официальный клиент Redis делает большой шаг вперед благодаря прямой поддержке JSON

📌Простой пример того, как начать работу с JSON в Go-Redis:

var ctx = context.Background()
client := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
})

type Bicycle struct {
Brand string
Model string
Price int
}

bicycle := Bicycle{
Brand: "Velorim",
Model: "Jigger",
Price: 270,
}

_, err := client.JSONSet(ctx, "bicycle:1", "$", bicycle).Result()
if err != nil {
panic(err)
}

res, err := client.JSONGet(ctx, "bicycle:1", ".Model").Result()
if err != nil {
panic(err)
}
fmt.Println("bicycle:1 model is", res)

#новости #инструменты
👍50🔥8🎉53🥱1
Хотите готовиться к собеседованию по Go и не только на реальных примерах? Тогда пост ниже для вас👇
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🙇‍♂️Коллекция тестовых заданий для самостоятельного выполнения от разных ИТ-компаний, собранная сообществом вместе с командой Хекслет: маст-хэв при подготовке к собесу.

🔗 GitHub
👍15
🥳Сегодня четырнадцатый день рождения релиза Go с открытым исходным кодом: за плечами у команды Go и сообщества два полнофункциональных релиза и другие важные фичи

☑️Выпуски Go 1.20 в феврале и Go 1.21 в августе
☑️Завезли profile-guided optimization и встроенное управление тулчейном
☑️Добавлена поддержка сбора профилей покрытия в бинарных сборках, созданных go build
☑️Совместимость еще больше улучшена за счет расширения соглашений об использовании GODEBUG
☑️Новый пакет структурированного логирования и многие другие изменения стандартной библиотеки

👉 Подробнее в статье Расса Кокса
🎉29👍3