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

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

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

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

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
👩‍💻 Go sync.Cond — самый недооцененный механизм синхронизации: продолжение серии статей Phuong Le про сложные аспекты Go на простых иллюстрациях

👉
Читать
👉
Другие статьи в серии:
• Go sync.Mutex: нормальный/starvation режим
• Go sync.WaitGroup и проблема выравнивания
• Go sync.Pool и механика, стоящая за ним
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍5
Go-разработчики часто используют следующую конструкцию:

f, err := os.Create("file.txt")
if err != nil {
return err
}
defer f.Close()


Однако, для файлов с возможностью записи это может быть опасно, так как метод Close() может вернуть ошибку, которая игнорируется при использовании defer.

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

f, err := os.Create("file.txt")
if err != nil {
return err
}
if _, err := f.Write([]byte("Hello, world!")); err != nil {
f.Close()
return err
}
return f.Close()


Использование defer безопасно для чтения, но для записи стоит быть осторожнее и проверять ошибки вручную.

👉 Подробнее
👍36🤔8👾52🌚1
🛠️ live-pprof — инструмент для мониторинга производительности Go-приложений в режиме реального времени

Это новый проект, поэтому ваши результаты могут отличаться, но идея стоит вашего внимания.

Вместо того, чтобы профилировать приложение и смотреть на результаты после, почему бы не анализировать производительность в режиме реального времени (без установки инструментов вроде Docker, Prometheus, Grafana).

1️⃣ Кодим:

package main

import (
"log"
"net/http"
_ "net/http/pprof"
)

func main() {
log.Println(http.ListenAndServe("localhost:6060", nil))
}


2️⃣ Запускаем: live-pprof 6060 или
live-pprof http://localhost:6060/debug/pprof
3️⃣ Проверяем: http://localhost:6060/debug/pprof
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩29👍112
🛠️🤖 Создание Go-приложений на базе LLM

Retrieval Augmented Generation (RAG) позволяет предоставлять LLM знания из кастомных ресурсов, от локальных текстовых файлов до репозиториев кода. Затем LLM может использовать эти новые знания для ответов на вопросы.

В новом посте блога Go Eli Bendersky представляет простую концепцию сервера RAG и обсуждает три варианта реализации такого сервера на Go.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14😁21👍1🥰1
🥇 Итоги конкурса: победитель определён

Надеемся, что все отлично отпраздновали день программиста. А нам за два дня пришло много ответов на нашу задачу.


У нас есть победитель, он выбран рандомно среди правильных ответов:
erdnya — аккаунт закрытый. Свяжитесь с @mdudarevcontact

Мы с ним свяжемся и дадим доступ к любому из следующих курсов

Курсы на выбор:
🔵 Архитектуры и шаблоны программирования
🔵 Основы программирования на Python
🔵 Базовые модели ML и приложения
🔵 Frontend Basic: принцип работы современного веба
Please open Telegram to view this post
VIEW IN TELEGRAM
😁12👍31👾1
💡 Фронтенд-разработка с использованием Go templates и htmx

Простой гайд по работе с пакетом text/template стандартной библиотеки Go и инструментом htmx для создания интерактивного веб-UI.

👉 Читать
👏6😁5👍4🤔31
🙌 Хардкорный вышмат для тех, кто интересуется ML, AI, DS

Начать с вводных занятий можно здесь, ответив всего на 4 вопроса – https://proglib.io/w/f49f3553

Что будет на демо?

🔹Вводный урок от CPO курса;

🔹Лекции со всеми преподавателями МГУ по темам: теория множеств, непрерывность функции, основные формулы комбинаторики, матрицы и операции над ними, градиентный спуск;

🔹Практические задания и дополнительные материалы!

⚡️Переходите и активируйте – https://proglib.io/w/f49f3553
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👏31😢1
🛠️ Ergo framework — реализация идей, технологий и паттернов проектирования из мира Erlang на языке Go

В его основе лежит actor model, network transparency и набор готовых к использованию компонентов для разработки. Это существенно упрощает создание сложных и распределенных решений, сохраняя при этом высокий уровень надежности и производительности.

👉 GitHub
👍8😁2🤔1
Мы хотим провести большой розыгрыш и подарить победителю смартфон на выбор. Помимо iPhone, предлагаем вам выбрать, какой ещё смартфон вы бы хотели видеть среди призов👇
👩‍💻 Заметки о запуске Go в браузере с помощью WebAssembly

Eli Bendersky объясняет основы вызова Go из JavaScript, манипулирования DOM, использования TinyGo для уменьшения размера бинаря WASM и одновременного запуска процессов с помощью Web Workers.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍3
Вакансии «Библиотеки программиста» — ждем вас в команде!

Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов

Подробности тут

Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴

Ждем ваших откликов 👾
👍2🔥1😁1👾1
🔐Криптография в Go: AES-шифрование

Гайд от John Arundel, ментора и автора множества книг по Go:

1️⃣ AES в деталях
2️⃣ Реализация AES
3️⃣ AES-шифрование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥62
Привет, друзья! 👋

Готовим статью «Лучшие шрифты для программирования» и хотим узнать ваше мнение! 🖥️
😁4
Поделитесь своим опытом: какой шрифт, на ваш взгляд, самый удобный для долгих сессий кодинга и почему? 💻🕰️

Ждем ваши ответы в комментариях! Самые интересные и полезные советы войдут в нашу статью. 📝💡
👍3
⚖️💻 5 признаков зависимости от программирования: как вернуть баланс в жизнь

Если вы чувствуете, что код вытесняет всё остальное, эта статья поможет вам взглянуть на проблему по-новому и вернуться к полноценной жизни. Она охватывает такие аспекты, как уход в цифровой мир, использование стимуляторов, ментальное присутствие на работе, игнорирование хобби и нерациональные траты. Автор предлагает практические советы для восстановления баланса.

🔗 Читать статью
😁5👍4👾2🎉1
🔥🛠️ TinyGo Playground — теперь с бОльшим количеством ресурсов

Вы еще не «трогали» TinyGo? TinyGo Playground позволяет вам писать код с симулированным оборудованием (например, светодиодами и т. д.) в вашем браузере.

И теперь он имеет в два раза больше ЦП и ОЗУ для вашего удовольствия от тестирования. Теперь он также может показывать оценки энергопотребления для вашего кода.

👉 Playground
🔥29👍51