Category : golang

golang
Go 1.22: Интерактивные заметки к релизу

Вчера вышел Go 1.22, и многие новые фичи можно попробовать прямо из браузера. Давайте пройдемся по ним! Хабр не разрешает встраивать интерактивные примеры кода в статью, поэтому я сделал их внешними ссылками. Починили счетчик цикла в замыканиях Раньше переменные, объявленные в цикле for, создавались один раз и обновлялись на каждой итерации. Это приводило к ошибкам вроде использования счетчика в горутинах: // go 1.21 values := []int{1, 2, 3, 4, 5} for _, val := range values { go func() { …

  • пятница, 9 февраля 2024 г. в 00:00:21
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