Category : golang

golang
Пишем Telegram-бота на Go(и заставляем его мотивировать нас каждые 30 минут)

Я всегда хотел сделать что-то простое и полезное в Telegram, но чтобы не пришлось постоянно за этим следить. И вот пришла гениальная идея: чтобы быть всегда замотивированным, можно написать бота, который будет (с какой то периодичностью) сам отправлять мотивационные цитаты в канал?Этот бот берёт случайные цитаты известных людей из интернета, переводит их на русский язык и отправляет в Telegram-канал по расписанию. Например, утром, днём, вечером и ночью. Звучит просто, правда? Но внутри этого пр…

  • воскресенье, 6 апреля 2025 г. в 00:00:10
golang
Docker теперь конкурент Ollama?

Ребята зарелизили новую крупную фичу, и, как по мне, это самая крупная механика с момента выхода dev containers, так как это показывает, насколько всё-таки AI всё глубже интегрируется в разработку.Docker Model Runner - фактически инструментарий для запуска моделей локально, и это буквально полный конкурент для Ollama, но, будем объективны, пока что ещё очень сырой.Фактически у нас с вами появилась новая команда:➜ ~ docker model --help Usage: docker model COMMAND Docker Model Runner Commands…

  • суббота, 5 апреля 2025 г. в 00:00:12
golang
Как мы пишем ML-приложения с использованием паттерна пайплайнов

Привет, Хабр! Я Тимофей Милованов, ведущий Golang-разработчик в команде VoiceKit, где мы занимаемся голосовыми технологиями. Мы разрабатываем сервисы по распознаванию и синтезу голоса, преобразованию одного голоса в другой, а еще голосовой биометрией.Расскажу о том, почему структура этих сервисов похожа на пайплайн, почему Golang отлично подходит для реализации пайплайнов и как мы написали свою библиотеку для этих пайплайнов.Жизненный цикл ML-моделиML невероятно обширный, поэтому нужно четко оч…

  • суббота, 5 апреля 2025 г. в 00:00:12
golang
Конкуренция в Go

Конкуренция (concurrency) в программировании позволяет разным частям программы выполняться независимо друг от друга. Это помогает повысить производительность и эффективнее использовать системные ресурсы. Конкуренция особенно важна для современных приложений, таких как сетевые сервисы или программы, работающие с множеством пользовательских запросов.Go предлагает уникальный подход к реализации конкуренции, который отличается от других языков программирования. В основе этого подхода лежат горутины…

  • пятница, 4 апреля 2025 г. в 00:00:14
golang
Решаем проблемы роста нагрузки в умных домах

Команда SberDevices столкнулась с необходимостью масштабирования системы для поддержки сотен тысяч IoT-устройств. Система была хрупкой и не справлялась с пиками трафика. Это приводило к инцидентам, когда девайсы теряли связь с сервером и одновременно пытались переподключиться, создавая лавинообразную нагрузку.Всем привет! Меня зовут Вадим Трегубов, я техлид бекэнда платформы умного дома в SberDevices. Сегодня расскажу про особенности работы с IoT, проблемах роста нагрузки, возникающие у проекто…

  • пятница, 4 апреля 2025 г. в 00:00:14
golang
Слабые указатели в Go: в консерватории не всё в порядке

Меня зовут Дмитрий Солдатенко, я разработчик в Ви.Tech, IT-дочке ВсеИнструменты.ру. И теперь, когда формальное представление завершено, хочу поделиться своим, местами не очень формальным, батхертом по поводу слабых указателей.Предполагается, что вы пишете на Go и хотя бы на уровне чтения релиз-ноутов знакомы с концепцией слабых указателей (weak pointers).На первый взгляд, это полезный механизм для некоторых сценариев. Но у меня есть одна идеологическая и несколько фактических претензий к их реа…

  • вторник, 1 апреля 2025 г. в 00:00:10
golang
Разбираем паттерны конкурентности

БазаПараллельность - выполнение задач в один момент времени на разных логических ядрах.Конкурентность - выполнение задач последовательно, но со сменой контекста на другую задачу в ожидание завершения иной задачи. У пользователя может возникнуть иллюзия многозадачности даже в однопроцессорной системе, поскольку смена контекста происходит быстро (микросекунды).Процессы:Раздельная памятьРаздельные ресурсыРаздельные регистрыПотоки:Общая памятьОбщие ресурсыРаздельные стэк и регистрыГорутины:Общая па…

  • вторник, 1 апреля 2025 г. в 00:00:08
golang
Параллельное программирование на Go

На практике, создаваемое нами ПО выполняется на множестве процессоров. К сожалению, многие наши допущения, справедливые для одного процессора, в случае нескольких процессоров становятся ложными. Например, каким будет состояние памяти, если два процессора изменяют один блок памяти? В общем случае на этот вопрос ответить сложно. Может случиться так, что внесённое одним процессом изменение перепишет внесённое другим. Справедливо может быть и обратное: может «победить» изменение другого процессора…

  • вторник, 1 апреля 2025 г. в 00:00:07
golang
Архитектура продуктового Go-сервиса

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

  • воскресенье, 30 марта 2025 г. в 00:00:07