🔐 Защита gRPC-сервисов с помощью JWT-аутентификации на Go
gRPC является популярным выбором для создания веб-API благодаря своей эффективности и независимости от языка. Однако защита gRPC-сервисов так же важна, как и защита любой другой распределённой системы.
gRPC предоставляет несколько механизмов для повышения безопасности. В гайде Matt Boyle разбирает пример реализации аутентификации в gRPC с упором на interceptors, metadata и JWT в качестве механизма аутентификации.
👉 Читать
gRPC является популярным выбором для создания веб-API благодаря своей эффективности и независимости от языка. Однако защита gRPC-сервисов так же важна, как и защита любой другой распределённой системы.
gRPC предоставляет несколько механизмов для повышения безопасности. В гайде Matt Boyle разбирает пример реализации аутентификации в gRPC с упором на interceptors, metadata и JWT в качестве механизма аутентификации.
👉 Читать
🔥15❤1👍1🎉1
🛠️ Go Blueprint — инструмент для создания новых Go-проектов с определенной структурой
Это один из растущего числа инструментов (еще один GoForge) для запуска нового Go-проекта с предопределенной структурой файлов и некоторой генерацией кода.
Он позволяет вам запустить приложение на основе Chi, Gin, Fiber или других фреймворков, с поддержкой баз данных и дополнительных инструментов вроде HTMX и Tailwind CSS.
👉 GitHub & Документация
Это один из растущего числа инструментов (еще один 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
⏱️ Таймкоды:
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 с нуля.
👉 Читать
В распределенных системах "breaking the circuit" означает остановку повторяющейся операции с высокой частотой отказов, такой как отправка запросов в другой сервис, когда этот сервис перегружен.
Circuit breaker уменьшает или блокирует дальнейшие запросы до тех пор, пока частота отказов снова не упадет ниже определенного уровня. Под катом — гайд по разработке библиотеки на Go с нуля.
👉 Читать
❤7👍2
🤯 Ситуация:
Вам поступает задача, вы на глаз оцениваете ее в две недели и получаете одобрение по срокам. Сначала все идет хорошо, пилите проект и ничто не предвещает беды.
Со временем задача усложняется, потому что данные приходят с задержками и вразнобой. Вы не делитесь с руководителем своими трудностями, потому что тогда это можно посчитать за некомпетентность.
А когда приходит время сдачи работы, выясняется, что большинство работы сделано неправильно.
💬 Как думаете, как стоило поступить исполнителю?
Вам поступает задача, вы на глаз оцениваете ее в две недели и получаете одобрение по срокам. Сначала все идет хорошо, пилите проект и ничто не предвещает беды.
Со временем задача усложняется, потому что данные приходят с задержками и вразнобой. Вы не делитесь с руководителем своими трудностями, потому что тогда это можно посчитать за некомпетентность.
А когда приходит время сдачи работы, выясняется, что большинство работы сделано неправильно.
💬 Как думаете, как стоило поступить исполнителю?
😁18🤔1
🛠️ GoToSocial 0.17.0 — сервер ActivityPub на базе Go
ActivityPub — это стандарт, лежащий в основе открытых федеративных соцсетей вроде Mastodon. Это не Mastodon, но он предлагает некоторую совместимость с его API, поэтому вы можете использовать с ним клиентские приложения Mastodon.
👉 GitHub
ActivityPub — это стандарт, лежащий в основе открытых федеративных соцсетей вроде Mastodon. Это не Mastodon, но он предлагает некоторую совместимость с его API, поэтому вы можете использовать с ним клиентские приложения Mastodon.
👉 GitHub
👍8👾1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
📨 Как работают очереди и брокеры сообщений
Очередь сообщений — структура данных, которая хранит сообщения в порядке FIFO. Представьте, что вашему приложению нужно обрабатывать файлы, которые загружают пользователи. Очередь сообщений в этом случае может выступать как очередь задач, обрабатывающая задания асинхронно:
1️⃣ Пользователь загружает большой файл для обработки.
2️⃣ Веб-сервер принимает файл и создает задание.
3️⃣ Задание добавляется в очередь задач, а файл загружается в объектное хранилище.
4️⃣ Позже рабочий процесс забирает задания из очереди одно за другим и обрабатывает их, получая файл из хранилища.
Это самый простой пример. Очереди сообщений можно использовать для:
✔️ Планирования и управления фоновыми задачами.
✔️ Распределения задач между несколькими рабочими процессами.
✔️ Управления сервисами подписки и уведомлений.
✔️ Буферизации данных.
✔️ Повторных попыток обработки платежей и многого другого.
Подробнее читайте в нашем гайде 👇
🔗 Читать статью
🔗 Зеркало
Очередь сообщений — структура данных, которая хранит сообщения в порядке FIFO. Представьте, что вашему приложению нужно обрабатывать файлы, которые загружают пользователи. Очередь сообщений в этом случае может выступать как очередь задач, обрабатывающая задания асинхронно:
1️⃣ Пользователь загружает большой файл для обработки.
2️⃣ Веб-сервер принимает файл и создает задание.
3️⃣ Задание добавляется в очередь задач, а файл загружается в объектное хранилище.
4️⃣ Позже рабочий процесс забирает задания из очереди одно за другим и обрабатывает их, получая файл из хранилища.
Это самый простой пример. Очереди сообщений можно использовать для:
✔️ Планирования и управления фоновыми задачами.
✔️ Распределения задач между несколькими рабочими процессами.
✔️ Управления сервисами подписки и уведомлений.
✔️ Буферизации данных.
✔️ Повторных попыток обработки платежей и многого другого.
Подробнее читайте в нашем гайде 👇
🔗 Читать статью
🔗 Зеркало
❤4👍1
❗Вакансии «Библиотеки программиста» — ждем вас в команде!
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
👉Переводчик и автор оригинальных статей
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
👉Переводчик и автор оригинальных статей
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
job.proglib.io
Вакансии в медиа «Библиотека программиста»
Количество проектов в редакции постоянно растет, так что нам всегда нужны специалисты
🥰2👍1
🔄 Переход на Go глазами PHP-разработчика: 5 подводных камней
Костя Козин (старший PHP-разработчик в Lamoda Tech) делится подводными камнями, которые могут возникнуть при переходе с одного языка на другой, и с которыми сталкивался он сам и его коллеги. Если знать о них заранее, то смена стека может пройти не так болезненно, а знакомство с Go станет более предсказуемым.
1️⃣ «В Go так принято»
2️⃣ Специфичность языка и маркетинг
3️⃣ Go не снизит количество багов
4️⃣ На старте вас может тошнить от собственного кода, и это нормально
5️⃣ Низкое качество кода сразу после перехода
👉 Читать статью полностью
Костя Козин (старший PHP-разработчик в Lamoda Tech) делится подводными камнями, которые могут возникнуть при переходе с одного языка на другой, и с которыми сталкивался он сам и его коллеги. Если знать о них заранее, то смена стека может пройти не так болезненно, а знакомство с Go станет более предсказуемым.
1️⃣ «В Go так принято»
2️⃣ Специфичность языка и маркетинг
3️⃣ Go не снизит количество багов
4️⃣ На старте вас может тошнить от собственного кода, и это нормально
5️⃣ Низкое качество кода сразу после перехода
👉 Читать статью полностью
❤8🌚5👍4
🔥 Фундаментальное и практическое руководство по эффективному изучению и постепенному созданию блокчейна с нуля на Go + gRPC
Любите вы блокчейн или ненавидите, ваша точка зрения остается мнением до тех пор, пока вы не узнаете, как он работает.
И как только вы получите эти знания (например, с помощью этого руководства), ваша точка зрения, вероятно, отойдет от любви или ненависти и остановится где-то посередине.
Потому что блокчейны — это нечто большее, чем просто платформы для финансовых пирамид и розыгрышей, но они также далеки от того, чтобы быть панацеей.
👉 GitHub
Любите вы блокчейн или ненавидите, ваша точка зрения остается мнением до тех пор, пока вы не узнаете, как он работает.
И как только вы получите эти знания (например, с помощью этого руководства), ваша точка зрения, вероятно, отойдет от любви или ненависти и остановится где-то посередине.
Потому что блокчейны — это нечто большее, чем просто платформы для финансовых пирамид и розыгрышей, но они также далеки от того, чтобы быть панацеей.
👉 GitHub
❤21👍14
Корутины: stackful 🆚 stackless
В статье корутины рассматриваются как общий концепт, без привязки к конкретному языку. Вы узнаете об основных различиях между stackless и stackful корутинами: чем они отличаются, какие у них плюсы/минусы и многое другое.
👉 Читать
В статье корутины рассматриваются как общий концепт, без привязки к конкретному языку. Вы узнаете об основных различиях между stackless и stackful корутинами: чем они отличаются, какие у них плюсы/минусы и многое другое.
👉 Читать
👍10
This media is not supported in your browser
VIEW IN TELEGRAM
🪄 Магия генератора Go-кода: краткое руководство по началу работы
Существует не так много руководств по генерации кода Go, что вдохновило автора на создание проекта, который генерирует функции-обёртки для методов заданного типа.
Этот конкретный пример может послужить хорошей отправной точкой для создания собственного генератора кода на Go.
👉 Читать
Существует не так много руководств по генерации кода Go, что вдохновило автора на создание проекта, который генерирует функции-обёртки для методов заданного типа.
Этот конкретный пример может послужить хорошей отправной точкой для создания собственного генератора кода на Go.
👉 Читать
👍8🤔4❤2👏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
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
📊🚀 Почему все говорят о Kafka?
Хочешь узнать, как обрабатывать миллионы событий в секунду и почему такие гиганты, как Netflix и Uber, без ума от Kafka? Давай разберемся, как этот инструмент может превратить поток данных в золотую жилу для твоего проекта.
Читать статью
Хочешь узнать, как обрабатывать миллионы событий в секунду и почему такие гиганты, как Netflix и Uber, без ума от Kafka? Давай разберемся, как этот инструмент может превратить поток данных в золотую жилу для твоего проекта.
Читать статью
👍3😁1
Forwarded from Библиотека нейросетей | ChatGPT, Midjourney, DeepSeek, Sora
⚡️Разыгрываем флагманский смартфон
«Библиотека программиста» разыгрывает один из трех смартфонов на выбор:
🔹Samsung Galaxy S24 Ultra на 1 ТБ
🔹Xiaomi 14 Ultra на 512 ГБ
🔹iPhone 16 Pro Max на 512 ГБ
🔥 А еще 99 участников розыгрыша получат скидку 50% на наш курс Базовые модели ML и приложения!
Промокод будет действителен до 20 ноября.
Условия просты:
→ подписаться на Библиотека нейротекста
→ подписаться на Библиотека нейрозвука
→ подписаться на Библиотека нейрокартинок
→ нажать на кнопку «Участвовать» под этим постом
Итоги появятся 30 октября в 20:00 по московскому времени в нашем канале Библиотека программиста. Затем мы свяжемся с победителем, который сам выберет смартфон. Тем, кто получит промокод, мы вышлем его в течение недели после окончания розыгрыша.
⚠️ Убедитесь, что вам можно написать в личные сообщения или следите за результатами — если мы не сможем с вами связаться, то не сможем и отправить приз. Доставить мы можем только в города России и Беларуси.
«Библиотека программиста» разыгрывает один из трех смартфонов на выбор:
🔹Samsung Galaxy S24 Ultra на 1 ТБ
🔹Xiaomi 14 Ultra на 512 ГБ
🔹iPhone 16 Pro Max на 512 ГБ
🔥 А еще 99 участников розыгрыша получат скидку 50% на наш курс Базовые модели ML и приложения!
Промокод будет действителен до 20 ноября.
Условия просты:
→ подписаться на Библиотека нейротекста
→ подписаться на Библиотека нейрозвука
→ подписаться на Библиотека нейрокартинок
→ нажать на кнопку «Участвовать» под этим постом
Итоги появятся 30 октября в 20:00 по московскому времени в нашем канале Библиотека программиста. Затем мы свяжемся с победителем, который сам выберет смартфон. Тем, кто получит промокод, мы вышлем его в течение недели после окончания розыгрыша.
⚠️ Убедитесь, что вам можно написать в личные сообщения или следите за результатами — если мы не сможем с вами связаться, то не сможем и отправить приз. Доставить мы можем только в города России и Беларуси.
🔥1