37.2K subscribers
1.51K photos
36 videos
5 files
1.66K links
加入频道
🧑‍💻 Godo — библиотека, предоставляющая простой и эффективный способ взаимодействия с DigitalOcean API v2 на языке Go. Она покрывает основные методы управления дроплетами, реестрами и другими сервисами DO, поддерживает пагинацию, автоматические повторы запросов и экспоненциальный бекофф.

Использование инструмента интуитивно понятно: создаёте клиент с токеном и работаете с API через готовые методы. Например, создание дроплета или получение списка репозиториев реализовано буквально в несколько строк.

🤖 GitHub

@golang_google
😎Сразу пять команд Авито в поиске разработчиков:

1️⃣ Backend-разработчик в команду PaaS

Вы будете частью большой команды, которая занимается разработкой PaaS платформы: механикой сборки, тестированием и доставкой сервисов в разные окружения, а также runtime механикой по управлению сервисами в k8s кластерах.

2️⃣ Backend-разработчик в команду Monitoring/Observability

Каждый из 4000+ сервисов Авито журналирует свою работу, а команда мониторинга сохраняет и обрабатывает этот огромный поток логов, метрик, находя за секунды из гигабайтов данных сломанный сервис/сценарий и сообщая релевантной команде.

3️⃣ Go-разработчик в команду GR-инструментов

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

4️⃣ Go-разработчик в команду Performance

Команда Performance отвечает за скорость работы сервиса на всех платформах. Вам предстоит создавать инструменты тестирования, анализа и контроля за производительностью, помогать продуктовым командам делать Авито быстрым и надёжным, развивая культуру производительности в компании.

5️⃣ Go-разработчик в команду IDP

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

А ещё вас ждёт:

- прозрачная система премий и достойная зарплата, размер которой обсуждается на собеседовании
- возможность реализовать свои идеи в проекте с многомиллионной аудиторией
- талантливая команда, готовая поддержать ваши инициативы
- мощное железо, дополнительные мониторы и всё, что нужно для продуктивной работы
- личный бюджет на обучение, который можно тратить на книги, курсы и конференции
- забота о здоровье: с первого дня у вас будет ДМС со стоматологией, в офисе принимают терапевт и массажист
- удалённая работа и комфортный офис в двух минутах от метро «Белорусская»: панорамный вид на центр города, места для уединённой работы и зоны отдыха.

Откликайтесь по ссылкам и присоединяйтесь к одной из команд!
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Machinelearning
This media is not supported in your browser
VIEW IN TELEGRAM
📌Как Gemini превращает изучение языков в персонализированный опыт: обзор 3 экспериментов.

Представьте, что учите язык не по учебникам, а через ситуации, в которых оказываетесь каждый день. Именно эту идею воплотила команда Google в проекте Little Language Lessons— трех экспериментах на базе Gemini API, которые делают обучение живым и контекстным.

Первый эксперимент, Tiny Lesson, решает проблему «как сказать это сейчас?». Вы описываете ситуацию — например, «потерял паспорт» — и получаете словарь и фразы в формате JSON. Всё благодаря промптам, где Gemini генерирует структурированные данные: массив терминов с транскрипцией и переводом, а также советы по грамматике.

Например, если целевой язык — японский, модель сама определит, нужна ли транскрипция ромадзи, и подготовит материал за 2 API-запроса. Это не просто список слов, а готовый микрокурс под конкретный сценарий.

Второй, Slang Hang, убирает «учебникоговорение». Тут Gemini выступает как сценарист: создаёт диалоги на целевом языке с культурными нюансами и сленгом. Все генерируется одним запросом — от контекста сцены до реплик с пояснениями. Пример: диалог продавца и туриста может включать неформальные выражения, которые не найдешь в стандартных учебниках.

Правда, иногда модель ошибается или придумывает выражения, так что без проверки носителем не обойтись. Но сам подход — дать пользователю «уши» в реальных разговорах выглядит перспективно, особенно с интеграцией Cloud Translation для мгновенного перевода.

Третий, визуальный эксперимент — Word Cam. Наводите камеру на объект, и Gemini не только определяет его (bounding box), но и предлагает слова вроде «подоконник» или «жалюзи». Детекция работает через Gemini Vision, а дополнительные дескрипторы (цвет, материал, примеры употребления) подтягиваются отдельным запросом. Для изучения бытовой лексики почти идеально, хотя точность сильно зависит от качества снимка.

