Category : golang

golang
Маленькие интерфейсы, большие победы: Go без лишних зависимостей

Команда Go for Devs подготовила материал о том, почему попытка тащить в Go привычные ОО-паттерны часто заканчивается печально, а вот разделение интерфейсов — наоборот, работает почти магически. Разберём, как маленькие интерфейсы избавляют от «интерфейсного ожирения», упрощают тесты и делают код гибче, даже если вы никогда не читали SOLID. А заодно посмотрим, почему огромный S3Client — это архитектурный антипаттерн, замаскированный под благо.Объектно-ориентированные (ОО) паттерны часто критикуют…

  • вторник, 25 ноября 2025 г. в 00:00:07
golang
Как мы хакатон в 30ке провели и зачем я форкнул интерпретатор Lua

18го ноября, в ГФМЛ №30 (Губернаторский Физико-Математический Лицей №30, он же 30ка, он же тридцатка) на дне наук, я, Саша, CGSG, при поддержки Yandex Cloud провели игровой хакатон для школьников.Задачей ребят было за 2 часа написать бота для змейки на Lua. Они писали и отправляли стратегии, а в фоне постоянно шли матчи, в которых их стратегии и принимали участие.Через 2 часа рейтинг сбросился, для каждой команды был взят последний отправленный алгоритм, и в финальной пачке матчей определился п…

  • вторник, 25 ноября 2025 г. в 00:00:07
golang
Go profiling lifecycle: от разработки до прода. Инструменты и практики

Привет, Хабр! В данной статье хотел бы раскрыть тему - почему на 'младших' стендах api работает стабильно, но в проде начинаются проблемы: рост памяти, кол-во горутин множится, и через несколько часов - просадка производительности, gc не справляется, out of memory killer и т. д.Давайте разберемся, что разработчику может помочь, чтобы он мог спать спокойно после деплоя своего решения. Попробуем детально разобраться в природе утечек ресурсов, научимся находить их с помощью профилировщиков…

  • суббота, 22 ноября 2025 г. в 00:00:08
golang
Лень – двигатель прогресса, на примере создания облачной CLI

Привет! Я Эмиль Ибрагимов — старший Go-разработчик команды Development Platform в MWS Cloud Platform. В этой статье расскажу о том, как мы создали облачную CLI на Go и что из этого вышло. Спойлер: получилось реализовать утилиту и поддерживать её силами небольшой команды внутри Development Platform.Что такое облачная CLIОблачная CLI — консольная утилита для взаимодействия с облаком. С её помощью можно, например, просматривать бакеты в S3, создавать и просматривать виртуальные машины и базы данны…

  • суббота, 22 ноября 2025 г. в 00:00:06
golang
Кросс-компиляция и запуск консольного Go‑приложения на Android, Windows, macOS и Linux

Компилятор Go хорошо и быстро кросс-компилирует Я иногда пишу консольные утилиты на Go под Linux. Недавно я освоил кросс-компиляцию, и теперь они прекрасно работают на Android и Windows (и Linux само собой). В статье собран практический опыт кросс‑компиляции, подготовки релизной версии и развёртывания бинарника, плюс несколько подводных камней. 1. Консольные программы ещё живыОни до сих пор в деле, и вряд ли это когда-то изменится:сервисы, демоны;утилиты для пайплайнов, cron, CI/CD;криптоноды и…

  • суббота, 22 ноября 2025 г. в 00:00:05
golang
Микросервисная трансформация в Купере — как это было. Часть I: Начинаем распил монолитов

Привет! Меня зовут Фёдор Засечкин. С 2023 года я руковожу группой разработки операционной платформы в Купере. Наша команда отвечает за стабильность и развитие сервисов, которые обеспечивают сборку и доставку заказов, а также найм и выход партнёров в смены.Последние два года наша ключевая задача — микросервисная трансформация. Мы постепенно распиливаем монолит, перераспределяя нагрузку по сервисам. На сегодня более 1 000 RPS HTTP-трафика уже ушло с монолита; до полного завершения осталось около …

  • суббота, 22 ноября 2025 г. в 00:00:04
golang
Как юристу надоело объяснять, что дело швах: рождение «неШемяки!»

AI Legal веб-сервис для тех, кто устал гадать«Шемякин суд» — это не просто избитый фразеологизм, но реальность для многих, кто ввязался в судебную тяжбу, не оценив заранее все риски. Тысячи проигранных дел, потраченные нервы и деньги — всего этого можно было бы избежать, задай истец себе вовремя один простой вопрос: «Каковы мои шансы?».  “неШемяка!” — это маленькое веб‑приложение, которое пытается ответить на один простой вопрос, есть ли хоть малейший смысл подавать иск, это сервис, который пыт…

  • пятница, 21 ноября 2025 г. в 00:00:04
golang
Go: логирование

ВведениеВ этой статье затронем такую банальную тему, как логирование. Казалось бы, какие трудности здесь могут быть? Логирование, как написание тестов. Всё просто! Более того, когда я начинал писать свои первые тесты, я уже всё знал про тестирование, по крайней мере мне так казалось. А с логом-то ещё проще. Если тесты могут получиться нестабильными, то лог никак не повлияет на ход выполнения программы (если, конечно, библиотека не начнёт паниковать от переданных параметров). К тому же будем рас…

  • пятница, 21 ноября 2025 г. в 00:00:04
golang
Прекратите создавать интерфейсы

Я пишу всякое на Go в Ви.Tech (IT-дочка ВсеИнструменты.ру) и как и все, люблю подискутировать на технические темы.У этой заметки сложная судьба, мне загорелось написать ее еще летом, но совершенно не хотел говорить об очевидных вещах и писать миллион первую статью со ссылкой на гугловский go code review comments. Тема уже разобрана всеми кому не лень, на русском языке вот у  Николая @JustSkiv Тузова, есть замечательное видео на его ютуб канале, раскладывающее по полочкам, для чего это нужно.По…

  • четверг, 20 ноября 2025 г. в 00:00:06