Category : golang

golang
Клиентоцентричность с точки зрения Go-разработчика и причем тут рефлексия

Когда всё, что делает компания — от продуктов, услуг и до обслуживания — направлено на то, чтобы клиент был доволен и возвращался снова, все команды объединяются вокруг единой цели — смотреть на задачи и искать решения с точки зрения проблем и нужд конечного клиента.  Я Александр Шакмаев — технический лидер в Cloud.ru. Поделюсь опытом нашей команды: расскажу, как с помощью gRPC-интерцепторов и рефлексии команда Go-разработчиков может изменить продукт и улучшить пользовательский опыт.Сразу отмеч…

  • среда, 11 декабря 2024 г. в 00:00:08
golang
Способ организации gRPC контрактов и их автоматизация для микросервисов

Привет! Меня зовут Данил, я бэкенд разработчик.На последнем проекте мне выпала удача разрабатывать микросервисную архитектуру в условиях широкого стэка технологий и языков, требующих стандартизации. Это и натолкнуло меня написать статью, в которой я бы хотел предложить способ автоматизации рутинной работы в gRPC контрактами.Что затронуто в данной статье:В этой статье я бы хотел поделиться, удобным и зарекомендовавшим себя во времени работе в продакшене способом управления gRPC спецификациями се…

  • вторник, 10 декабря 2024 г. в 00:00:12
golang
Решаем задачу моментальной навигации по коду для любого коммита

Привет, Хабр! Меня зовут Ольга Лукьянова, я работаю в Yandex Infrastructure, в команде, которая делает системы, сервисы и инструменты для разработчиков. Недавно Яндекс анонсировал новый продукт SourceCraft, который уже собирает вокруг себя сообщество. Последний год я руковожу группой навигации по коду этого проекта. Мои коллеги на конференциях уже рассказывали про планы развития SourceCraft — платформы от Яндекса для создания исходного кода, управления версиями, тестирования, сборки, развёртыва…

  • вторник, 10 декабря 2024 г. в 00:00:12
golang
Сколько памяти нужно в 2024 году для выполнения миллиона конкурентных задач?

Помните сравнение потребления памяти для асинхронного программирования на популярных языках 2023 года?Мне стало любопытно, как поменялась ситуация за один год на примере самых новых версий языков.Давайте снова проведём бенчмарки и изучим результаты!БенчмаркПрограмма для бенчмаркинга будет той же, что и в прошлом году:Запустим N конкурентных задач, каждая задача будет ждать в течение 10 секунд. После завершения всех задач программа завершается. Количество задач указывается как аргумент командной…

  • воскресенье, 8 декабря 2024 г. в 00:00:07
golang
Обзор пакета unsafe: как обходить ограничения Go (но лучше этого не делать)

Когда вы впервые открываете Go, вас встречает строгая и безопасная среда: никаких сюрпризов, сегфолтов, фишек с указателями. Всё строго, как в хорошо организованной организации. Но есть в этом языке лазейка, которая ломает весь этот порядок и это — пакет unsafe.Что такое пакет unsafeС его помощью можно делать вещи, которые язык обычно запрещает.Вот что он позволяет:Конвертировать типы указателей.Достучаться до приватных полей структур.Лезть напрямую в память и изменять данные.Работать с выравни…

  • суббота, 7 декабря 2024 г. в 00:00:14
golang
Понимание контекста

Умение работать с пакетом context является очень важным: его использование в Golang пронизывает весь код, но не смотря на это очень часто он используется формально. Контекст создается (иногда непосредственно перед вызовом функции), передается из одной функции в другую и дальше по цепочке. Для чего это делается, в чем конечная цель? Для того, чтобы ответить на этот вопрос необходимо сделать шаг назад и опереться на знания о каналах, горутинах и шаблонах работы с ними.При программировании на go, …

  • суббота, 7 декабря 2024 г. в 00:00:13
golang
Пишем сервис инференса ML-модели на go, на примере BERT-а

Привет, на связи команда аналитиков Х5 Tech. В статье пишем сервис инференса ML-NLP модели на go. Допустим, вам нужно внедрить ML-модель (разработанную/обученную на Рython-фреймворке) в сервис в вашей инфраструктуре. По какой-то причине (не важно какой) этот сервис должен быть на golang-е. Здесь покажем, как это можно сделать, используя ONNX.Если вы это читаете, то, вероятно, или вы знакомы с обучением ML-моделей на Рython, библиотекой моделей huggingface, языковыми моделями BERT, или вы являет…

  • суббота, 7 декабря 2024 г. в 00:00:12
golang
Прощай, Индия: как мы создали свою систему отслеживания задач на замену Jira

Привет, Хабр!Зовут меня Егор, и в этой статье я хочу рассказать, как мы с ребятами из компании АИСА запилили свой аналог Jira – с блэкджеком и быстрым API на Go.«Хомячки плакали, кололись, но продолжали грызть суккулент»Рождение идеиЧуть больше года назад мы поняли, что планирование и отслеживание работы над проектами с помощью Jira всё ощутимее бьёт по карману. Atlassian тогда еще не ушла из России, но всё равно хотелось адекватной замены для внутреннего использования.Беглый анализ рынка показ…

  • пятница, 6 декабря 2024 г. в 00:00:07
golang
Для Go-разработчиков, которые хорошо себя вели в этом году: генерируем стабы для тестирования и пил…

Если бы мы организовывали предновогодний корпоратив «здорового» гофера, он выглядел бы так. 12 декабря, в четверг, собираем Go-разработчиков в Нижнем Новгороде и онлайн, чтобы обсудить практики тестирования микросервисов на Go, историю распила монолита, которая привела к… монолиту, и работу с монструозным Makefile (ждем откровений Даниила Подольского). В качестве нетайных Сант выступят эксперты из Wildberries, YADRO, Ви.Tech и Weborama — спикеры и участники GolangConf. Чтобы почувствовать прибл…

  • четверг, 5 декабря 2024 г. в 00:00:09