Библиотека 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
#холивар

💬 Какие Go-проекты с открытым исходным кодом вы могли бы поставить в пример хорошо/правильно (по вашему мнению) структурированного проекта? Присылайте ссылки в комментарии👇

🙏 — пофиг на структуру проекта, главное, чтобы все работало
🙏30👍7😁41
Forwarded from Библиотека программиста | программирование, кодинг, разработка
30833856.pdf
2.8 MB
Перед вами работа 17-летней Лекси Маттик, суть которой — понять, что именно происходит, когда вы запускаете программу на своем компьютере.

С помощью простых иллюстраций вы узнаете, как работает многопроцессорность, что такое системные вызовы, как компьютеры управляют памятью с помощью аппаратных прерываний и как Linux загружает исполняемые файлы.

📌 В книге объясняется:

🔸Как процессоры выполняют инструкции вашего приложения
🔸Как ОС использует прерывания для переключения ЦП между задачами
🔸Способ, которым виртуальная память распределяет физическую память между процессами
🔸Процессы компиляции и компоновки приложений
👍285👏4
«Библиотека программиста» ищет девушек, работающих в IT — разработке, тестировании, информационной безопасности и других направлениях

Мы проводим новое исследование, посвященное специфике работы женщин в IT — от сложностей и недостатков в работе до гендерных стереотипов.

Пройдите короткий опрос — он анонимный и займет не более 10 минут вашего времени.

Ссылка тут.
👍65
☝️Реальные кадры из жизни команды Go, устраняющей все потребности в Go 2.0, добавляя базовую поддержку обратной и прямой совместимости с использованием переменных окружения и тегов сборки.

🔗 Обратная совместимость, Go 1.21 и Go 2
🔗 Прямая совместимость и управление туллчейном в Go 1.21
😁145👍2
#вопросы_с_собесов

📌В чем разница между очередями, потоками и шаблонами обмена сообщениями pub/sub?

1️⃣Очередь — хранилище, которое обеспечивает размещение и чтение данных в определённом порядке.

2️⃣Потоки и их характерные признаки:

▪️Обработка данных происходит в реальном времени, непрерывно.
▪️Неограниченные события.
▪️Могут быть упорядочены по разделу/теме.

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

3️⃣Шаблоны обмена сообщениями pub/sub

Модель «издатель-подписчик» состоит из 4-х ключевых компонентов:
▪️Сообщение — коммуникационные данные, передаваемые от отправителя к получателю
▪️Тема. Каждое сообщение имеет тему, связанную с ним.
▪️Абонент — получатель сообщения. Подписчики должны подписаться на интересующие их темы.
▪️Издатель — компонент, который отправляет сообщения.

❗️В современной облачной архитектуре приложения разделяют на небольшие независимые стандартные блоки-сервисы. Обмен сообщениями по модели pub/sub обеспечивает мгновенные уведомления о событиях для этих распределенных систем. Она поддерживает масштабируемую и надежную связь между независимыми программными модулями.
10🥱10👍6🔥3
Дмитрий Королёв, бэкенд-разработчик в Авито, рассказывает об устройстве сборщика мусора в Go и деталях его работы, чтобы вы могли писать более производительные приложения и лучше понимать внутреннее устройство языка.

🔗 Читать
🔥18👍2🥱1
Повышение производительности: подробное руководство по кэшированию в Go с Redis

В предыдущем материале рассматривались самые базовые аспекты работы с Redis в Go. В этой статье речь идет о кэшировании в контексте Go и Redis👇

🔗 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
golang.pdf
80.9 KB
#холивар

Вы посоветовали бы данную дорожную карту для начинающих разработчиков или тех, кто переходит с другого языка на Go? Если да, есть ли какие-то важные аспекты, которых в ней не хватает? Может быть в ней есть то, что вообще неуместно?
🥱5👍2🤩1
Артём Чаадаев, Go-разработчик из команды ассортимента размещения в Туту, погружается в различные аспекты конкурентной разработки:

🔸Как деактивировать большое количество пользователей в стороннем API (обычно это бывает после применения бизнес-логики) 🔸Как использовать два паттерна конкурентной разработки на Go: семафор (Semaphore) и пул обработчиков (Worker pool)
🔸Какие плюсы/минусы обоих подходов
👍11🔥51
GoLab — первая итальянская международная конференция по языку программирования Go, организованная компанией Develer.

