Кирилл Новак, под капотом интерфейс это структура, в которой есть указатель на данные и таблица виртуальных методов. Когда из интерфейса вызывается метод, он на рантайме ищется в этой таблице и к нему подкладываются данные.
Если еще туда добавлять двойной матчинг всех аргументов (как в случае с возвращаемым типом, если его матчить на интерфейс), это будет совсем медленно. Да и по философии го такие вещи принято делать явно, не скрывая за синтаксическим сахаром, чтобы быть ближе к железу.
P747, в Го нет наследования, есть только композиция (встраивание) и она работает несколько по-другому. Не советую пытаться нести паттерны других языков в Го. Лучше всего писать так, как среди гошников принято.
Считаю, что в приведенной статье показан антипаттерн (включая способ именования интерфейсов, в Го так не делают). Интерфейсы в Го следует использовать только для устранения связанности кода и ограниченно — для полиморфизма. Не пытайтесь через них костылить наследование, получится не очень и другим людям будет сложнее понимать код.
fasthttp это в целом довольно специфичная штука, нужно хорошо знать, что именно вы хотите ускорить и как, потому что иначе можно сделать даже медленнее, чем стандартный net/http
Евгений Усачев, почитал, префорк по сути создает несколько процессов, между которыми не шарится память (чтобы убрать накладные расходы го на шаринг памяти). Поэтому не работают никакие глобальные переменные (они не могут быть доступны сразу из всех процессов). Если у вас есть какой-то кэш в памяти (не Редис, а кэш в памяти самого приложения), вам в случае префорка придется создавать по экземпляру кэша на каждый форк.
У вас все сделано правильно, defer resp.Body.Close() закроет соединение как только будет return из функции.
Нужно учитывать, что bufio вычитает чуть больше из соединения, но буфер там небольшой по-умолчанию. Если у вас дочитывается прямо до конца, надо проверять алгоритм парсинга данных, возможно он действительно все пытается вычитать.
shasoftX, можно, есть инструмент "линейка", а можно в настройках включить отображение длин граней при редактировании.
Плюс, можно настраивать разные единицы измерения. Но нужно понимать, что Blender это не CAD. Если вам нужно моделирование для конструкторских целей, лучше обратите внимание на OpenSCAD, там моделировать можно путем описания моделей через встроенный язык программирования.
Евгений Усачев, это не библиотека, это приложение, которое нужно запускать с соответствующими ключами в командной строке. Это одно из самых быстрых решений, но его нужно уметь настроить. Обычно транскодинг делают через видеокарту.
Буфер он на то и буфер, что не должен вмещать в себя весь ввод. Он хранит в себе кусок ввода, чтобы уменьшить количество системных вызовов. Вам правильно в ответе подсказывают использовать пакет bufio, там все эти вещи уже сделаны за вас, просто используйте.