Умение работать с пакетом context является очень важным: его использование в Golang пронизывает весь код, но не смотря на это очень часто он используется формально. Контекст создается (иногда непосредственно перед вызовом функции), передается из одной функции в другую и дальше по цепочке. Для чего это делается, в чем конечная цель? Для того, чтобы ответить на этот вопрос необходимо сделать шаг назад и опереться на знания о каналах, горутинах и шаблонах работы с ними.
Рубрика «golang»
Конвейеризация: универсальный способ повышения пропускной способности
2024-12-02 в 19:15, admin, рубрики: golang, latency, pipeline, throughput, архитектура приложений, архитектура процессоров, архитектура систем, конвейер, микросервисы, пропускная способностьЧто общего между стиральной машиной, CPU и микросервисами? Все они выигрывают от «конвейеризации» (англ. pipelining).
Как писать качественные unit-тесты: процент покрытия, мутанты и работа с моками
2024-10-30 в 5:15, admin, рубрики: golang, gomock, qa, testing, качество, моки, мутационное тестирование, юнит-тестыПривет! Меня зовут Марина, я Backend-инженер в компании Авито. Сегодня я хочу поделиться собственными рекомендациями, к которым удалось прийти при работе над качеством тестового покрытия сервисов нашей команды.
Итак, дело было давным-давно, у нас было пять сервисов, около 70% покрытия, интеграционные тесты... и всё равно баги оставались неуловимыми. Шутка, конечно, все куда проще. Процент покрытия и правда выглядел неплохо, но почему тогда мы решили что-то менять?
В чём подвох процента покрытия?
Микросервисы: Почему именно gRPC?
2024-10-25 в 9:32, admin, рубрики: golang, grpc, Microservices, protobuf, RPCАрхитектура микросервисов широко распространена в современном программировании. Благодаря этой архитектуре разработчики смогут самостоятельно разрабатывать сервисы и управлять ими. Однако очень важно выбрать правильный протокол для эффективного взаимодействия между микросервисами. Здесь протокол gRPC (Google Remote Treatment Call) выделяется своей высокой эффективностью и скоростью. В этой статье мы предоставим подробную информацию о RPC и gRPC, рассмотрим преимущества gRPC в архитектурах микросервисов и продемонстрируем их различия на примерах кода на языке программирования Go.
Как подружить Gorm и PostGIS, решение промышленного уровня
2024-09-30 в 10:15, admin, рубрики: geolocation, golang, gorm, postgis, postgres, геоданныеGORM Фантастическая ORM для Golang.
PostGIS расширяет возможности реляционной базы данных PostgreSQL , добавляя поддержку хранения, индексирования и запросов геопространственных данных.
В этой статье поделимся своим опытом интеграции GORM и PostGIS, сложностями при попытке использования gorm для работы с геометрическими данными и конечно предлагаем готовое решение.
Изначально эта статья была опубликована здесь.
Задача
Реализация микросервиса, отвечающего за работу с геоданными:Читать полностью »
Особенности трудоустройства в 2024 (golang)
2024-09-30 в 6:15, admin, рубрики: backend, golang, рекрутинг, трудоустройство, трудоустройство в itЗа свои 15+ лет в разработке я прошёл наверное 100+ собеседований — и почти четверть из них в этом году, в течение последнего месяца:) Что‑то необычное происходит — подумал я — и решил поделиться наблюдениями — может вы тоже что‑то заметили? А может это просто кому‑то чуть поможет в поиске работы или наоборот в рекрутинге.
Бэкграунд
Всем привет, этой мой первый пост на данной платформе, прошу любить и жаловать.
Трассировка — это важный инструмент для мониторинга и диагностики микросервисов. Она позволяет понять, как запросы проходят через систему, где возникают узкие места, и как взаимодействуют различные компоненты приложения. В этой статье я расскажу про свой опыт, как интегрировал трассировку в сервис на Go, использующий GORM.
1. Основы трассировки с OpenTelemetryЧитать полностью »
Что будет, если скрестить конструирование компиляторов, DDD и Clean Architecture? Опыт HydraScript
2024-09-03 в 14:01, admin, рубрики: clean architecture, compiler design, compilers, csharp, DDD, design patterns, dotnet, github, golang, open source, ruvds_статьи, solid, TypeScriptВ этой статье я расскажу о двухлетнем эксперименте, проводимом над моим пет-проектом, интерпретатором ЯП HydraScript. Почему к разработке из области системного программирования были применены промышленные практики, и зачем конструированию компиляторов нужен Domain Driver Design с чистой архитектурой?
Написание функционального тестирования в Go
2024-08-17 в 7:15, admin, рубрики: Go, golang, тест, тестирование, тесты, функциональное тестирование, функциональное тестирование по, функциональные тестыМногие пишут юнит-тесты, но не все знают, как писать функциональные. В этой статье будут библиотеки, фишки про функциональные тесты, а самое главное - попрактикуемся их писать на примере Rest API