Библиотека Go-разработчика | Golang
23.3K subscribers
2.07K 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
🛠️ 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
🔥 Паттерны многопоточности в Go

Статья-шпаргалка по ключевым паттернам многопоточности:

Future/Promise — асинхронный запрос на выполнение задачи, не блокирующий основной поток.
Generator — простой и удобный способ создания потока данных. С его помощью можно запускать горутину, которая генерирует значения и передает их через канал.
Pipeline — мощный паттерн, позволяющий разбить задачу на несколько этапов обработки данных, организуя плавный поток через горутины.
Fan-in и Fan-out — fan-out помогает распараллелить выполнение одной задачи на несколько горутин, а fan-in помогает собрать результаты этих горутин в один поток данных.
Semaphore — инструмент для контроля числа одновременно выполняемых горутин, защищающий от перегрузок системы.
Worker Pool — организует набор горутин для параллельной обработки задач, что особенно полезно для оптимизации производительности.
Обработка ошибок в горутинах — паттерн, помогающий корректно и безопасно обрабатывать ошибки, возникающие в горутинах, через каналы.
👍168🥱2
🚀 Оптимизация и визуализация параллелизма тестов: почему больше ядер не ускоряют ваши тесты Go

Вы, вероятно, знаете о t.Parallel() для параллельного запуска тестов, но знали ли вы, что иногда это может замедлить тесты? Robert Laszczak рассматривает некоторые инструменты и тактики, помогающие визуализировать и оптимизировать тесты + когда стоит запускать их параллельно.

👉 Читать гайд
3👍8
🧪 Чем заменить Postman: 5 отличных инструментов для разработки API

Postman долгое время был основным инструментом для разработки и тестирования API, но сейчас для большинства разработчиков его ограничения стали перевешивать преимущества. Рассмотрим альтернативные инструменты, которые могут предложить больше возможностей, чем Postman — даже в бесплатной версии.

👉Читаем здесь
👍21
🎃 Приглашаем на вебинар перед Хэллоуином: «Нужна ли математика на собеседованиях?» 🧙‍♀️

Темные тучи сгущаются, и в воздухе витает мистическая атмосфера... Готовы ли вы окунуться в мир загадочной математики и раскрыть тайны успешного собеседования? Тогда ждем вас 28 октября в 20:00! 🕸
https://proglib.io/w/c64dc12c

Что вас ждет в эту зловещую ночь:

💀 Ошибаться не страшно: узнаем, как неудачные проекты и опыт «в стол» превращают джуниоров в сеньоров. Расскажем истории о том, как ошибки закаляют и помогают достигать вершин мастерства.

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

🧙 Теория и практика — зелье успеха:

• Выбор метрики оценки модели: какую метрику показать бизнесу, чтобы не столкнуться с гневом нечисти? Разберемся в разнице между MAPE и WAPE и когда какую применять.

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

🦇 Бонус для смельчаков: раскроем секреты тестирования в маркетинге, которые помогут не заблудиться в темном лесу конкурентного рынка.

Не упустите шанс провести вечер в компании единомышленников, погрузиться в атмосферу Хэллоуина и получить ценные знания!

🕯 Записывайтесь на вебинар и готовьтесь к мистическим открытиям!
https://proglib.io/w/c64dc12c👻
👏1
🔥 Phuong Le представил очередную занимательную серию статей про I/O в Go:

▪️ Go I/O Readers, Writers и Data
▪️ Go I/O Closer, Seeker, WriterTo и ReaderFrom
👍9
🎨🔙🔚 Паттерн «Бэкенд для фронтенда»: преимущества, недостатки и лучшие практики для реализации

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

👉 Читать статью
👉 Зеркало
😁37👍43👏2🤩1