🤩 Подборка записей свежих стримов от Anthony De Meulemeester: про Go, его инструменты и различные аспекты применения в реальных проектах.
📺 Golang Fiber Auth Middleware Setup For My New Side Hustle
📺 How I Refactor Code In My Full Stack Golang Project
📺 I Found The Secret Stack For Building Rapid And Robust Apps
📺 I Nailed Every Coding Interview With This Secret Trick
📺 A Real Use Case of Goroutines With Package Context In Golang
📺 HTMX Is Amazing And This Is Why
📺 Why Map Pointer Values In Golang Will Shoot You In The Foot
📺 How To Start Trading The Crypto Markets Like A PRO
📺 A Real World Project Use Case Of Golang's Sync.WaitGroup
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍5❤2
#холивар
💬 Какие Go-проекты с открытым исходным кодом вы могли бы поставить в пример хорошо/правильно (по вашему мнению) структурированного проекта? Присылайте ссылки в комментарии👇
🙏 — пофиг на структуру проекта, главное, чтобы все работало
💬 Какие Go-проекты с открытым исходным кодом вы могли бы поставить в пример хорошо/правильно (по вашему мнению) структурированного проекта? Присылайте ссылки в комментарии👇
🙏 — пофиг на структуру проекта, главное, чтобы все работало
🙏30👍7😁4❤1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
30833856.pdf
2.8 MB
Перед вами работа 17-летней Лекси Маттик, суть которой — понять, что именно происходит, когда вы запускаете программу на своем компьютере.
С помощью простых иллюстраций вы узнаете, как работает многопроцессорность, что такое системные вызовы, как компьютеры управляют памятью с помощью аппаратных прерываний и как Linux загружает исполняемые файлы.
📌 В книге объясняется:
🔸Как процессоры выполняют инструкции вашего приложения
🔸Как ОС использует прерывания для переключения ЦП между задачами
🔸Способ, которым виртуальная память распределяет физическую память между процессами
🔸Процессы компиляции и компоновки приложений
С помощью простых иллюстраций вы узнаете, как работает многопроцессорность, что такое системные вызовы, как компьютеры управляют памятью с помощью аппаратных прерываний и как Linux загружает исполняемые файлы.
📌 В книге объясняется:
🔸Как процессоры выполняют инструкции вашего приложения
🔸Как ОС использует прерывания для переключения ЦП между задачами
🔸Способ, которым виртуальная память распределяет физическую память между процессами
🔸Процессы компиляции и компоновки приложений
👍28❤5👏4
❗«Библиотека программиста» ищет девушек, работающих в IT — разработке, тестировании, информационной безопасности и других направлениях
Мы проводим новое исследование, посвященное специфике работы женщин в IT — от сложностей и недостатков в работе до гендерных стереотипов.
Пройдите короткий опрос — он анонимный и займет не более 10 минут вашего времени.
Ссылка тут.
Мы проводим новое исследование, посвященное специфике работы женщин в IT — от сложностей и недостатков в работе до гендерных стереотипов.
Пройдите короткий опрос — он анонимный и займет не более 10 минут вашего времени.
Ссылка тут.
👍6❤5
☝️Реальные кадры из жизни команды Go, устраняющей все потребности в Go 2.0, добавляя базовую поддержку обратной и прямой совместимости с использованием переменных окружения и тегов сборки.
🔗 Обратная совместимость, Go 1.21 и Go 2
🔗 Прямая совместимость и управление туллчейном в Go 1.21
🔗 Обратная совместимость, Go 1.21 и Go 2
🔗 Прямая совместимость и управление туллчейном в Go 1.21
😁14❤5👍2
#вопросы_с_собесов
📌В чем разница между очередями, потоками и шаблонами обмена сообщениями pub/sub?
1️⃣Очередь — хранилище, которое обеспечивает размещение и чтение данных в определённом порядке.
2️⃣Потоки и их характерные признаки:
▪️Обработка данных происходит в реальном времени, непрерывно.
▪️Неограниченные события.
▪️Могут быть упорядочены по разделу/теме.
❗️Очереди предназначены для хранения и передачи сообщений между распределенными компонентами, гарантируя, что данные не будут потеряны в процессе, в то время как потоковая передача фокусируется на обработке и аналитике данных в реальном времени.
❗️Очереди подходят для сценариев, в которых основной задачей является надежность, поскольку они обеспечивают гарантированную доставку, сохранение сообщений и подтверждения потребителя.
❗️Потоковая передача хороша в ситуациях, когда критически важны анализ и обработка данных в реальном времени, поскольку она обеспечивает передачу данных с малой задержкой и позволяет анализировать данные в нескольких временных окнах.
3️⃣Шаблоны обмена сообщениями pub/sub
Модель «издатель-подписчик» состоит из 4-х ключевых компонентов:
▪️Сообщение — коммуникационные данные, передаваемые от отправителя к получателю
▪️Тема. Каждое сообщение имеет тему, связанную с ним.
▪️Абонент — получатель сообщения. Подписчики должны подписаться на интересующие их темы.
▪️Издатель — компонент, который отправляет сообщения.
❗️В современной облачной архитектуре приложения разделяют на небольшие независимые стандартные блоки-сервисы. Обмен сообщениями по модели pub/sub обеспечивает мгновенные уведомления о событиях для этих распределенных систем. Она поддерживает масштабируемую и надежную связь между независимыми программными модулями.
📌В чем разница между очередями, потоками и шаблонами обмена сообщениями pub/sub?
1️⃣Очередь — хранилище, которое обеспечивает размещение и чтение данных в определённом порядке.
2️⃣Потоки и их характерные признаки:
▪️Обработка данных происходит в реальном времени, непрерывно.
▪️Неограниченные события.
▪️Могут быть упорядочены по разделу/теме.
❗️Очереди предназначены для хранения и передачи сообщений между распределенными компонентами, гарантируя, что данные не будут потеряны в процессе, в то время как потоковая передача фокусируется на обработке и аналитике данных в реальном времени.
❗️Очереди подходят для сценариев, в которых основной задачей является надежность, поскольку они обеспечивают гарантированную доставку, сохранение сообщений и подтверждения потребителя.
❗️Потоковая передача хороша в ситуациях, когда критически важны анализ и обработка данных в реальном времени, поскольку она обеспечивает передачу данных с малой задержкой и позволяет анализировать данные в нескольких временных окнах.
3️⃣Шаблоны обмена сообщениями pub/sub
Модель «издатель-подписчик» состоит из 4-х ключевых компонентов:
▪️Сообщение — коммуникационные данные, передаваемые от отправителя к получателю
▪️Тема. Каждое сообщение имеет тему, связанную с ним.
▪️Абонент — получатель сообщения. Подписчики должны подписаться на интересующие их темы.
▪️Издатель — компонент, который отправляет сообщения.
❗️В современной облачной архитектуре приложения разделяют на небольшие независимые стандартные блоки-сервисы. Обмен сообщениями по модели pub/sub обеспечивает мгновенные уведомления о событиях для этих распределенных систем. Она поддерживает масштабируемую и надежную связь между независимыми программными модулями.
❤10🥱10👍6🔥3
Дмитрий Королёв, бэкенд-разработчик в Авито, рассказывает об устройстве сборщика мусора в Go и деталях его работы, чтобы вы могли писать более производительные приложения и лучше понимать внутреннее устройство языка.
🔗 Читать
🔗 Читать
🔥18👍2🥱1
Повышение производительности: подробное руководство по кэшированию в Go с Redis
В предыдущем материале рассматривались самые базовые аспекты работы с Redis в Go. В этой статье речь идет о кэшировании в контексте Go и Redis👇
🔗 Читать
В предыдущем материале рассматривались самые базовые аспекты работы с Redis в Go. В этой статье речь идет о кэшировании в контексте Go и Redis
🔗 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Библиотека Go разработчика | Golang
Начало работы с Redis в Go: пошаговое руководство по установке, командам и настройке.
🔗 Читать
🔗 Читать
👍9
golang.pdf
80.9 KB
#холивар
Вы посоветовали бы данную дорожную карту для начинающих разработчиков или тех, кто переходит с другого языка на Go? Если да, есть ли какие-то важные аспекты, которых в ней не хватает? Может быть в ней есть то, что вообще неуместно?
Вы посоветовали бы данную дорожную карту для начинающих разработчиков или тех, кто переходит с другого языка на Go? Если да, есть ли какие-то важные аспекты, которых в ней не хватает? Может быть в ней есть то, что вообще неуместно?
🥱5👍2🤩1
Артём Чаадаев, Go-разработчик из команды ассортимента размещения в Туту, погружается в различные аспекты конкурентной разработки:
🔸Как деактивировать большое количество пользователей в стороннем API (обычно это бывает после применения бизнес-логики) 🔸Как использовать два паттерна конкурентной разработки на Go: семафор (Semaphore) и пул обработчиков (Worker pool)
🔸Какие плюсы/минусы обоих подходов
🔸Как деактивировать большое количество пользователей в стороннем API (обычно это бывает после применения бизнес-логики) 🔸Как использовать два паттерна конкурентной разработки на Go: семафор (Semaphore) и пул обработчиков (Worker pool)
🔸Какие плюсы/минусы обоих подходов
Хабр
Учимся применять Semaphore и Worker Pool на Go
Учимся применять Semaphore и Worker Pool на Go Привет, Хабр! Я Артём Чаадаев из команды ассортимента размещения в Туту и занимаюсь разработкой на языке Go. Большое количество статей посвящено простоте...
👍11🔥5❤1
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.
🤩Если любите подобные визуальные руководства, обратите внимание на другие разделы architecture notes.
🔥15❤3
В Go 1.21 пакет slog был добавлен в стандартную библиотеку. Он выводит логирование на новый уровень, включая такие функции, как структурированное логирование, кастомизация вывода и многое другое! Самое время разобраться подробнее👇
🔗 Читать
🔗 Читать
pkg.go.dev
slog package - log/slog - Go Packages
Package slog provides structured logging, in which log records include a message, a severity level, and various other attributes expressed as key-value pairs.
👍23🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Как реализовать автозаполнение аргументов в CLI-проекте на Go с использованием Cobra: пошаговый гайд на примере простого проекта.
🔗 Читать
🔗 Читать
👍14
#tip #go #beginner
Использование ссылки на переменную итератора цикла
В Go переменная итератора цикла — это единственная переменная, которая принимает разные значения на каждой итерации цикла. Это очень эффективно, но может привести к непреднамеренному поведению при неправильном использовании. Смотрите пример слева, который выдаст неожиданные результаты:
На каждой итерации мы добавляем адрес
Новый вывод программы — это то, что ожидалось:
Строка
Хотя этот пример может показаться несколько очевидным, такое же неожиданное поведение может быть более скрытым в некоторых других случаях. Например, переменная цикла может быть массивом, а ссылка может быть срезом (пример справа). В результате получаем:
Использование ссылки на переменную итератора цикла
В 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 — тут решаем задачи, проходим тесты и изучаем код
Готовимся к собеседованиям по Go и проверяем себя на практических задачках: «Библиотека программиста» запустила два канала специально для Go-разработчиков и тех, кто хочет ими стать👨🏫
Подписывайтесь:
👉Библиотека собеса по Go — тут мы готовимся к интервью
👉Библиотека задач по Go — тут решаем задачи, проходим тесты и изучаем код
👍12😁2
Обзор изменений и нововведений в Go 1.21: взгляд команды МТС
«Зачем читать подобные обзоры» — спросите вы. В первую очередь за тем, что каждый разработчик видит ту или иную фичу языка по-своему, под своим углом. Кто знает, может именно этот обзор покажется вам наиболее интересным. Поэтому читаем и закрепляем знания о новой версии языка.
«Зачем читать подобные обзоры» — спросите вы. В первую очередь за тем, что каждый разработчик видит ту или иную фичу языка по-своему, под своим углом. Кто знает, может именно этот обзор покажется вам наиболее интересным. Поэтому читаем и закрепляем знания о новой версии языка.
🔥9❤2👍2🥱1