Использование директивы встраивания Golang

Выпущенный в версии 1.16 пакет embed дает нам новую директиву, помогающую встраивать файлы в программы Go.

В приведенном выше примере мы используем директиву //go:embed из пакетаembed, за которой следует имя файла, который мы хотим встроить.

В следующей строке мы создаем новую переменную, в которую будет помещено содержимое файла. Эта переменная может иметь тип string, []byte или FS (файловая система).

Если вы не можете придумать, как использовать эту директиву, давайте представим, что вы реализуете веб-сайт с использованием Go Fiber.

Все ваши представления находятся в папке с именем views.

Без пакета embed, чтобы наш веб-сайт работал на 100 %, нам необходимо обновлять папку двоичных файлов и представлений на каждом сервере. Это может быть много работы!!!

Но если мы используем пакет embed, все, что нам нужно сделать, чтобы наш веб-сайт работал на 100%, — это обновить двоичный файл.

Посмотрите пример:

Конечно, нам нужно измерить использование этой директивы. Использование для всего может привести нас к очень-очень БОЛЬШИМ двоичным файлам, что может быть более серьезной проблемой, чем просто загрузить папку с HTML-шаблонами внутри.