Библиотека 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
🔐 Защита gRPC-сервисов с помощью JWT-аутентификации на Go

gRPC является популярным выбором для создания веб-API благодаря своей эффективности и независимости от языка. Однако защита gRPC-сервисов так же важна, как и защита любой другой распределённой системы.

gRPC предоставляет несколько механизмов для повышения безопасности. В гайде Matt Boyle разбирает пример реализации аутентификации в gRPC с упором на interceptors, metadata и JWT в качестве механизма аутентификации.

👉 Читать
🔥151👍1🎉1
💬 Пусть Т9 продолжит эту фразу за вас:

Как же меня бесит в программировании...

#интерактив
😁24
🛠️ Go Blueprint — инструмент для создания новых Go-проектов с определенной структурой

Это один из растущего числа инструментов (еще один GoForge) для запуска нового Go-проекта с предопределенной структурой файлов и некоторой генерацией кода.

Он позволяет вам запустить приложение на основе Chi, Gin, Fiber или других фреймворков, с поддержкой баз данных и дополнительных инструментов вроде HTMX и Tailwind CSS.

👉 GitHub & Документация
👏22👍6🥰2
📹 Секреты внутреннего устройства аллокатора Go: видеогайд от Владимира Балуна

⏱️ Таймкоды:

00:00 Введение
01:49 Концепция аллокатора
06:09 Линейный аллокатор
11:22 Блочный аллокатор
16:21 Стековый аллокатор
20:18 Устройство malloc
25:01 Недостатки malloc
26:55 Устройство tcmalloc
28:28 Устройство аллокатора Go
32:55 Предсказуемая фрагментация памяти
40:33 Где аллоцируются объекты в Go
51:11 Почему аллокация на стеке работает быстрее, чем в куче
52:35 Расширение и уменьшение стека в Go
58:12 Зачем это все нужно знать (практические примеры)
01:03:37 Пулы объектов (sync.Pool)
01:06:57 Арены (memory arenas)
01:14:30 Аллокатор ОС

▶️ YouTube | Rutube | VK
👍25🔥4
🔥 Разработка circuit breaker на Go: гайд для начинающих

В распределенных системах "breaking the circuit" означает остановку повторяющейся операции с высокой частотой отказов, такой как отправка запросов в другой сервис, когда этот сервис перегружен.

Circuit breaker уменьшает или блокирует дальнейшие запросы до тех пор, пока частота отказов снова не упадет ниже определенного уровня. Под катом — гайд по разработке библиотеки на Go с нуля.

👉 Читать
7👍2
🤯 Ситуация:

Вам поступает задача, вы на глаз оцениваете ее в две недели и получаете одобрение по срокам. Сначала все идет хорошо, пилите проект и ничто не предвещает беды.

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

А когда приходит время сдачи работы, выясняется, что большинство работы сделано неправильно.

💬 Как думаете, как стоило поступить исполнителю?
😁18🤔1
🛠️ GoToSocial 0.17.0 — сервер ActivityPub на базе Go

ActivityPub — это стандарт, лежащий в основе открытых федеративных соцсетей вроде Mastodon. Это не Mastodon, но он предлагает некоторую совместимость с его API, поэтому вы можете использовать с ним клиентские приложения Mastodon.

👉 GitHub
👍8👾1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
📨 Как работают очереди и брокеры сообщений

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

1️⃣ Пользователь загружает большой файл для обработки.
2️⃣ Веб-сервер принимает файл и создает задание.
3️⃣ Задание добавляется в очередь задач, а файл загружается в объектное хранилище.
4️⃣ Позже рабочий процесс забирает задания из очереди одно за другим и обрабатывает их, получая файл из хранилища.

Это самый простой пример. Очереди сообщений можно использовать для:

✔️ Планирования и управления фоновыми задачами.
✔️ Распределения задач между несколькими рабочими процессами.
✔️ Управления сервисами подписки и уведомлений.
✔️ Буферизации данных.
✔️ Повторных попыток обработки платежей и многого другого.

Подробнее читайте в нашем гайде 👇

🔗 Читать статью
🔗 Зеркало
4👍1
Вакансии «Библиотеки программиста» — ждем вас в команде!

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

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

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

