После многих лет работы с Java я привык к определенному уровню «комфорта». Если сервису не хватает памяти — мы просто подкручиваем Xmx. Если он тормозит — добавляем ядер. Но сейчас, погружаясь в Go и работая над своим пет-проектом Go-Pulse, я сделал открытие: в Go ты начинаешь чувствовать физический вес своего кода. В Java мы редко задумываемся о порядке полей в классе. В Go я столкнулся с понятием Data Alignment (выравнивание данных). Оказывается, от того, в каком порядке вы объявите переменные в структуре, зависит, сколько памяти она «съест» в итоге. Например, из-за выравнивания памяти такая формула для размера структуры в байтах может преподнести сюрприз: Для опытного джависта это звучит как привет из мира C++, но для Тимлида это сигнал: «Мы можем экономить 20-30% ресурсов только за счет аккуратности в коде».
В Java создание тысячи потоков (Threads) — это серьезная нагрузка на ОС. В Go я запустил в рамках своего монитора Go-Pulse сотни одновременных проверок URL, и система этого да