Category : golang

golang
Domain Driven Design в Go – это почти не больно

Как выглядят паттерны DDD (Domain Driven Design) в большом проекте? А самое главное, стоит ли их вообще использовать? Рассмотрим, какими инструментами можно реализовать DDD на Go и оценим, насколько это больно.Меня зовут Илья Сергунин, я backend-сочинитель в Авито: занимаюсь тем, что передаю смартфоны в хорошие руки. В этой статье попытаюсь объяснить, как можно натянуть DDD на Go без синтаксического сахара и магии Java-подобных языков, и без больших крутых ORM c Data mapper, которые также отсу…

  • пятница, 9 февраля 2024 г. в 00:00:20
golang
Задача «Получить значение у N url из списка» с собеседования на Go

На данный момент я нахожусь в активном поиске нового проекта, поэтому активно хожу на собеседования.Решил поделиться своими мыслями о решении задачи, которую (как мне кажется) часто дают на собеседованиях. ЗадачаНаписать функцию, которая принимает несколько url адресов, а отдает сумму байт body ответов списка адресов и ошибку, если что-то пошло не так (если произошла ошибка, нужно вернуть ошибку как можно скорее, значение - не важно).Интересно обсудить варианты решения? Итак, у нас отдельная п…

  • четверг, 8 февраля 2024 г. в 00:00:20
golang
Где изучать Golang в 2024

Бесплатные ресурсы Golang 20242024 году изучение языка программирования Go (Golang) остается одним из наиболее перспективных и востребованных направлений для разработчиков. Одним из главных преимуществ изучения Golang в 2024 году является его широкое применение в различных областях разработки программного обеспечения. Он идеально подходит для создания масштабируемых и высокопроизводительных веб-серверов, микросервисов и распределенных систем. Благодаря своей простоте и эффективности, Golang та…

  • четверг, 8 февраля 2024 г. в 00:00:19
golang
Делим монорепозиторий библиотеки Go на отдельные модули и адаптируем их для локальной разработки

Привет! Меня зовут Илья Сергунин, я Senior Software Engineer из продуктовой команды Авито. Наша библиотека Go состоит из абстракций для работы с транзакциями в Go и нескольких драйверов для баз данных. Сначала там было всего четыре имплементации, и для всех драйверов подходил единый модуль. Потом добавились ещё три драйвера, и у каждого была разная версия Go, единого модуля уже не хватало. Тогда я использовал теги сборки (build tags), но реальная версия языка для каждого драйвера не соответств…

  • вторник, 6 февраля 2024 г. в 00:00:12
golang
Делаем RPG на Go: часть 0

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

  • понедельник, 5 февраля 2024 г. в 00:00:14
golang
Ускоряем Go: известные и не очень методы оптимизации и связанные с ними штуки

Привет, Хабр)В этой статье хотел бы поделиться приёмами, которые позволяют повысить производительность Golang-кода. Некоторые из этих вещей довольно известные и их могут делать за вас линтеры, например go-critic, noctx (эти 2 касаются defer и отправки запросов без контекста). Обсудим: простые правила, которые не стоит забыватьмифы о производительности в духе "А я слышал, что X повышает скорость на Y%"более интересные штуки, типа замены switch на map, проведём пару тестов, поэксперимент…

  • суббота, 3 февраля 2024 г. в 00:00:14
golang
Проверяем актуальность go.mod и go.sum

Бывает на практике, что приходится ревьюить запрос на слияние, и видеть подозрительные изменения go.mod и go.sum, возможно меняется только один файл, и возникает закономерный вопрос, а нужны ли эти изменения, или это случайно попало в коммит, быть может коллега забыл добавить другой файл в коммит или запустить go mod tidy после удаления зависимости? А может быть это ты сам в предыдущих коммитах добавил лишние изменения?В общем возникают вопросы, и чтобы их стало меньше можно автоматизировать…

  • пятница, 2 февраля 2024 г. в 00:00:15
golang
Погружение в Web RTC или пишем SFU своими силами

WebRTC — это браузерная технология, предназначенная для передачи потоковых данных между браузерами или приложениями с использованием технологии двухточечной передачи (point-to-point transmission).Web RTC уже давно имеет поддержку в большинстве браузеров, поэтому обходить стороной технологию довольно глупо. Вот и я так подумал, поэтому в качестве пет-проекта решил написать sfu-сервер на golang. О самом Web RTC Здесь я кратко пробегусь по основам работы Web RTC, кому интересно будет залезть чуть…

  • четверг, 1 февраля 2024 г. в 00:00:14
golang
Fitter —  сшиватель API/Website's.  Большое обновление

Добрый вечер всем!С момента выхода предидущей статьи про Fitter прошло достаточно много времени и в связи с этим я хотел поделиться обновлениями, которые были сделаны.Итак, что появилось:Написано, какое-никакое README.md , которое регулярно пополняется фишками.Добавлена возможность использования как библиотека для go. Добавлена поддержка плагинов на go.Добавлена поддержка прокси для коннекторов (server/playwright).Добавлена возможность отправки обновлений в console(stdout)/telegram/http/redis.…

  • среда, 31 января 2024 г. в 00:00:16