Во всех экспериментах задействован Text-to-Speech — озвучка слов и фраз. Но есть нюанс: для редких языков голоса зачастую звучат неестественно или не совпадают с диалектом. Например, выберете мексиканский испанский, а синтезатор выдаст акцент из Мадрида. Разработчики честно признают: это ограничение текущих API, и над ним еще работать.

Little Language Lessons — начало переосмысления процесса обучения языкам. Проекту пока не хватает тонкой настройки под лингвистическую специфику (идиомы или региональные диалекты), но основа уже заложена.

🟡Статья


@ai_machinelearning_big_data

#AI #ML #LLM #Gemini
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 GoPilot

GoPilot — это библиотека для Go, которая позволяет вызывать ваши функции с помощью естественного языка.

⚡️ С её помощью можно:
- Анализировать запросы на естественном языке
- Автоматически выбирать нужную функцию
- Преобразовывать динамические параметры в строго типизированные структуры
- Проверять обязательные поля и валидировать входные данные
- Управлять порядком выполнения и ответами

## Ключевые особенности

- Natural Language Processing
Обработка запросов пользователя без ручного парсинга текста.
- Automatic Function Routing
GoPilot сам сопоставляет запрос с зарегистрированной функцией.
- Type-Safe Parameter Mapping
Динамические вводимые данные конвертируются в структуры Go.
- Built-in Validation
Генерируемая схема параметров учитывает теги required, description и др.
- Easy Integration
Простое API: регистрируете функции и задаёте системный промпт.
- Flexible Response Handling
Поддержка разных форматов ответа и «режимов» выполнения.

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


import (
"context"
"github.com/SadikSunbul/gopilot"
"github.com/SadikSunbul/gopilot/clients"
"github.com/SadikSunbul/gopilot/pkg/generator"
)

type WeatherParams struct {
City string `json:"city" description:"City name" required:"true"`
}
type WeatherResponse struct {
City string `json:"city"`
Temp int `json:"temp"`
Condition string `json:"condition"`
}

func GetWeather(p WeatherParams) (WeatherResponse, error) {
return WeatherResponse{City: p.City, Temp: 25, Condition: "sunny"}, nil
}

func main() {
client, _ := clients.NewGeminiClient(context.Background(), "API_KEY", "gemini-2.0-flash")
gp, _ := gopilot.NewGopilot(client)

weatherFn := &gopilot.Function[WeatherParams, WeatherResponse]{
Name: "weather-agent",
Description: "Get weather by city",
Parameters: generator.GenerateParameterSchema(WeatherParams{}),
Execute: GetWeather,
}
gp.FunctionRegister(weatherFn)
gp.SetSystemPrompt(nil)

// Генерация + выполнение за один вызов
result, _ := gp.GenerateAndExecute("Какая погода в Москве?")
fmt.Printf("%+v\n", result)
}


Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Дифференциальное покрытие для быстрой отладки

«Дифференциальное покрытие» — это приём, который помогает быстро находить проблемные участки в коде, сравнивая покрытие не‐упавших и упавших тестов.

📌 Зачем это нужно
- В больших кодовых базах вручную отслеживать, где именно тест упал — долго и сложно.
- Сравнивая два профиля покрытия (успешного и провального), можно автоматически выделить только те участки, которые запустились при падении теста и не запускались ранее.

🚀 Как применить на Go-проекте

1. Собираем профиль «успешного» запуска (пропускаем проблемный тест):

go test -coverprofile=c1.prof -skip='TestAddSub$'


Выделяем строки, уникальные для упавшего теста:


(head -1 c1.prof; diff c[12].prof | sed -n 's/^> //p') > c3.prof



head -1 сохраняет шапку профиля

diff… | sed отбирает только новые строки

Открываем результат в браузере:

