Category : golang

golang
Пишем поиск семантически похожих текстов (или товаров) за полчаса на Go и Postgres (pgVector)

Казалось бы, в посгресе и так есть неплохой полнотекстовый поиск (tsvector/tsquery), и вы из коробки можете проиндексировать ваши тексты, а потом поискать по ним. Но на самом деле это не совсем то, что нужно — такой поиск работает лишь по чётким совпадениям слов. Т.е. postgres не догадается, что "кошка гонится за мышью" — это довольно близко к "котёнок охотится на грызуна". Как же победить такую проблему? TLDR: Преобразовываем наши тексты в наборы чисел (векторы) при помощи AP…

  • среда, 24 апреля 2024 г. в 00:00:10
golang
Использование миграций баз данных в Go

Недавно мы столкнулись с необходимостью найти библиотеку для удобной работы с базами данных. В нашем проекте команда решила не использовать ORM (Object-Relational Mapping), а вместо этого применить миграции. Так как я работал только с ORM, мне, как и автору статьи, было мало знакомо понятие миграций баз данных. В поисках информации о миграциях и популярных решениях, я наткнулся на эту статью. Перевод статьи я оставил ниже. Возможно, она будет вам полезна. Буду признателен, если вы сможете поде…

  • вторник, 23 апреля 2024 г. в 00:00:06
golang
Как мы ускорили Golang-тесты на CI

Привет, Хабр! 👋 Меня зовут Александр, я занимаюсь разработкой ПО. В этой статье я расскажу о том, как желание улучшить свой рабочий процесс CI помогло ускорить все golang-пайплайны в PaaS СберМаркета.В СберМаркете микросервисная архитектура. В качестве CI/CD используется GitLab. На CI гоняются вполне типовые задачи по тестированию, различным проверкам, сборкам образов и т. д. Часть job предоставляется самим сервисом, часть — внедряется в пайплайн сервиса нашей платформой.Во всех golang-сервиса…

  • среда, 17 апреля 2024 г. в 00:00:16
golang
Сказ о Python или почему его лучше не выбирать новичкам

Всем привет, я Full-stack программист с опытом командной разработки около полугода, а также опытом в создании небольших и средних проектов в районе 3-х лет. Тут я хочу внести ясность для новичков в IT, которые мечутся из стороны в сторону, пытаясь и язык повостребованнее найти, и чтобы попроще учиться, ну и на галеру протиснуться.Простота обманчиваМожно подумать, что Python очень простой язык, скорость написания кода х5, он вроде как нужен, вот, смотри, какие-то графики, я прав, а вот ты ошиба…

  • среда, 17 апреля 2024 г. в 00:00:16
golang
Архитектура telegram-бота. На горутинах и каналах

Это мой первый telegram-бот и моя первая разработка на go. В качестве базы данных используются google-таблицы, благодаря чему большая часть логики находиться в них. Но к сути это отношения имеет мало. Основной причиной написания этой статьи стало то, что проект который я разрабатывал, уже технически реализованный, отложили что бы маркетингом "навести суету" по схемам десятилетней давности. Полагаю проект всё равно будет заброшен, по крайней мере у меня уже нет сил его "продавливать…

  • вторник, 16 апреля 2024 г. в 00:00:08
golang
Дайджест полезных материалов из мира Golang за неделю (6.04.24 -13.04.24)

🔥 Дайджест полезных материалов из мира Golang за неделюПодборка полезных материалов и находок из мира Go за неделю.Инструменты недели:  • xgo — библиотека, которая позволяет добавить функцию Trap и предоставляет такие инструменты, как Mock и Trace. Xgo помогает разработчикам писать юнит-тесты и отлаживать их проще и быстрее. • reverst - обратный туннель (с балансировщиком нагрузки) и клиентская библиотека Go-сервера, построенная на основе QUICK и HTTP/3•portr - туннельное решение, позволяющее …

  • воскресенье, 14 апреля 2024 г. в 00:00:11
golang
Топовые подходы к решению алгоритмических задач

Привет! Меня зовут Дмитрий Королёв, я бэкенд-разработчик в Авито. В этой статье я расскажу про ключевые аспекты и концепции работы с наиболее популярными алгоритмами и структурами данных. Это поможет и в реальных проектах, и чтобы глубже понять алгоритмические принципы. Статья подойдёт специалистам, которые хотят углубить свои знания в программировании, и укрепить навыки нахождения оптимальных решений алгоритмических задач. Базовые концепцииЗнакомство с алгоритмами и структурами данных лучше в…

  • суббота, 13 апреля 2024 г. в 00:00:13
golang
Аутентификация go с использованием токенов PASETO

В этой статье мы напишем небольшой сервис аутентификации на go с использованием токенов PASETO. Этот токен можно использовать вместо JWT для процесса аутентификации. Если хотите узнать о PASETO подробнее, то можете почитать статьи на Хабре или гитхабе.Выбор библиотек для работы с PASETOВ настоящее время PASETO имеет 4 версии, 1 и 2 из них считаются устаревшими, поэтому при выборе библиотек важно ориентироваться на те, которые будут работать с версиями 3 или 4.Например, Гугл и гитхаб при поиске…

  • пятница, 12 апреля 2024 г. в 00:00:09
golang
Odinbit, игра моей мечты и процесс её создания. С нуля до первой публичной версии

ВведениеOdinbitВсем привет, в один прекрасный момент мою голову посетила задумка для игры: я хочу сделать свою игру, с элементами выживания и незамысловатой графикой. Хоть я и не имел опыта в gamedev, но все равно решил попробовать, почему бы и нетКонцепция игрыОсновая идея игры такова: вы как и во всех играх песочницах будь то Minecraft, Terraria, Dont Starve, появляетесь в мире, у вас нет вещей, а точнее вообще ничего. Вам предстоит развиваться в игровом мире, мне очень нравится такой жанр и…

  • среда, 10 апреля 2024 г. в 00:00:09