Category : golang

golang
Лучшая система шаблонов в Go

Привет, Хабр!В этой статье хочу поговорить про, пожалуй, мою самую любимую библиотеку для Go. Это Jet templates. Библиотека, которая очень упрощает работу с шаблонами(templates) в Go.Работать со встроенными шаблонами в Го я очень не люблю. Прописывание мап, неудобная работа в самих шаблонах. Jet это решает.Передача данныхДля того, чтобы сделать мапу с данными для шаблона, необходимо написать всего одну строку:data := make(jet.Varmap)А для того, чтобы что-то туда записать, необходимо написать та…

  • четверг, 22 августа 2024 г. в 00:00:08
golang
«Бобер выдыхай»: Go, WinAPI и ассемблер

Что первым приходит в голову разработчика при слове «Go»? Google и микросервисы? Я тоже так думал, но реальность оказалась значительно интересней.Gopher — маскот Golang на самом деле никакой не бобер а целый отдельный вид, у нас такие не живут.Волшебный мир WindowsЭта статья родилась внезапно — из профессионального спора о реалиях и возможностях языка Go, которые как оказалось выходят сильно далеко за рамки его традиционной сферы примененения.Немного матчасти для тех кто не знает об этом языке:…

  • четверг, 22 августа 2024 г. в 00:00:07
golang
Под капотом облаков. Строим облачную консоль. Часть 1. Знакомство

С чем предстоит иметь делоПрежде чем перейти к главному, кратко обозначу, что конкретно мы в этой статье будем разбирать. Ведь область облачных вычислений настолько велика, что рассказать про все нюансы облаков вряд ли получится. И во многом это даже бессмысленно, так как информации про виртуализацию и проектирование решений в облаке, итак, предостаточно на просторах интернета. Хотя так или иначе виртуализацию мы затронем, когда будем выбирать чем консоль будет управлять (спойлер: Openstack + O…

  • четверг, 22 августа 2024 г. в 00:00:06
golang
Продвинутые структуры Redis

Привет, Хабр! Я Олег Арутюнов, Go разработчик из Контура. Сейчас я работаю над проектом Мойра – опенсорс-системе реалтайм-алёртинга. Мойру разработали в Контуре ещё в 2015 году для того, чтобы доставлять алёрты на основе метрик из системы мониторинга Graphite, позже появилась поддержка метрик из Prometheus/VictoriaMetrics. Наша задача в случае поломки какой-то системы в Контуре, как можно быстрее уведомить о ней пользователей, разбудить их, достать и заставить всё починить.Пользователь Мойры со…

  • вторник, 20 августа 2024 г. в 00:00:08
golang
Написание функционального тестирования в Go

Не все знают, как писать функциональные тесты. В этой статье будут библиотеки, фишки про функциональные тесты, а самое главное - попрактикуемся их писать на примере Rest APIФункциональное тестированиеФункциональное тестирование - это такой тип тестирования, когда проверяется не маленькая часть, а вся программа, при этом сама программа не знает о том, что ее тестируюют. Правильно ли она работает при определенных условиях, что вернет, какая будет ошибка и т.дБиблиотекиВот несколько библиотек для …

  • воскресенье, 18 августа 2024 г. в 00:00:09
golang
Reflection в Go

Привет, Хабр!Сегодня мы рассмотрим в одну из интересных особенностей Golang — reflection. Мы рассмотрим, что такое reflection, как он работает, и когда его стоит использовать. Reflection позволяет программам инспектировать свои структуры и модифицировать поведение в runtime. Пакет reflectВ Go reflection реализован через пакет reflect. Этот пакет имеет интерфейсы и функции для динамического анализа типов и значений на стадии выполнения программы. Основные концепции, которые необходимо понимать, …

  • воскресенье, 18 августа 2024 г. в 00:00:08
golang
Как защитить свое Go-приложение

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

  • среда, 14 августа 2024 г. в 00:00:09
golang
Как создать генератор кодов верификации на Go с помощью SMS API

Привет, Хабр! Всегда было любопытно, как автоматизировать отправку кодов через SMS для второго этапа подтверждения личности при входе пользователя. Мы с коллегой решили разработать простой, но эффективный инструмент, который мог бы автоматически генерировать и отправлять SMS с кодами пользователя. Для реализации этой задачи выбрали API сервиса МТС Exolve.Этот сервис упрощает рассылку SMS и предоставляет удобные инструменты для работы с сообщениями. Также Exolve добавляет новым пользователям 300…

  • среда, 14 августа 2024 г. в 00:00:08
golang
ChatOps на практике: создание бота для мониторинга логов

Недавно на работе меня попросили придумать рабочую задачку для студентов. Поскольку я работаю в инфраструктурной команде, мои повседневные задачи вряд ли подходят для их домашек или курсовых работ. Чтобы найти подходящую идею, я начал перебирать инструменты, которыми мы с командой часто пользуемся. Большинство из них интегрированы с чатами и ботами, и один из ключевых инструментов — это Алерт Бот. Он отслеживает логи и отправляет оповещения, если происходит что-то необычное. Это позволяет нам б…

  • среда, 14 августа 2024 г. в 00:00:07