Category : golang

golang
Автоматизация работы программиста golang

Программист должен автоматизировать свою работу в первую очередь, а то получится как сапожник без сапог. Все этапы работы можно частично автоматизировать. Рассмотрим основные, характерные этапы создания сервисов:Проектирование базы данныхэто творческая работа, которую никак не автоматизируешь. После создания, базу данных надо нарисовать в виде графической схемы. Есть много разных приложения для автоматического создания ERD-diagram, однако они все отображают стрелки связей только до таблицы, а …

  • вторник, 19 декабря 2023 г. в 00:00:14
golang
Подборка: навыки и инструменты начинающего Go-разработчика

Привет! Меня зовут Александр Тетеркин, я Go-разработчик в VK. Раньше я писал на Python, потом перешел на Go — пишу на этом языке уже три года, а также являюсь наставником на курсе «Go-разработчик с нуля».Я знаю, что новички в любой сфере задаются вопросами о том, с чего начать: какие инструменты самые актуальные, про что прочитать в первую очередь, о чём спросят на собеседовании на младшую позицию.Эта статья поможет разобраться, какие навыки и инструменты необходимы начинающему разработчику на…

  • пятница, 15 декабря 2023 г. в 00:00:18
golang
В поиске оптимального подхода к миграциям в Go

Привет! Меня зовут Нина, и я Golang разработчик.Недавно перед нами встала задача систематизировать и унифицировать инструменты, используемые для создания миграций в различных Go-сервисах и командах.В данной статье я хочу поделиться опытом работы с миграциями в Go и провести сравнительный анализ существующих инструментов. Я расскажу о требованиях, с которыми мы столкнулись при работе с миграциями, и объясню, почему мы выбрали определенный инструмент. А также расскажу как работать с этим инструм…

  • четверг, 14 декабря 2023 г. в 00:00:18
golang
Инструкция: как поднять GitLab CI/CD на GoLang-проекте

В продолжение к заметке Инструкция: как быстро настроить GitLab CI/CD на Flutter-проекте.Больше спасибо автору, всё получилось относительно легко. Я усложнил задачу: поднял GitLab локально на Хакинтоше, прикрутил executor = "docker" вместо "shell". И началось веселье.Docker DesktopАктуальная версия 4.26.0. Не повторяйте мою ошибку: сначала сохраните данные, если есть наработки в Docker-образах. Попробовал обновить с официального сайта, через скачанный Docker.dmg - почему-то бол…

  • среда, 13 декабря 2023 г. в 00:00:15
golang
Ory Kratos — коробочный SSO

ВступлениеOry Kratos - современный cloud native сервер идентификации с поддержкой PassKeys, MFA, FIDO2, TOTP, WebAuthn, с возможностью управления профилями, схемами пользователей, входом через внешние сервисы, регистрацией, восстановлением аккаунта, с поддержкой passwordless входа. Написан на Go, headless, API-first.Целью этой статьи не является сравнение с другими популярными сервисами идентификации, которые дальше будут упомянуты, но будет рассмотрен основной функционал и мой опыт использова…

  • понедельник, 11 декабря 2023 г. в 00:00:14
golang
Python лёгкий. Go простой. Простой != лёгкий

Python и Go отличаются по свойствам, и поэтому могут дополнять друг друга.Существует распространённое заблуждение, будто простой и лёгкий — это одно и то же. В конце концов, если некий инструмент легко использовать, то и его внутреннее устройство должно быть просто понять, разве не так? И обратное тоже верно, да? На самом деле, всё как раз наоборот. В то время, как по духу оба понятия указывают на одно и то же (итог со стороны кажется лёгким), на практике такая поверхностная лёгкость достигает…

  • суббота, 9 декабря 2023 г. в 00:00:17
golang
Как настроить gRPC на примере микросервисов на Ruby и Go

В этой статье мы хотим поделиться личным опытом, как у нас получилось организовать взаимодействие микросервисов на Ruby и Go на основе gRPC. Мы расскажем:о преимуществах gRPC;об особенностях работы с протоколом;о трудностях, с которыми может столкнуться начинающий разработчик.СодержаниеЧто же такое gRPC?gRPC на практикеБиблиотеки gRPC для Ruby и GoНастройка proto-файлаРеализация методовЗапуск клиента и сервераОсобенности gRPCПодведем итогиЧто же такое gRPC?gRPC - это система удалённого вызова …

  • суббота, 9 декабря 2023 г. в 00:00:17
golang
Своё кастомное межсервисное взаимодействие с блекджеком и gRPC

Привет, Хабр! Меня зовут Ильяс. Мы с командой делаем собственный Service Mesh в Ozon Tech, и в этой статье я расскажу, как можно за вечер реализовать свое супер кастомное межсервисное взаимодействие. К концу статьи мы с вами напишем современные алгоритмы балансировки, настроим канареечные деплои, а также узнаем, как реализовать кучу других супернеобычных механизмов межсервисного взаимодействия на основе, не поверите, библиотеки gRPC :D. И да, мы с моей командой уже раскатили это на весь Ozon T…

  • суббота, 9 декабря 2023 г. в 00:00:16
golang
Потрошим golang: как устроена память

Привет, меня зовут Стас, и я работаю в VK Cloud над разработкой облачных сервисов в команде Data Masters. Сервисы, запрошенные клиентами, так или иначе должны развернуться в том виде, в котором клиенты их запросили, в адекватные сроки и без ошибок. Существует множество механизмов, позволяющих этого достичь, и еще больше существует ошибок и проблем, которые мешают в достижении этих целей. Для любого специалиста, наверное, самой грустной ошибкой будет та, которая рождается из его незнания исп…

  • пятница, 8 декабря 2023 г. в 00:00:19