📌Ловите подборку докладов:

🌐 Uncover Unknown Bugs With Fuzzing in Go | Sagar Sonwane
🌐 Modernizing Falco with Go: a Story of Love and Betrayal | Jason Dellaluce & Leonardo Grasso
🌐 Built-In Testing in Go is More Than Just Passable | Scott McAllister
🌐 Defensive programming techniques in Go | Daniel Martí
🌐 Recipes for reducing cognitive load – yet another idiomatic Go talk | Federico Paolinelli
🌐 High-assurance Go cryptography | Filippo Valsorda
🌐 The Go WebAssembly ABI at a Low Level | Xe Iaso
🌐 Generating Generators | Tamir Bahar
🌐 Call me maybe – communication between microservices | Adelina Simion & Artur Kondas
🌐 Beyond database/sql: The Driver Pattern | Boston Cartwright
🌐 Zig Makes CGo Cross-compilation Just Work | Loris Cro
🌐 Keynote | Things you didn’t know about Go and how to become an expert | Roberto Clapis
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🤔4
📝Глубокое техническое погружение во все аспекты Redis: от различных топологий Redis до data persistence и разветвления процессов.

🤩Если любите подобные визуальные руководства, обратите внимание на другие разделы architecture notes.
🔥153
Forwarded from Библиотека программиста | программирование, кодинг, разработка
😁69🤔2👍1🌚1
В Go 1.21 пакет slog был добавлен в стандартную библиотеку. Он выводит логирование на новый уровень, включая такие функции, как структурированное логирование, кастомизация вывода и многое другое! Самое время разобраться подробнее👇

🔗 Читать
👍23🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Как реализовать автозаполнение аргументов в CLI-проекте на Go с использованием Cobra: пошаговый гайд на примере простого проекта.

🔗 Читать
👍14
#tip #go #beginner

Использование ссылки на переменную итератора цикла

В Go переменная итератора цикла — это единственная переменная, которая принимает разные значения на каждой итерации цикла. Это очень эффективно, но может привести к непреднамеренному поведению при неправильном использовании. Смотрите пример слева, который выдаст неожиданные результаты:

Values: 3 3 3
Addresses: 0x40e020 0x40e020 0x40e020


На каждой итерации мы добавляем адрес i к срезу out, но поскольку это одна и та же переменная, мы добавляем тот же адрес, который в итоге содержит последнее значение, присвоенное i. Одно из решений — скопировать переменную цикла в новую переменную:

for i := 0; i < 3; i++ {
i := i
out = append(out, &i)
}


Новый вывод программы — это то, что ожидалось:

Values: 0 1 2
Addresses: 0x40e024 0x40e028 0x40e032


Строка i := i копирует переменную цикла i в новую переменную, ограниченную блоком тела цикла for, также называемым i. Адрес новой переменной — это тот, который добавляется к массиву. В каждой итерации цикла создается новая переменная.

Хотя этот пример может показаться несколько очевидным, такое же неожиданное поведение может быть более скрытым в некоторых других случаях. Например, переменная цикла может быть массивом, а ссылка может быть срезом (пример справа). В результате получаем:

Values: [[3] [3] [3]]
👍22
Новые каналы по Go🎉

Готовимся к собеседованиям по Go и проверяем себя на практических задачках: «Библиотека программиста» запустила два канала специально для Go-разработчиков и тех, кто хочет ими стать👨‍🏫

Подписывайтесь:
👉Библиотека собеса по Go — тут мы готовимся к интервью
👉Библиотека задач по Go — тут решаем задачи, проходим тесты и изучаем код
👍12😁2
Обзор изменений и нововведений в Go 1.21: взгляд команды МТС

«Зачем читать подобные обзоры» — спросите вы. В первую очередь за тем, что каждый разработчик видит ту или иную фичу языка по-своему, под своим углом. Кто знает, может именно этот обзор покажется вам наиболее интересным. Поэтому читаем и закрепляем знания о новой версии языка.
🔥92👍2🥱1