Please open Telegram to view this post
VIEW IN TELEGRAM
😁13👍2
♦️ Гадание на мемах
Давайте заглянем в будущее и предскажем, что нас ждет на следующей неделе.
Выберите любой мем и отправляйте в комментарии👇
Все мемы предоставлены нашим каналом с мемами➡️ @itmemlib
🐸 Библиотека Go-разработчика #междусобойчик
Давайте заглянем в будущее и предскажем, что нас ждет на следующей неделе.
Выберите любой мем и отправляйте в комментарии👇
Все мемы предоставлены нашим каналом с мемами
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3😁3👾3👍2
Обзор материалов, которые могли остаться в тени, но имеют значение.
— Реально быстрый обзор нового GC
Вы дольше читаете эту подводку, чем автор видео делает обзор на новый сборщик мусора в го.
— Свежий выпуск Cup o' Go
В новом выпуске подкаста как всегда ведущие ищут и обсуждают новости из мира разработки.
— Go 1.25rc1
Команда Go объявила, что первый кандидат на релиз готов к растерзанию разработчиками. Просят проверить и провести тестирование, в том числе с нагрузками.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
Forwarded from Библиотека задач по Go | тесты, код, задания
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по Go | тесты, код, задания
Anonymous Quiz
50%
false false false false
20%
true true false false
10%
false false true true
20%
true true true true
🤔10
Go-разработчик — от 300 000 ₽, гибрид (Москва/Екатеринбург)
Junior Golang Developer — до 170 000 ₽, удаленно (Москва)
Tech Lead Golang — до 450 000 ₽, удаленно (Ижевск)
Старший Go-разработчик — от 285 000 ₽, удаленно (Москва)
Junior Golang Developer — от 1 700 $, удалённо.
Бустер — удалённо из дома.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👏1
🛠 Как использовать кафку в Go
Представьте, что у вас в руках инструмент, который позволяет строить крутой обмен сообщениями между сервисами. Представили? Давайте попробуем его применить.
1. Установка
Для начала проверьте, что у вас установлен Go версии 1.15 и выше и введите команду:
Это подтянет для вас либу kafka-go после чего её можно будет использовать в проекте:
2. Используем низкоуровневый коннект
Когда нужно отправить сообщение:
Когда сообщение нужно принять:
3. Используем высокоуровневый Reader
Reader сам следит за смещениями, повторными подключениями и балансировкой в группе:
Если нужно ручное управление, замените
4. Просто пишем с высокоуровневым Writer
Writer сам позаботится о повторных попытках, балансировке и «гладком» завершении:
Бонус: советы по использованию
— всегда
— ловите
— подключайте Prometheus/OpenTelemetry — мониторьте
Запустите пару консьюмеров и продюсеров — и почувствуйте, как работают Kafka и Go.
🐸 Библиотека 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.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍5🥱4🔥2
🦫 Самоучитель по Go для начинающих. Часть 5
Продолжаем освежать в памяти основы Go. На этот раз карточки про условия и циклы.
➡️ Самоучитель часть 5
🐸 Библиотека Go-разработчика #буст
Продолжаем освежать в памяти основы Go. На этот раз карточки про условия и циклы.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱5👍3❤1🔥1
Когда рост объёмов данных начинает давить на реляционную СУБД, каждая секунда простоя превращается в потерянные возможности и недовольных пользователей.
Представьте, что вы безболезненно переводите свой монолит на гибкую NoSQL-архитектуру — и при этом сохраняете доступность на пике нагрузки.
Для этого мы подготовили вам промпт:
You are a highly experienced Golang developer specializing in database migrations, particularly from SQL to NoSQL databases. You possess a deep understanding of database architecture, data modeling, and performance optimization. Your goal is to analyze a given SQL database schema and propose a robust and efficient migration strategy to a NoSQL database, considering data integrity, scalability, and maintainability.
Here is the format you will use to reason through the migration and come up with a fantastic recommendation:
---
## SQL Database Schema
$sql_schema_description (Provide a detailed description of the SQL schema, including tables, columns, data types, relationships, and indexes.)
## NoSQL Database Choice and Justification
$nosql_database (Specify the chosen NoSQL database type (e.g., MongoDB, Cassandra, DynamoDB) and provide a detailed justification for its selection based on the SQL schema and anticipated application needs. Consider factors like data model flexibility, scalability requirements, query patterns, and operational overhead.)
## Data Modeling Strategy for NoSQL
$data_modeling_strategy (Describe how the SQL data will be transformed and modeled within the chosen NoSQL database. Include specific examples of how tables and relationships will be represented in the NoSQL data model. Address potential denormalization strategies and trade-offs.)
## Migration Steps and Considerations
$migration_steps (Outline a step-by-step migration plan, including data extraction, transformation, and loading (ETL) processes. Address data validation and integrity checks during and after the migration. Consider potential downtime and rollback strategies.)
## Code Snippets (Golang)
$golang_code_snippets (Provide example Golang code snippets demonstrating how to interact with the NoSQL database, including data insertion, querying, and updating. Use a popular Golang NoSQL driver.)
## Performance Optimization Strategies
$performance_optimization (Describe strategies for optimizing performance in the NoSQL database, such as indexing, query optimization, and data partitioning. Consider the specific characteristics of the chosen NoSQL database.)
## Potential Challenges and Mitigation Strategies
$challenges_and_mitigation (Identify potential challenges during the migration process, such as data inconsistencies, schema evolution, and performance bottlenecks. Propose mitigation strategies for each challenge.)
---
Here is the challenge you are tasked with: [ВСТАВЬТЕ СВОЮ СХЕМУ БД]
💬 Были ли у вас случаи переезда с SQL на noSQL или в обратную сторону?
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚5🔥3👍2
🔥 Последняя неделя перед стартом курса по AI-агентам
Старт курса уже 5го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место
На курсе:
— разложим LLM по косточкам: токенизация, SFT, PEFT, инференс
— соберём RAG и научимся оценивать его адекватно
— построим настоящую мультиагентную систему — архитектуру, которая умеет расти
— разберём CoPilot, сломаем через prompt injection (спасибо Максу)
— и наконец, посмотрим, как это работает в MCP и реальных кейсах
📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями
И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API»
👉 Курс здесь
Старт курса уже 5го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место
На курсе:
— разложим LLM по косточкам: токенизация, SFT, PEFT, инференс
— соберём RAG и научимся оценивать его адекватно
— построим настоящую мультиагентную систему — архитектуру, которая умеет расти
— разберём CoPilot, сломаем через prompt injection (спасибо Максу)
— и наконец, посмотрим, как это работает в MCP и реальных кейсах
📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями
И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API»
👉 Курс здесь
❤1