Golang Books
16.7K subscribers
283 photos
3 videos
334 files
271 links
Библиотека Golang разработчика

По всем вопросам- @haarrp

@Golang_google - Golang

@golangl - golang chat

@GolangJobsit - golang channel jobs

@golangtests golang tests

@itchannels_telegram - 🔥лучшие ит-каналы

№ 5032829002
Download Telegram
🧑‍💻 Хотите прокачать знания Go?
Для вас — новый бесплатный курс Академии Selectel

После изучения вы сможете:
▪️запускать fuzzing-тесты,
▪️писать собственный REST API,
▪️разрабатывать gRPC-приложения,
▪️подключать Go к Apache Kafka,
▪️тестировать Kubernetes с помощью Go.

А еще получите подборку дополнительных материалов — книг, подкастов и блогов, которые позволят лучше разобраться в теме.

Начните обучение прямо сейчас:
https://slc.tl/ovswp

Реклама. АО «Селектел», ИНН 7810962785, ERID: 2VtzqwTYVtW
🔥4
Forwarded from Golang
🧠 CasCache — CAS-безопасный кэш для Go с валидацией чтения и «bulk»-наборов

Что это
- Кэш «как CAS»: записи защищены поколениями (generation). Запись проходит только если поколение ключа не изменилось.
- Singles: никогда не вернёт «протухшее» значение; битые/чужого типа записи самовосстанавливаются (самоочистка).
- Bulk: кэширует набор ключей; при чтении каждый элемент сверяется с актуальным поколением — если хоть один устарел, весь набор отбрасывается и читается по одиночке.
- Подключаемые провайдеры значений: Ristretto / BigCache / Redis.
- Подключаемые кодеки: JSON/Msgpack/CBOR/Proto (можно навесить компрессию/шифрование).
- Distributed GenStore (опционально): хранит поколения в Redis для корректности между репликами и переживания рестартов.

Зачем это нужно
- Без «грязных» чтений при гонках читателя/писателя.
- Нулевая «write amplification» при чтении — валидация только на чтении.
- Гибкий выбор провайдера/кодека, можно начать локально и дорастить до кластера (с общим GenStore).

Быстрый старт

import (
"context"
"time"

"github.com/unkn0wn-root/cascache"
rp "github.com/unkn0wn-root/cascache/provider/ristretto"
)

type User struct{ ID, Name string }

func buildCache() cascache.CAS[User] {
rist, _ := rp.New(rp.Config{
NumCounters: 1_000_000,
MaxCost: 64 << 20,
BufferItems: 64,
Metrics: false,
})
cc, _ := cascache.New[User](cascache.Options[User]{
Namespace: "user",
Provider: rist,
Codec: cascache.JSONCodec[User]{},
DefaultTTL: 5 * time.Minute,
BulkTTL: 5 * time.Minute,
// GenStore: nil → локально; для кластера подключите Redis GenStore.
})
return cc
}

func readUser(ctx context.Context, c cascache.CAS[User], id string) (User, bool) {
if u, ok, _ := c.Get(ctx, id); ok { return u, true }
obs := c.SnapshotGen(id) // снять поколение ДО чтения БД
u := loadFromDB(id)
_ = c.SetWithGen(ctx, id, u, obs, 0) // запись пройдёт только если поколение не изменилось
return u, true
}


📌Репозиторий: github.com/unkn0wn-root/cascache
👍5🔥2
Топ GitHub: тысячи книг и курсов по программированию на множестве языков.

Здесь есть:
— Есть материалы по абсолютно всем темам: от ML и алгоритмов до Go, C#, баз данных и даже no-code;
— Англоязычная база, сравнимая с отдельным университетом;
— Мощный сегмент на русском языке;
— Регулярные обновления;
Бесплатные курсы, чтобы сразу закреплять практикой.

Этот репозиторий давно стал культовым: сотни тысяч звёзд, почти 3000 контрибьюторов, поддержка некоммерческой Free Ebook Foundation.

https://github.com/EbookFoundation/free-programming-books
🔥6👍3🥰1
📕 Книга "Build and Orchestrator in Go"

Автор
: Tim Boring
Год издания: 2024
Язык: Английский

Описание:
Системы оркестрации, такие как Kubernetes, могут показаться "черным ящиком": вы размещаете их в облаке, и оно волшебным образом обрабатывает все, что вам нужно. Это может показаться идеальным решением, пока что—то не пойдет не так, и вы не будете знать, как найти и устранить свои проблемы. Создание оркестратора на Go (с нуля) раскрывает внутреннюю работу фреймворков оркестровки, помогая вам создавать свой собственный.

🟠 Книга
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥9🥰1😁1
VK JT = Java + Go!

16 сентября VK приглашает Go‑ и Java‑разработчиков на VK JT Meetup в Санкт-Петербурге.

В программе:
— Максимально практические доклады от техлидов VK о трансформации ВКонтакте, переходе части сервисов на Go и об устройстве и развитии единой видеоплатформы VK
— Командные бэкенд-баттлы под менторством опытных разработчиков VK — кейсы, вдохновлённые реальной архитектурой VK
Задавайте вопросы экспертам, ищите лучшее командное решение кейса и оставайтесь на афтепати: нетворкинг, фуршет, свободное общение с коллегами.
Только офлайн, в офисе VK на Мойке.

🎟 Участие бесплатное, почитать подробнее и зарегистрироваться вы сможете на сайте
1
Как на Go создать Validating Admission Controller для Kubernetes.

Это веб‑hook, который проверяет, что в каждом контейнере деплоя указаны memory.requests и memory.limits. Если хоть одно из них отсутствует — создание ресурса блокируется.
Автор подробно проходит через архитектуру (mutating → validating), код на Go для обработки AdmissionReview, настройку TLS, манифесты для Deployment и Webhook-а, и тестирование в кластере.

👉 Читать
👍31