Category : golang

golang
Разработка на Go, верификация, DevOps и программирование микроконтроллеров на RISC-V: выбирай беспл…

Новость для тех, кто хочет сделать начало следующего года особенным для своего развития. Второй год мы запускаем бесплатные практические курсы по востребованным инженерным направлениям. К уже классическим трекам по верификации, DevOps и Go-разработке добавился новый: «Программирование микроконтроллеров RISC-V: от основ работы с открытой архитектурой до создания собственного устройства». Регистрируйтесь на курсы до 16 января 2025 года, чтобы изучить современные подходы к разработке, создать прое…

  • суббота, 14 декабря 2024 г. в 00:00:10
golang
Picostress — наш подход к нагрузочному тестированию

Привет, меня зовут Георгий Ломакин, и я инженер по нагрузочному тестированию в компании Picodata — разработчике одноимённой NewSQL СУБД. В этой статье я поделюсь своим опытом нагрузочного тестирования и расскажу, как мы строили эту практику с нуля.Мы выбираем распределённые системы за производительность и надёжность. Однако без постоянного нагрузочного тестирования и анализа отчётов после него, и то и другое лишь обещания. Конечно же, нагрузочное тестирование обязательно и в нашей команде, разр…

  • пятница, 13 декабря 2024 г. в 00:00:15
golang
5 паттернов проектирования в Go на примере котиков

Привет, Хабр! Сегодня мы рассмотрим реализацию паттернов проектирования на Go, и, чтобы было не скучно, возьмем главными героями котиков. Будем разбирать 5 популярных паттернов: Singleton, Factory Method, Strategy, Observer, Decorator. SingletonПаттерн будет хорош тогда, когда в компании есть один кот, который отвечает, например, за доступ к единственной миске с едой, мы хотим быть уверены, что он существует в единственном экземпляре, и все остальные обращаются к нему как к глобальному ресурсу.…

  • четверг, 12 декабря 2024 г. в 00:00:07
golang
Go: фокусы трассировки

ВведениеДоброго времени суток!Гошка знатна не только простотой реализации многопоточности, но и мощными встроенными инструментами мониторинга и тестирования. Одним из таких инструментов является трассировка. На эту тему есть множество статей. Казалось бы, что здесь обсуждать? Случится авария - выполнишь несложную команду, и всё станет понятно. Тем не менее, получить трассировку - полдела. Необходимо ещё её правильно понять, т.к. некорректное восприятие может, в лучшем случае, вызвать некоторое …

  • четверг, 12 декабря 2024 г. в 00:00:07
golang
Клиентоцентричность с точки зрения Go-разработчика и причем тут рефлексия

Когда всё, что делает компания — от продуктов, услуг и до обслуживания — направлено на то, чтобы клиент был доволен и возвращался снова, все команды объединяются вокруг единой цели — смотреть на задачи и искать решения с точки зрения проблем и нужд конечного клиента.  Я Александр Шакмаев — технический лидер в Cloud.ru. Поделюсь опытом нашей команды: расскажу, как с помощью gRPC-интерцепторов и рефлексии команда Go-разработчиков может изменить продукт и улучшить пользовательский опыт.Сразу отмеч…

  • среда, 11 декабря 2024 г. в 00:00:08
golang
Способ организации gRPC контрактов и их автоматизация для микросервисов

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

  • вторник, 10 декабря 2024 г. в 00:00:12
golang
Решаем задачу моментальной навигации по коду для любого коммита

Привет, Хабр! Меня зовут Ольга Лукьянова, я работаю в Yandex Infrastructure, в команде, которая делает системы, сервисы и инструменты для разработчиков. Недавно Яндекс анонсировал новый продукт SourceCraft, который уже собирает вокруг себя сообщество. Последний год я руковожу группой навигации по коду этого проекта. Мои коллеги на конференциях уже рассказывали про планы развития SourceCraft — платформы от Яндекса для создания исходного кода, управления версиями, тестирования, сборки, развёртыва…

  • вторник, 10 декабря 2024 г. в 00:00:12
golang
Сколько памяти нужно в 2024 году для выполнения миллиона конкурентных задач?

Помните сравнение потребления памяти для асинхронного программирования на популярных языках 2023 года?Мне стало любопытно, как поменялась ситуация за один год на примере самых новых версий языков.Давайте снова проведём бенчмарки и изучим результаты!БенчмаркПрограмма для бенчмаркинга будет той же, что и в прошлом году:Запустим N конкурентных задач, каждая задача будет ждать в течение 10 секунд. После завершения всех задач программа завершается. Количество задач указывается как аргумент командной…

  • воскресенье, 8 декабря 2024 г. в 00:00:07
golang
Обзор пакета unsafe: как обходить ограничения Go (но лучше этого не делать)

Когда вы впервые открываете Go, вас встречает строгая и безопасная среда: никаких сюрпризов, сегфолтов, фишек с указателями. Всё строго, как в хорошо организованной организации. Но есть в этом языке лазейка, которая ломает весь этот порядок и это — пакет unsafe.Что такое пакет unsafeС его помощью можно делать вещи, которые язык обычно запрещает.Вот что он позволяет:Конвертировать типы указателей.Достучаться до приватных полей структур.Лезть напрямую в память и изменять данные.Работать с выравни…

  • суббота, 7 декабря 2024 г. в 00:00:14