В мире Java Enterprise мы привыкли мыслить категориями «бизнес-логики». Память? Ну, выделим еще 4Гб на контейнер, делов-то. Но когда ты переходишь в Go, понимаешь: каждый байт имеет цену, и в масштабах компании эта цена может быть очень кусачей.
🐘 Наследие Java: «Память — забота коллектора» За 17 лет в Java я привык, что Object — это база. Но у этой базы есть «налог». Каждый объект в JVM имеет заголовок (header), который занимает 12–16 байт. Добавьте сюда выравнивание (padding), и вот ваша маленькая структура из двух полей превращается в «толстяка». Когда у вас микросервисная архитектура и сотни инстансов, этот «налог на воздух» суммируется в счета за облака с пятью нулями. В Go всё иначе. Здесь нет «тяжелых» объектов в джавовом понимании. Структуры лежат в памяти именно так, как вы их описали. Почему это важно для Тимлида? Представьте, что вы оптимизировали структуру данных, уменьшив её размер на 24 байта. Смешно?
А теперь умножьте это на 10 миллионов сообщений в очереди или на 100