В Го такое будет сделать довольно просто, если знать Го на нормальном уровне и использовать паттерн worker pool. В отличие от Ноды вы сразу получите многопоточную обработку из коробки, при этом код будет выглядеть синхронным и несложным.
yxtiblin, что вы имеете ввиду под "timestamp"? Обычно этим словом называют unixtime, а он вообще не имеет в себе зоны и зону там надо учитывать только при конвертировании из человекопонятного времени в unixtime и обратно.
В каком виде время передается в контракте к другим сервисам?
Приведите пример действия, в котором получается добавление 4 часов. Прям с реальными данными.
Не очень понял, что нужно сделать. Вопрос у вас "Как преобразовать time.Time в unix" ответ на него — через метод .Unix()
Но дальше вы спрашиваете уже про таймзоны и вот тут непонятно, что вы хотите. В коде вы преобразовываете время зачем-то в unixtime и потом сразу обратно в time.Time. Зачем?
Если вам просто зону надо нужную поставить, для этого есть функция In(), в которую можете передавать нужную зону.
dodrator, Close нужно выносить в обработчик, который отвечает за graceful shutdown вашего сервиса.
Пул передается в другие пакеты с помощью DI, все верно.
Нет, этот код нужно использовать только при старте вашего приложения. Пул коннектов к базе создается один раз и потом используется все время работы приложения.
Sneiksus, если отдаленная сторона перекрывает, тут точно z-buffer. У меня нет времени по всему коду пройтись и все проверить. Возьмите какой-нибудь из рабочих примеров с z-buffer-ом и пляшите от него.
Владимир, второй пример это не деструктуризация, а костыль. Не стоит тащить в го паттерны из других языков. Будет больно и неудобно читать код другим людям.
Я не спорю, что деструктуризация это классная фича, но ее все же нет, к сожалению.