Category : golang

golang
Мониторинг и трассировка в Go: от Prometheus до Jaeger

Привет, Хабр!Когда приложения становятся все более сложными и распределенными, и эффективное управление ими требует глубокого понимания происходящего внутри. Мониторинг позволяет нам наблюдать за состоянием приложения, собирать ценные метрики о его работе и предоставлять нам обратную связь в реальном времени. Это помогает в обнаружении и устранении проблем до того, как они станут серьезными. Мониторинг также дает возможность планировать масштабирование и оптимизацию, основываясь на данных, а н…

  • четверг, 26 октября 2023 г. в 00:00:18
golang
Визуализация результатов Telegram-опросов в Grafana

Хотел бы поделиться интересным решением, которое, уверен, было бы полезно для кооперативов и товариществ.Современные технологии постепенно проникают во все области нашей жизни. Сегодня сложно представить соседей многоквартирных домов или земельных участков СНТ/ДНТ без группового чата в мессенджере. Такие группы удобны для общения, они позволяют оперативно решать вопросы, публиковать объявления, делиться новостями и даже проводить опросы и голосования.Кстати, голосование в мессенджере может име…

  • среда, 25 октября 2023 г. в 00:00:15
golang
Go 1.21: пакет slices

В версии Go 1.21, был добавлен новый пакет под названием slices. Этот пакет представляет собой набор функций, которые облегчают выполнение наиболее распространенных операций со слайсами. Пакет появился благодаря добавлению дженериков ранее в 1.18. Все функции в пакете являются обобщенными (или "generics").Что такое generics?Generics - это функции или типы, которые могут работать с любым типом данных. В Go generics были введены в версии 1.21 и они означают, что вы можете написать функци…

  • понедельник, 23 октября 2023 г. в 00:00:11
golang
Зачем нужны модульные тесты и как заставить их работать на вас

Программное обеспечениеПреимущество программного обеспечения заключается в том, что оно может изменяться. Именно поэтому его называют "soft" обеспечение - оно более податливо, чем аппаратное обеспечение. Отличная команда инженеров должна быть замечательным активом компании, создавая системы, которые могут развиваться вместе с бизнесом, чтобы продолжать приносить пользу.Так почему же мы так плохо справляемся с этой задачей? Сколько проектов, о которых вы слышали, полностью проваливаются…

  • среда, 18 октября 2023 г. в 00:00:21
golang
Антипаттерны в TDD

Время от времени необходимо пересматривать свои методы TDD и напоминать себе, каких моделей поведения следует избегать.Процесс TDD концептуально прост, но по мере его выполнения вы обнаружите, что он бросает вызов вашим навыкам проектирования. Не путайте это с тем, что TDD - это сложно, сложно именно проектирование!В этой главе приводится ряд антипаттернов TDD и тестирования, а также способы их устранения.Не заниматься TDD вообщеКонечно, можно написать отличное программное обеспечение без TDD,…

  • среда, 18 октября 2023 г. в 00:00:17
golang
Улучшенная маршрутизация HTTP-серверов в Go 1.22

В Go 1.22 ожидается появление интересного предложения - расширение возможностей по поиску шаблонов (pattern-matching) в мультиплексоре, используемом по умолчанию для обслуживания HTTP в пакете net/http.Существующий мультиплексор (http.ServeMux) обеспечивает рудиментарное сопоставление путей, но не более того. Это привело к появлению целой индустрии сторонних библиотек для реализации более мощных возможностей. Я рассматривал эти возможности в серии статей "REST-серверы на Go", в частях …

  • среда, 18 октября 2023 г. в 00:00:17
golang
Как я столкнулся с Tarantool-ом: разбор подводных камней на примере микросервисного pet-проекта

Привет, Хабр! Меня зовут Сергей Скубач, я работаю в VK и разрабатываю облачное хранилище WorkDisk. Мы используем Tarantool в своём продукте, так как его разрабатывают и развивают наши коллеги. Я впервые столкнулся с Tarantool именно в VK, и для более глубокого понимания решил попробовать использовать его в своём pet-проекте.Постараюсь рассказать о сложностях, с которыми столкнулся при внедрении Tarantool-а с позиции разработчика, впервые работающего с этой базой данных.Tarantool — это решение …

  • суббота, 14 октября 2023 г. в 00:00:17
golang
Как PaaS решил проблемы стандартизации разработки сервиса одной утилитой

Привет 👋 На связи команда PaaS СберМаркета. Меня зовут Роман, и уже больше 2-х лет моя группа занимается разработкой инструментов для разработчиков, в том числе утилитой sbm-cli, о которой хочу рассказать сегодня.Вероятно вы каждый день пользуетесь консольными утилитами, такими как git, homebrew, ssh, grep, find, etc. Мы сделали command line interface приложение, запуск которого на локальной машине разработчика может превышать количество запусков команды git (спойлер: статистика в конце статьи…

  • суббота, 14 октября 2023 г. в 00:00:17
golang
Самый быстрый поиск пути на Go без аллокаций и СМС

Алгоритмы важны. Но реализовать их можно очень по-разному. При одном и том же алгоритме, оптимизированная библиотека будет в тысячу раз быстрее наивной. Любите оптимизации, специализированные структуры данных и трюки с битами? Тогда скорее под кат! Интро Алгоритмы на сегодня: A-star и greedy BFS. Оба отлично разобраны в статье Introduction to the A* Algorithm. Поиск пути мне понадобился в игре Roboden. Написана она на Go с использованием движка Ebitengine, соответственно и библиотеку я искал …

  • пятница, 13 октября 2023 г. в 00:00:15