Ждем ваших откликов 👾
🥰2👍1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
Аллокация памяти: paging 🆚 segmentation

👉 Источник

#инфографика
3👍1
🔄 Переход на Go глазами PHP-разработчика: 5 подводных камней

Костя Козин (старший PHP-разработчик в Lamoda Tech) делится подводными камнями, которые могут возникнуть при переходе с одного языка на другой, и с которыми сталкивался он сам и его коллеги. Если знать о них заранее, то смена стека может пройти не так болезненно, а знакомство с Go станет более предсказуемым.

1️⃣ «В Go так принято»
2️⃣ Специфичность языка и маркетинг
3️⃣ Go не снизит количество багов
4️⃣ На старте вас может тошнить от собственного кода, и это нормально
5️⃣ Низкое качество кода сразу после перехода

👉 Читать статью полностью
8🌚5👍4
🔥 Фундаментальное и практическое руководство по эффективному изучению и постепенному созданию блокчейна с нуля на Go + gRPC

Любите вы блокчейн или ненавидите, ваша точка зрения остается мнением до тех пор, пока вы не узнаете, как он работает.

И как только вы получите эти знания (например, с помощью этого руководства), ваша точка зрения, вероятно, отойдет от любви или ненависти и остановится где-то посередине.

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

👉 GitHub
21👍14
Корутины: stackful 🆚 stackless

В статье корутины рассматриваются как общий концепт, без привязки к конкретному языку. Вы узнаете об основных различиях между stackless и stackful корутинами: чем они отличаются, какие у них плюсы/минусы и многое другое.

👉 Читать
👍10
This media is not supported in your browser
VIEW IN TELEGRAM
🪄 Магия генератора Go-кода: краткое руководство по началу работы

Существует не так много руководств по генерации кода Go, что вдохновило автора на создание проекта, который генерирует функции-обёртки для методов заданного типа.

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

👉 Читать
👍8🤔42👏1🥱1
💬 А вы отдыхаете на выходных?

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

👍 — да, только этим и занимаюсь
🤔 — нет, доделываю «хвосты» по работе
💯 — не работаю, но занимаюсь пет-проектами
🤩 — свой вариант (напишу в комментариях)

#интерактив
💯78👍74🤔41🤩6🥱1
Кстати, несмотря на то, что канал time.Timer является буферизованным каналом с емкостью 1 элемент, проверка cap (timer.C) все равно вернет 0:

package main

import (
"fmt"
"time"
)

func main() {
t := time.NewTimer(0)
fmt.Println(cap(t.C))
}


👉 Подробнее
👏8👍5👾4
📊🚀 Почему все говорят о Kafka?

Хочешь узнать, как обрабатывать миллионы событий в секунду и почему такие гиганты, как Netflix и Uber, без ума от Kafka? Давай разберемся, как этот инструмент может превратить поток данных в золотую жилу для твоего проекта.

Читать статью
👍3😁1
⚡️Разыгрываем флагманский смартфон

«Библиотека программиста» разыгрывает один из трех смартфонов на выбор:
🔹Samsung Galaxy S24 Ultra на 1 ТБ
🔹Xiaomi 14 Ultra на 512 ГБ
🔹iPhone 16 Pro Max на 512 ГБ

🔥 А еще 99 участников розыгрыша получат скидку 50% на наш курс Базовые модели ML и приложения!
Промокод будет действителен до 20 ноября.

Условия просты:
→ подписаться на Библиотека нейротекста
→ подписаться на Библиотека нейрозвука
→ подписаться на Библиотека нейрокартинок
→ нажать на кнопку «Участвовать» под этим постом

Итоги появятся 30 октября в 20:00 по московскому времени в нашем канале Библиотека программиста. Затем мы свяжемся с победителем, который сам выберет смартфон. Тем, кто получит промокод, мы вышлем его в течение недели после окончания розыгрыша.

⚠️ Убедитесь, что вам можно написать в личные сообщения или следите за результатами — если мы не сможем с вами связаться, то не сможем и отправить приз. Доставить мы можем только в города России и Беларуси.
🔥1