Telegram Web Link
💡 Чего мы ждём от обновлений

Go активно развивается и курс этого развития зависит от сообщества. Давайте поделимся какие фичи ждём в следующем обновлении.

Начнёт наш админ:
Я бы хотел полноценные енамки, изначально с другого языка пришёл и привык к свитчам с енамами, это же так удобно! А ещё очень не хватает тернарников. Очень много их использовал, а тут это даже мем, что их нет.


🤩 Понравился пост? С вам буст, а с нас больше топового контента!

🐸Библиотека Go-разработчика #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍4
👨‍💻 Хоткеи для мультикурсора в VS Code

Мультикурсор это имба для работы с однотипными изменениями в коде. Вместо одинаковых действий выделяете все необходимые места и изменяете всё разом.

Сделали для вас небольшую шпаргалку с хоткеями для VS Code.

🐸Библиотека Go-разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
10🥱4
🛠 Основы работы с переменными в Go

Go — мощный и гибкий язык, но для того, чтобы работать с ним эффективно, важно понимать базовые концепты. В этих карточках мы разjобрали переменные, типы данных и операторы.

➡️ Приоткрыть тайны Go

🐸Библиотека Go-разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🥱3😢1
♦️ Гадание на мемах

Давайте заглянем в будущее и предскажем, что нас ждет на следующей неделе.

Выберите любой мем и отправляйте в комментарии👇

Все мемы предоставлены нашим каналом с мемами ➡️ @itmemlib

🐸Библиотека Go-разработчика #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
3😁3👍2👾2
📕 Что скрыто от внимания

Обзор материалов, которые могли остаться в тени, но имеют значение.

Реально быстрый обзор нового GC

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

Свежий выпуск Cup o' Go

В новом выпуске подкаста как всегда ведущие ищут и обсуждают новости из мира разработки.

Go 1.25rc1

Команда Go объявила, что первый кандидат на релиз готов к растерзанию разработчиками. Просят проверить и провести тестирование, в том числе с нагрузками.

🐸Библиотека Go-разработчика #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
😳 Топ-вакансий для Go-разработчиков за неделю

Go-разработчик — от 300 000 ₽, гибрид (Москва/Екатеринбург)

Junior Golang Developer — до 170 000 ₽, удаленно (Москва)

Tech Lead Golang — до 450 000 ₽, удаленно (Ижевск)

Старший Go-разработчик — от 285 000 ₽, удаленно (Москва)

Junior Golang Developer — от 1 700 $, удалённо.

Бустер — удалённо из дома.

➡️ Еще больше топовых вакансий — в нашем канале Go jobs
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🛠 Как использовать кафку в Go

Представьте, что у вас в руках инструмент, который позволяет строить крутой обмен сообщениями между сервисами. Представили? Давайте попробуем его применить.

1. Установка

Для начала проверьте, что у вас установлен Go версии 1.15 и выше и введите команду:
go get github.com/segmentio/kafka-go


Это подтянет для вас либу kafka-go после чего её можно будет использовать в проекте:
import "github.com/segmentio/kafka-go"


2. Используем низкоуровневый коннект

Когда нужно отправить сообщение:
ctx := context.Background()
conn, err := kafka.DialLeader(ctx, "tcp", "localhost:9092", "my-topic", 0)
if err != nil {
log.Fatal(err)
}
defer conn.Close()

// Отправляем два сообщения подряд
conn.SetWriteDeadline(time.Now().Add(10 * time.Second))
_, err = conn.WriteMessages(
kafka.Message{Value: []byte("Первое сообщение")},
kafka.Message{Value: []byte("Второе сообщение")},
)
if err != nil {
log.Fatal(err)
}


Когда сообщение нужно принять:
batch := conn.ReadBatch(10e3, 1e6)
defer batch.Close()

buf := make([]byte, 10e3)
for {
n, err := batch.Read(buf)
if err != nil {
break
}
fmt.Println("→", string(buf[:n]))
}


3. Используем высокоуровневый Reader

Reader сам следит за смещениями, повторными подключениями и балансировкой в группе:
r := kafka.NewReader(kafka.ReaderConfig{
Brokers: []string{"localhost:9092", "localhost:9093"},
GroupID: "example-group",
Topic: "events",
MinBytes: 10e3,
MaxBytes: 10e6,
CommitInterval: time.Second,
})
defer r.Close()

for {
m, err := r.ReadMessage(context.Background())
if err != nil {
log.Println("Завершение чтения:", err)
break
}
fmt.Printf("Получено: ключ=%s, значение=%s, смещение=%d\n", m.Key, m.Value, m.Offset)
}


Если нужно ручное управление, замените ReadMessage на FetchMessage + CommitMessages.

4. Просто пишем с высокоуровневым Writer

Writer сам позаботится о повторных попытках, балансировке и «гладком» завершении:
w := kafka.NewWriter(kafka.WriterConfig{
Brokers: []string{"localhost:9092", "localhost:9093"},
Topic: "events",
Balancer: &kafka.LeastBytes{},
})
defer w.Close()

messages := []kafka.Message{
{Key: []byte("order123"), Value: []byte(`{"status":"created"}`)},
{Key: []byte("order124"), Value: []byte(`{"status":"paid"}`)},
}
if err := w.WriteMessages(context.Background(), messages...); err != nil {
log.Fatal("Ошибка при записи:", err)
}


Бонус: советы по использованию

— всегда context.WithTimeout или WithCancel — это ваша страховка от «зависаний».

— ловите SIGINT/SIGTERM и аккуратно закрывайте Reader и Writer.

— подключайте Prometheus/OpenTelemetry — мониторьте throughput, задержки и ошибки.

Запустите пару консьюмеров и продюсеров — и почувствуйте, как работают Kafka и Go.

🐸Библиотека Go-разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4🥱3🔥2
2025/07/08 21:30:29
Back to Top
HTML Embed Code: