Category : golang

golang
Как обрабатывать ошибки в Golang – рассказываем на собственном примере

Всем привет. Меня зовут Алексей Бурмистров, я senior Golang разработчик в Quadcode. В процессе разработки биллинга, мы столкнулись с различными типами ошибок, которые могут возникать во время выполнения программы. В данной статье я хочу поделиться нашим опытом в структурировании и обработке этих ошибок, а также представить подходы, которые мы применили для их эффективной обработки и диагностики. Наша основная цель заключается в создании понятных и легко обрабатываемых ошибок, которые гарантиру…

  • пятница, 2 июня 2023 г. в 00:00:22
golang
Осваиваем чистую архитектуру кода на Golang: практическое руководство по сущностям и слоям моделей

В архитектуре кода иногда разделяют слой сущностей и слой моделей. В этой статье я расскажу о них и приведу два примера кода на языке Golang.Чистая структура кода — это набор рекомендаций и принципов, направленных на то, чтобы сделать код более читаемым, удобным и масштабируемым. В контексте архитектуры программного обеспечения обычной практикой является разграничивать задачи путем разделения кодовой базы на отдельные слои. Два общих слоя в этом смысле — это слои сущностей и моделей. В теории …

  • пятница, 2 июня 2023 г. в 00:00:19
golang
[Разбор резюме] Бэкендер на Go: почему «ключевые навыки» никому не нужны и как уместить весь опыт н…

Привет, Хабр! Мы много разговариваем про найм, и решили запустить новую рубрику — разбор резюме. В ней наши профессиональные HR, которые регулярно просматривают сотни резюме, будут смотреть на присланные CV специалистов и советовать, что в них можно улучшить. Делать мы это будем именно с точки зрения HR-специалистов: они расскажут, что именно их бы оттолкнуло, а что — привлекло. Начнем с резюме бэкендера и дальше пойдем по другим профессиям.Если хотите, чтобы ваше резюме тоже так разобрали, пр…

  • суббота, 27 мая 2023 г. в 00:00:16
golang
Системные вызовы в go

Всем привет!Всеми нами любимый docker является абстракцией над операционной системой linux, kubernetes является абстракцией над docker, а openshift - это высокоуровневый дистрибутив kubernetes удобный для пользователя.Технологии сейчас строятся на фундаменте из открытых программ, а самый очевидный путь их использования - системные вызовы из ваших собственных программ.Все современные языки программирования предоставляют различные интерфейсы для совершения системных вызовов, на мой взгляд одна и…

  • пятница, 26 мая 2023 г. в 00:00:18
golang
Для чего нужен тип http.ResponseController?

Одно из моих самых любимых нововведений в недавнем релизе Go 1.20 — это тип http.ResponseController, который может похвастаться тремя очень приятными полезностями:Теперь вы можете переопределять ваши общесерверные таймауты/дедлайны чтения и записи новыми для каждого отдельного запроса.Шаблон использования интерфейсов http.Flusher и http.Hijacker стал более понятным и менее сложным. Нам больше не нужны никакие утверждения типов!Он делает проще и безопаснее создание и использование пользовательс…

  • четверг, 25 мая 2023 г. в 00:00:18
golang
Как задеплоить своего телеграм-бота (почти) бесплатно — Quickguide в облачный Serverless

Всем привет! Меня зовут Антон Брехов. Я инженер в Yandex Cloud. Сегодня хочу рассказать о том, как дешевле всего задеплоить своего телеграм-бота. Возможно, этот опыт пригодится и для других решений.Готовых фреймворков для телеграм-ботов уже достаточно много на любых языках. Однако после написания кода встает вопрос: а как теперь заставить бота работать постоянно, сделать доступным 24/7?Новички оставляют персональный компьютер работающим и опрашивают сервер телеграма с некоторой частотой. У опы…

  • четверг, 25 мая 2023 г. в 00:00:18
golang
Обнаружение утечек памяти в Go через Pyroscope

Для обнаружения аномально высокой длительности выполнения отдельных функций (а также избыточного выделения или утечек памяти) используются инструменты профилирования над виртуальной машиной (например, JProfiler или Visual VM для JVM) или интегрированные в выполняемый код, например встроенный механизм при компиляции Go-приложений. Альтернативой может стать использование универсальных механизмов профилирования, которые интегрируются со средой выполнения и отправляют результаты профилирования на …

  • суббота, 20 мая 2023 г. в 00:00:16
golang
Получаем сертификат ЦРУ перебирая архивы

Когда-то давно передо мной стояла задача по поиску файлов на ресурсах, которые могли уже не работать или определённые данные с них были удалены. Тогда для этой цели я использовал веб архивы Common Crawl и самопальный инструмент для автоматизации взаимодействия с ним.Сейчас мне понадобилось решить схожую задачу, но Common Crawl упал и пока не встаёт... Поэтому было принято решение допилить свой инструмент до уровня скоростного велосипеда с использованием Wayback Machine и поделиться небольшим о…

  • пятница, 19 мая 2023 г. в 00:00:19
golang
Русские шашки: эффективная генерация ходов в Golang

Я рад представить вам свою реализацию ИИ для русских шашек под названием «damka» (https://github.com/antonmedv/damka). Проект, размещенный на GitHub и доступен для игры по адресу https://medv.io/шашки/, включает в себя ИИ, который следует правилам игры в русские шашкиИИ с mimimax алгоритмом и альфа‑бета обрезкой.База данных «endgame» (опционально).Нейросетевая оценка позиции: ИИ damka использует нейронную сеть для оценки позиций на доске, что позволяет ему более точно оценивать состояние игры.…

  • четверг, 18 мая 2023 г. в 00:00:23