Кажется, языков программирования уже предостаточно, но IT-гиганты продолжают плодить свои. Google, Apple, JetBrains — готовых решений хватает до отказа, а им все равно хочется иметь что-то свое, эксклюзивное. Дело в технологической необходимости, гордыне или «синдроме NIH», когда чужое не берут? Может, это попытка захватить контроль над всем технологическим стеком или хитрый маркетинговый ход для завоевания умов разработчиков? Давайте копнем глубже, чтобы разобраться. Когда старые языки мешаю…
Работая с базами данных в Go, многие из нас сталкивались с библиотекой pgx — высокопроизводительным драйвером для PostgreSQL. Однако при всей ее мощи есть одна неудобная особенность: сканирование результатов запросов в структуры может быть довольно громоздким, особенно когда речь идет о вложенных структурах или списках.Проблема неудобного сканирования в go/pgxОсновная сложность заключается в том, что при выполнении SQL-запросов и получении результатов нам часто приходится вручную сканировать ка…
Дизайн и поведение планировщика Go позволяют многопоточным программам работать более эффективно и производительно. Это возможно благодаря тому, что планировщик Go учитывает особенности работы планировщика операционной системы (OS). Однако, если многопоточная программа не учитывает принципы их взаимодействия, все преимущества теряются. Поэтому важно понимать, как работают оба планировщика, чтобы правильно проектировать многопоточные приложения.В этой статье я решил разобраться с основными механи…
Привет, Хабр!Не так давно мне удалось вернуть эксклюзивные авторские права на книгу по Go. Писалась она 3 года назад и с тех пор добавила мне немного седых волос. А все из-за неопытности и надежды на ее лучшее будущее в руках одного издательства... Чем я тогда думал отдавая все права (электронка + печатное издание) - фиг его знает, но с другой стороны, если бы не пережитый звиздец, то не начал бы процедуру возвращения авторских прав на свои книги, чтобы теперь никогда не передавать издателю эк…
ПрологНедавно я столкнулся с задачей собрать своё Go‑приложение написаное вокруг библиотеки github.com/webview/webview_go, которая является обёрткой для C/C++ библиотеки webview, для Linux, из чего вытекает необходимость использования CGO. Казалось бы, что сложного? Укажи GOOS=linux, пропиши компилятор CC= и CXX=, выполни go build — и готово. Но нет, CGO и зависимости вроде GTK превратили это в настоящий квест. После нескольких часов борьбы с ошибками вроде Package webkit2gtk-4.0 was not found …
Автор статьи Якушков Федор.Apache Kafka — это мощная распределённая платформа для обработки потоков данных, которая завоевала популярность благодаря своей способности эффективно управлять большими объёмами информации в реальном времени. В этой статье мы подробно разберём, как использовать Kafka в языке программирования Go с помощью библиотеки kafka-go. Мы рассмотрим все ключевые аспекты: …
После того как нам удалось сделать это с Node.js, занялись поиском следующей жертвы, которой после недолгих раздумий стал компилятор Go.Полгода жестоких экспериментов и удивительный результат.ВводнаяВ отличие от истории с Node.js, бекпорт последней версии Golang на Windows 7 является чисто исследовательским проектом, который был реализован ради треша и угара демонстрации наших талантов.Язык Golang слишком молодой и далек от мира Windows, несмотря на широкие возможности даже там.Поэтому просто н…
Привет, Хабр!Сегодня речь пойдёт о том, почему в Go нет const map и const slice, и что же можно с этим делать. На первый взгляд может показаться, что язык Go нас ограничивает, когда речь идёт о константах: можно объявить только числа, строки и булевы значения. Но почему же так?Основная идея констант в Go заключается в том, что их значение должно быть известно на этапе компиляции. Другими словами, компилятор должен «вшить» значение в бинарный код, чтобы во время выполнения не было никаких сюрпри…
Привет, Хабр! Меня зовут Данила Федюкин и я тимлид в X5 Digital. Руковожу командой, которая занимается рекомендациями и метчингом. Так получилось, что занимаюсь этим всю свою карьеру. Раньше — в Билайне, последние 2,5 года — в X5. На досуге пишу диссертацию.X5 Digital — один из цифровых бизнесов крупнейшего ритейлера страны. Работаем в режиме Highload с RPS в 7500 и доставляем продукты в 73 регионах страны. Мы отвечаем за онлайн-канал, то есть за всю доставку. За 2023 год доставили более 75 млн…