```bash
go tool cover -html=c3.prof


🔍 Интерпретация отчёта
Зелёным подсвечены участки, которые запустились только в упавшем тесте.

Красным — код, который обычно выполняется, но не был затронут падением теста (может натолкнуть на дополнительные вопросы).

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

Пример из math/big
В примере теста TestAddSub падение происходило из-за пропущенного za.neg = false в ветке else.

Из более чем 15 000 строк кода дифференциальное покрытие сузило поиск до 10 строк — двух из них было достаточно, чтобы диагностировать баг.

⚠️ Ограничения
Если баг зависит от специфичных данных или тест не чувствителен к ошибке, покрытие может не указать на проблемный код.

Тем не менее, в большинстве случаев «дифф-покрытие» даёт мгновенный фокус на действительно важных местах.

Используйте дифференциальное покрытие при отладке любых модулей Go (и не только!) — это дешёвый и высокоэффективный способ быстро найти виновника падения теста.

🔜 Читать статью

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Reload — это библиотека для Go, разработанная для автоматического обновления ассетов веб-сервера, таких как HTML, CSS и JavaScript, без необходимости вручную перезагружать страницу!

🌟 Она отслеживает изменения файлов на сервере и автоматически передаёт обновления в браузер с помощью WebSocket. Это значительно упрощает процесс разработки веб-приложений, особенно для динамических проектов с частыми изменениями интерфейса.

🌟 Библиотека интегрируется с различными фреймворками Go, используя middleware, и поддерживает управление кэшированием через заголовки Cache-Control. Простота настройки делает Reload удобным инструментом для ускорения разработки и тестирования. Она идеально подходит для разработчиков, которые хотят минимизировать рутинные задачи и сосредоточиться на создании функционального и качественного кода.

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
⭐️ Давным-давно в терминале, в далекой-далекой Галактике…

May the 4th be with you: 4 мая — неофициальный день «Звёздных войн».

ASCII Movie - это проект с открытым исходным кодом, который будет «транслировать» оригинальный фильм «Звёздные войны» (эпизод IV) в виде ASCII-графики прямо в ваш терминал, используя протоколы SSH или Telnet.

Сервис реализован на языке Go и снабжён простым текстовым интерфейсом с поддержкой клавиатуры и мыши, а также доступен в виде Docker-контейнера.

sudo docker run --rm -it ghcr.io/gabe565/ascii-movie play

#MayThe4th

http://github.com/gabe565/ascii-movie

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🚥 Вредоносные Go‑модули распространяют DiskRanger

1) Обнаружены несколько вредоносных Go‑модулей, которые загружали malware DiskRanger.
2) Модули маскировались под HTTP и logging библиотеки.
3) Malware активировался через init‑функции и хуки компиляции.
4) Цель — supply chain атака на разработчиков и CI/CD.

⚠️ Рекомендации:
● аудит зависимостей
● избегать auto update неизвестных пакетов
● следить за CVE и делетом модулей

📍 Судя по всему, supply chain‑атаки становятся всё чаще, даже опытные Go‑разработчики попадаются на них.

Статья полностью

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
📝 Как составить резюме, чтобы попасть в Magnificent 7: анализ кейса

Недавно инженер поделился своим резюме, которое помогло ему получить предложение работы от одной из rjvgfybb Magnificent 7 (Apple, Microsoft, Google, Amazon, Meta, Nvidia, Tesla).

Magnificent 7 (в переводе — «Великолепная семёрка») — это современное неофициальное название семи крупнейших и самых влиятельных технологических компаний США, которые лидируют на фондовом рынке, в инновациях и в масштабе бизнеса.

Разберём, что сделало его резюме успешным и чему можно научиться.

📌 Главные выводы из резюме:

1. Фокус на достижениях, а не обязанностях.

Многие кандидаты в резюме просто перечисляют, *что они делали*, например:

- “Разрабатывал API”
- “Поддерживал базу данных”
- “Писал скрипты для автоматизации”

⚠️ Это описывает обязанности, но не показывает ценность или результат работы.

В успешном резюме инженер вместо этого написал, чего он достиг благодаря своей работе:

“Разработал API, который сократил время обработки данных на 30%”
“Оптимизировал запросы к базе данных, уменьшив среднее время ответа с 2 секунд до 0.5 секунд”
“Автоматизировал процесс деплоя, снизив количество ошибок на 15%”

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

💡 Почему это важно?

Big Tech-компании ищут инженеров, которые:

- Умеют оценивать влияние своей работы
- Думают о метриках успеха
- Приносят измеримый результат

Если в резюме нет цифр, улучшений или влияния на процесс — работодатель сам должен это додумывать.
А успешное резюме снимает вопросы и сразу показывает: “Вот что я сделал, вот как я улучшил продукт/процесс/результат.”


2. Лаконичность и компактность.

1 страница
Чёткая структура: “Опыт”, “Навыки”, “Образование”
Без фото, графиков, цветных рамок — чистый текст

3. Цифры везде, где это возможно.

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

4. Поддержка через проекты с открытым кодом.

Инженер приложил ссылку на GitHub с реальными проектами — это усилило доверие к нему Как с специалисту.

5. Навыки — только релевантные вакансии.

В разделе Skills нет «MS Word» или «PowerPoint».
Только языки, технологии, инструменты, которые нужны для позиции (Python, Kubernetes, CI/CD, etc.).

6. Интерншипы и стажировки — это опыт.

Каждый опыт, даже в рамках стажировки, описан с результатами.
Вакансии в топ-компаниях ценят любую практику в реальной команде.

---

🎯 Что важно для Big Tech:

Результаты > Задачи.
Цифры.
1 страница.
GitHub/портфолио.
Релевантные навыки.

---

🔥 Совет:

Ваше резюме — это реклама вас как продукта.
Покажите пользу, которую вы можете принести, а не просто список обязанностей.

➡️ Статья

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Выпущены версии Go 1.24.3 и 1.23.9!

🔒 Безопасность: Включает исправление безопасности для os (CVE-2025-22873).

📢 Анонс: https://groups.google.com/g/golang-announce/c/UZoIkUT367A/m/5WDxKizJAQAJ

📦 Скачать: https://go.dev/dl/#go1.24.3

#golang #release

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Zinx — легковесный фреймворк для игровых серверов на Golang. В отличие от универсальных решений вроде gRPC, этот фреймворк заточен именно под long-lived соединения с поддержкой маршрутизации сообщений и пула воркеров.

Проект изначально создавался как обучающий — его документация буквально ведёт разработчика шаг за шагом от простого эхо-сервера до полноценного кластера. Сейчас Zinx используют в продакшене, включая китайские игровые студии.

🤖 GitHub

@golang_google
🖥 Sponge — это мощный фреймворк для разработки RESTful API, gRPC и микросервисных проектов на Go!

🌟 Sponge позволяет автоматически генерировать серверный код на основе JSON, SQL или Protobuf, что значительно ускоряет процесс разработки. Он поддерживает гибкую настройку через шаблоны, автоматизацию тестирования, создание документации API и развёртывание.

🌟 Фреймворк подходит для создания высокопроизводительных веб- и gRPC-сервисов, включая гибридные API (HTTP + gRPC). Основные возможности включают интеграцию с базами данных (MySQL, PostgreSQL, MongoDB и другие), поддержку пользовательских шаблонов для генерации кода, а также удобный интерфейс для управления процессом разработки.

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Avo — это библиотека и CLI-инструменты, которые позволяют писать ассемблерный код прямо на Go-коде и автоматически генерировать `.s`-файлы + Go-стабы* для вызова этих функций.

Этот необычный инструмент превращает написание высокопроизводительного ассемблера x86 в процесс, похожий на обычную Go-разработку.

Вместо управления регистрами вручную, вы описываете логику на Go-подобном синтаксисе а Avo генерирует оптимизированный ассемблерный код с правильными префиксами.

Проект особенно полезен для криптографии и низкоуровневых оптимизаций.

asm.go:


package main
import . "github.com/mmcloughlin/avo/build"

func main() {
TEXT("Add", NOSPLIT, "func(x, y uint64) uint64")
x := Load(Param("x"), GP64())
y := Load(Param("y"), GP64())
ADDQ(x, y)
Store(y, ReturnIndex(0))
RET()
Generate()
}



*Go-стабы: это Go-файл, который объявляет функцию без реализации, но с правильной сигнатурой, чтобы компилятор понимал, как с ней работать.

GitHub

@golang_google
🧠 LangChainGo и MongoDB: создание RAG-приложений на Go

🚀 Основная идея

MongoDB интегрировалась с LangChainGo — портом популярного фреймворка LangChain для языка Go. Это позволяет разработчикам на Go создавать приложения с поддержкой больших языковых моделей (LLM), используя возможности MongoDB для векторного поиска и хранения данных.

🔧 Что такое LangChainGo?

LangChainGo — это сообщественно-разрабатываемый порт фреймворка LangChain для языка Go.
• Позволяет интегрировать LLM в Go-приложения, используя такие сервисы, как OpenAI, Ollama, Mistral и другие.
• Поддерживает различные хранилища векторов, включая MongoDB.

🗄 Роль MongoDB как операционной и векторной базы данных

MongoDB Atlas предоставляет встроенные возможности векторного поиска, упрощая разработку AI-приложений.
• Объединяет семантический поиск с фильтрами по метаданным, графовыми запросами, агрегациями и геопространственным поиском.
• Распределённая архитектура обеспечивает масштабируемость и изоляцию нагрузок.
• Обеспечивает корпоративный уровень безопасности и доступности.

🤖 MongoDB, Go и AI/ML

• Go становится всё более популярным в AI/ML благодаря своей простоте, масштабируемости и безопасности во время выполнения.
• Интеграция MongoDB с LangChainGo позволяет разработчикам на Go создавать приложения с поддержкой RAG (Retrieval-Augmented Generation) и AI-агентов.
MongoDB Go Driver поддерживает векторный поиск и упрощает взаимодействие с MongoDB из Go-приложений.

🏁 Начало работы с MongoDB и LangChainGo

• MongoDB добавлена как хранилище векторов в версии LangChainGo v0.1.13 под названием mongovector.
• Пример использования: [mongovector-vectorstore-example](https://github.com/tmc/langchaingo/tree/main/examples/mongovector-vectorstore-example).
• Полезные руководства:
- [Начало работы с интеграцией LangChainGo](https://www.mongodb.com/docs/atlas/atlas-vector-search/langchain-go/)
- [RAG с Atlas Vector Search](https://www.mongodb.com/docs/atlas/atlas-vector-search/langchain-go/)
- [Локальная реализация RAG с Atlas Vector Search](https://www.mongodb.com/docs/atlas/atlas-vector-search/langchain-go/)
- [Начало работы с Atlas Vector Search (Go)](https://www.mongodb.com/docs/atlas/atlas-vector-search/)

Эта интеграция открывает новые возможности для разработчиков на Go, позволяя эффективно использовать MongoDB для создания современных AI-приложений.

👉 Источник

@golang_google
Outpost — это open-source инструмент, позволяющий принимать вебхуки локально и безопасно проксировать их к вашему приложению.

По сути, это альтернатива таким сервисам, как ngrok, но с упором на работу с вебхуками.

Что делает:

Принимает вебхуки из внешних сервисов (например, Stripe, GitHub, Twilio и др.).

Проксирует их к локальному серверу через защищённое соединение.

Поддерживает надёжную доставку и ретрансляцию, если ваш локальный сервер временно недоступен.

Работает через Hookdeck Cloud, но может использоваться и в self-hosted сценариях.

Особенности:

Полностью open-source и легко кастомизируется.

CLI-утилита для быстрой настройки и мониторинга.

Удобный лог событий и перехватчики вебхуков для отладки.

Локальный сервер остаётся закрытым для интернета — только безопасный туннель.

Примеры применения:

- Тестирование интеграции с платёжными шлюзами.

- Отладка CI/CD хуков с GitHub или GitLab.

- Разработка приложений, реагирующих на события (реальное время).

Преимущества:

Альтернатива ngrok, но заточена именно под вебхуки.

Хорошая интеграция с экосистемой Hookdeck.

Можно разворачивать в своей инфраструктуре при необходимости.

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

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Проект: GoVisual


🧩 Что это такое

GoVisual — это инструмент с нулевой конфигурацией, написанный на Go, предназначенный для *визуализации и отладки HTTP-запросов* во время локальной разработки Go-приложений.


🚀 Ключевые возможности

• Визуализирует все входящие HTTP-запросы
• Показывает структуру и содержимое запросов в реальном времени
• Не требует дополнительной конфигурации
• Легко интегрируется в существующие Go-проекты
• Работает локально и предназначен для отладки

⚙️ Как это работает

1. Подключается к вашему HTTP-серверу в Go
2. Перехватывает и отображает все запросы, поступающие на сервер
3. Автоматически запускает веб-интерфейс для отображения логов

🎯 Когда использовать

GoVisual идеально подойдёт, если:

• Вы разрабатываете API или веб-сервер на Go
• Хотите смотреть каждый HTTP-запрос без Postman или стороннего прокси
• Нужна отладка без лишней настройки
• Хотите встроить простой мониторинг в локальную разработку
• Работает «из коробки»

go get github.com/doganarif/govisual

📦 GitHub

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
📦 Go-Package-Manager — легкий менеджер пакетов для Go-проектов без go.mod

🚀 Что это такое?

Go-Package-Manager (GPM) — это минималистичный менеджер пакетов для Go, который:
- 📁 копирует зависимости напрямую в папку pkg/
- 🧵 поддерживает установку с GitHub, Gist, Bitbucket и GitLab
- 🔧 позволяет собирать и запускать проект без конфликта с go.mod

🛠️ Основные команды:

- gpm get [repo] — загрузка зависимости
- gpm run [main.go] — сборка и запуск проекта
- gpm install — установка всех зависимостей из packages.yaml
- gpm clean — очистка всех пакетов

💡 Пример packages.yaml:

packages:
- github.com/some/package
- gitlab.com/another/dep


🎯 Кому будет полезно?

• Новичкам, которые не хотят сразу погружаться в go mod
• Тем, кто работает над однострочными утилитами или экспериментальными скриптами
• Для старых проектов без модулей или в нестандартных окружениях

🔗 Репозиторий

@golang_google
🔐 Boulder — реализация ACME-совместимого центра сертификации, автоматически проверяющего владение доменом и выпускающего TLS-сертификаты. Именно на нём работает Let’s Encrypt, бесплатно обеспечивая шифрование для миллионов сайтов.

Проект разделён на компоненты: Web Frontend, Registration Authority, Certificate Authority и другие, что позволяет изолировать критичные части системы. Внутри — строгая логика на основе объектов ACME: аккаунтов, авторизаций и сертификатов. Для связи между модулями используется gRPC, а для разработки — Docker-окружение с полным набором зависимостей.

🤖 GitHub

@golang_google
Производительность и наблюдаемость бэкенда. Поиск проблем в продакшене

Признак мастерства бэкендера — глубокое понимание своего стека и того, как работает код в продакшене. Недаром во многих бигтех-компаниях принят подход “you build it, you run it”. Хороший программист не только умеет запилить фичи, но и знает, как работает в проде его софт, и может разобраться, почему его сервис тормозит. Для этого нужно знать особенности рантаймов, инфраструктуры и современные подходы к сбору телеметрии.

Приходи на курс — разберёшься в перформансе на уровне кода и инфраструктуры, научишься внедрять наблюдаемость как в бигтех-компаниях, прокачаешься для собеседований в компании, где ждут от разработчиков широкого инженерного мышления.

🌐 В программе курса:

🤩 Архитектура бэкенд-серверов (Golang, Java, PHP и др) и её особенности: модели обработки запросов и параметры конфигурации, влияющих на производительность
🤩 Zero-code instrumentation на разных языках программирования
🤩 Open Telemetry: основы технологии и применение на примере SigNoz
🤩 Суб-real-time телеметрия поверх UDP c PINBA и “промстэком” (Grafana/Prometheus)

🥸 Кто мы: R&D-центр Devhands. Автор курса — Михаил Курмаев, эксперт по сложным распределённым системам. Долгое время строил платформу в Badoo/Bumble, сейчас в Т-банке развивает дата-платформу.

🗓 Старт курса: 3 июня, 4 недели обучения.
Изучить программу и записаться можно здесь.

Ждем вас!

Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqvWLPSc
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Sqlc-gen-go-server — это плагин для sqlc, который автоматически генерирует серверную часть на Go (gRPC, Connect или HTTP) на основе SQL-запросов.

Он позволяет разработчикам создавать типобезопасные API без необходимости вручную писать обработчики или маршруты.
X (formerly Twitter)

🔧 Основные возможности
Поддержка нескольких протоколов: Генерация серверов с использованием gRPC, Connect или стандартного HTTP.

- Гибкая настройка: Возможность указания пользовательских опций, таких как имя пакета, префиксы маршрутов и другие параметры через конфигурационный файл sqlc.yaml.

- Простая интеграция: Легко встраивается в существующие проекты на Go, используя стандартные инструменты и практики.

🚀 Быстрый старт
Установка sqlc:



go install github.com/sqlc-dev/sqlc/cmd/sqlc@latest


Добавление плагина в конфигурацию


sqlc.yaml:

version: '2'
plugins:
- name: go-server
wasm:
url: https://github.com/walterwanderley/sqlc-gen-go-server/releases/download/v0.1.0/sqlc-gen-go-server.wasm
sha256: "<SHA256-сумма>"
sql:
- schema: schema.sql
queries: query.sql
engine: postgresql
codegen:
- plugin: go-server
out: internal/db
options:
package: db


Генерация кода:

sqlc generate

Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM