Модель - Stable Diffusion v1-5Все началось с того, что я в очередной раз немного поменял структуры БД, и в некоторых SQL-запросах добавилась новая колонка. Нормальная ситуация - взять и легким движением руки сломать половину unit test’ов, потому что БДшные моки ожидают определенный текст запроса.Хрупкость тестов раздражала меня давно, но в тот раз я был не в настроении, и решил, что хватит, пора что-то с этим сделать. Ясное дело, если я меняю запрос в функции, это ломает тесты для этой функции…
Привет, Хабр!Golang как ЯП очень хорош для разработки высокопроизводительных приложений. В любом проекте наступает момент, когда нужно проверить, насколько хорошо все работает на самом деле, это можно сделать с помощью тестирования.Тестирование в Go можно выполнять с помощью mock-объектов, fuzzing и property-based testing. В этой статье мы рассмотрим эти механизмы.Mock-объектыMock-объекты — это такие подставные объекты, используемые в тестировании для имитации поведения реальных компонентов си…
ВведениеСогласно официальному сайту, chi — это легковесный, идиоматический и композируемый маршрутизатор для создания HTTP-сервисов на Go. Он на 100% совместим с net/http и довольно легок в обращении, однако его документация предназначена скорее для опытных разработчиков, чем для новичков, поэтому я решил написать серию статей, в ходе которых мы будем постепенно развивать и перерабатывать простейший CRUD, написанный на chi.В рамках данной части мы напишем код, который ляжет в основу дальнейш…
Привет! Меня зовут Павел Агалецкий, я ведущий разработчик юнита Platform as a Service в Авито. Kubernetes — один из самых популярных инструментов для деплоя приложений и сервисов. В Авито мы используем его не только в продакшене, но и в качестве среды для локального запуска сервисов на машинах разработчиков. В этой статье я подробно разбираю, как поднять маленький кластер Kubernetes на своём компьютере с помощью общедоступных инструментов и деплоить простейшие приложения.Подготовка к работе: у…
Эта статья основана на истории об одном личном челлендже. Нужно было помочь с реализацией взаимодействия компонентов в программном комплексе заказчика. Иными словами, понадобилось IPC для дальнейшего развития продукта. Вызов заключался в том, что в обязательных требованиях числилось использование чистого С. Другие языки, включая С++ и Go, не рассматривались. В итоге я получил интересный опыт системного и параллельного программирования. Меня зовут Алексей Буреев, я работаю старшим инженером по …
Привет, Хабр!Эта статья — моя подборка приёмов и техник, которые помогут писать лаконичный и производительный код на Go без лишних костылей и велосипедов.Речь пойдёт о:полезностях для конкурентного программированияприёмах в Go в целом, таких как использование iota, работа с ошибками, вывод интерфейса и т.д.методах оптимизации работы со слайсамиОбсудим, как избежать ненужной аллокации памяти, как быть с состоянием гонки, поговорим про компактность и лаконичность кода и ещё про массу полезных шт…
В предыдущей статье мы начали знакомство с Ebitengine. В этой части структура игры будет доработана и переведена на сцены. Часть 0.5? Это вторая pre-1 часть, в которой разрабатывается отдельный демо-проект. Начинать делать RPG с нулевой базы было бы слишком сложно: я хочу использовать все свои любимые библиотеки и практики как можно раньше, при этом у меня не получилось придумать способа достаточно плавно вводить все составляющие на менее искусственном проекте. Возможно, уже следующая статья …
28 марта встречаемся на митапе по Go-разработке с инженерами из команд систем хранения данных и телекома YADRO, а также разработчиками из VK и AvitoTech. Эксперты расскажут, как: снизить нагрузку на сборщик мусора,сделать свой mini-k8s,написать библиотеку для обработки ошибок,использовать горутины грамотно и безопасно.Митап пройдет в Нижнем Новгороде и онлайн. Регистрируйтесь на встречу по ссылке и выбирайте удобный формат участия. Снижаем нагрузку на Garbage Collector и ускоряем работу с памя…
В Bazel есть две крайне полезные фичи:stamping – позволяет встроить в артефакт данные о том, от какого коммита можно собрать аналогичный артефакт;remote cache и remote build – позволяет иметь общий кэш между сборщиками или даже собрать артефакты на ферме.Ранее, к сожалению, эти фичи были взаимоисключающими, но с версии Bazel 7.0 можно использовать stamping с remote cache при помощи scrubbing-а. Сегодня вышла версия Bazel 7.1, в которой появилась возможность использовать stamping с remote build…