Повышение производительности: подробное руководство по кэшированию в 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
Несколько недель назад команда Dolt объявила о первой реализации полнотекстовых индексов. Dolt использует специальный SQL-движок, который позволяет управлять версиями базы данных и при этом должен быть высокопроизводительным.
Это также означает, что для полной замены MySQL 8.0 команда Dolt должна реализовать все функции MySQL в движке Dolt. Ну что ж, глобальная цель поставлена, перейдем к реализации полнотекстовых индексов в SQL-движке👇
🔗 Читать
Это также означает, что для полной замены MySQL 8.0 команда Dolt должна реализовать все функции MySQL в движке Dolt. Ну что ж, глобальная цель поставлена, перейдем к реализации полнотекстовых индексов в SQL-движке👇
🔗 Читать
Dolthub
Announcing Full-Text Indexes
Blog for DoltHub, a website hosting databases made with Dolt, an open-source version-controlled SQL database with Git-like semantics.
👍6❤3🔥3
#linux #tips
Вместо того, чтобы использовать команду cat для просмотра файлов с исходным кодом, просто используйтеVim команду batcat (bat). Это современная версия cat, которая включает в себя подсветку синтаксиса для многих языков программирования и поддержку Git из коробки.
>
>
Вместо того, чтобы использовать команду cat для просмотра файлов с исходным кодом, просто используйте
>
alias cat='batcat --style plain'
>
alias less='batcat --paging=always --style plain'
❤21👍16🔥1
Подробный гайд по разработке масштабируемых микросервисов с использованием Go и RabbitMQ
Автор начинает с фундаментльных основ, затем углубляется в особенности использования Go в сочетании с RabbitMQ.
Понимая основные принципы масштабируемых систем, разработчики и архитекторы могут эффективнее использовать эти инструменты и получить от них максимальную пользу.
🔗 Читать
Автор начинает с фундаментльных основ, затем углубляется в особенности использования Go в сочетании с RabbitMQ.
Понимая основные принципы масштабируемых систем, разработчики и архитекторы могут эффективнее использовать эти инструменты и получить от них максимальную пользу.
🔗 Читать
👍21❤6
🔍Насколько легко «войти в айти»?
IT — перспективная отрасль с высокими зарплатами и огромной конкуренцией. Собираем ваши истории: расскажите, как вам удалось сменить профессию (или сразу найти себя), какие шаги вы для этого предприняли и с какими сложностями пришлось столкнуться.
👉Пройдите наш 10-минутный опрос по ссылке.
IT — перспективная отрасль с высокими зарплатами и огромной конкуренцией. Собираем ваши истории: расскажите, как вам удалось сменить профессию (или сразу найти себя), какие шаги вы для этого предприняли и с какими сложностями пришлось столкнуться.
👉Пройдите наш 10-минутный опрос по ссылке.
❤5🥱2👍1
📌 Собрали для вас небольшую подборку открытых собесов на различные позиции Go-разработчика:
📺 Старшего Go-разработчика из Тинькофф от Владимира Балуна
📺 Go-разработчика из Ozon от Владимира Балуна
📺 На позицию middle Go-разработчика от Сергея Парамошкина
📺 На позицию middle Go-разработчика от Александра Сахарова
📺 Старшего Go-разработчика из Тинькофф от Владимира Балуна
📺 Go-разработчика из Ozon от Владимира Балуна
📺 На позицию middle Go-разработчика от Сергея Парамошкина
📺 На позицию middle Go-разработчика от Александра Сахарова
👍11❤6
☝️📺 Какой сетап у вас дома/на работе (можно выбрать два варианта)?
Anonymous Poll
39%
1
14%
2
43%
3
7%
4
6%
5
2%
6
5%
Другой (напишу в комментарии)
❤7👍7🥱3
Проектирование отказоустойчивых микросервисов в Go
Если ваша команда, как и команда автора статьи, реализует микросервисную архитектуру, она устроена так, что один микросервис вызывает другой. В случае сбоя в одном сервисе все вышестоящие сервисы получают одну и ту же ошибку. Как не допустить, чтобы проблемы в одном сервисе затрагивали другие?
Можно применять определенные шаблоны, которые помогут спроектировать и реализовать отказоустойчивые микросервисы и ограничить влияние сбоев и задержек. О них и пойдет речь в статье. И помните👇
«Всегда проектируйте вещи, рассматривая их в следующем более широком контексте: стул в комнате, комната в доме, дом в окружении, среда в плане города» (Элиэль Сааринен)
Если ваша команда, как и команда автора статьи, реализует микросервисную архитектуру, она устроена так, что один микросервис вызывает другой. В случае сбоя в одном сервисе все вышестоящие сервисы получают одну и ту же ошибку. Как не допустить, чтобы проблемы в одном сервисе затрагивали другие?
Можно применять определенные шаблоны, которые помогут спроектировать и реализовать отказоустойчивые микросервисы и ограничить влияние сбоев и задержек. О них и пойдет речь в статье. И помните👇
«Всегда проектируйте вещи, рассматривая их в следующем более широком контексте: стул в комнате, комната в доме, дом в окружении, среда в плане города» (Элиэль Сааринен)
❤6👍6