Задать вопрос
  • Что чаще всего пишут на Go?

    На Go мало фреймворков, потому что у Go просто невероятная стандартная библиотека. Например, с недавним обновлением библиотеки http я тупо не вижу смысла в сторонних роутерах. Не знаю почему, какая у языка магия, но мне почти всегда хочется написать своё решение, подходящее именно для этой конкретной задачи, чем лепить монстра из внешних зависимостей.

    Основной домен языка - это Web. Это и полноценные REST (и не только) API, это и отдельные узлы систем. А я, например, стал писать на Go и фронтенд, познакомившись с замечательной JavaScript библиотекой HTMX.

    Многие люди пишут на Go консольные приложения. Я часто всякие утилитки пишу вместо того, чтобы мучиться с корявым синтаксисом bash, от которого меня тошнит.

    Кстати, Докер и Кубернетес написаны на Go, но это, скорей исключение.

    Есть даже пакеты, позволяющие писать десктопные приложения.

    На Go отлично писать всяких ботов.
    Ответ написан
    2 комментария
  • Как выглядит sudoers?

    postgres не нужно прописывать в sudoers, если ты не знаешь, что именно нужно запускать через sudo от имени этого пользователя
    Ответ написан
    Комментировать
  • Почему может быть утечка памяти?

    @falconandy
    Используете GoLand? Он подсказывает:
    Possible resource leak, 'defer' is called in the 'for' loop.

    A "defer" statement invokes a function whose execution is deferred to the moment the surrounding function returns, either because the surrounding function executed a return statement , reached the end of its function body , or because the corresponding goroutine is panicking .

    Предупреждение говорит о том, что defer код будет выполнен только при завершении функции, а не итерации цикла. В вашем случае это предупреждение неактуально, но проще немного переписать код, чтобы не было "ругани":

    func (app App) Shutdown() {
    	for _, shutdown := range app.onShutdown {
    		if err := shutdown(); err != nil {
    			log.Println(err)
    		}
    	}
    }
    ...
    defer app.Shutdown()
    Ответ написан
    Комментировать
  • Как перенаправить Nginx на три разных контейнера Docker?

    ky0
    @ky0 Куратор тега Nginx
    Миллиардер, филантроп, патологический лгун
    Если контейнеры (в том числе nginx) в одной docker-сети, то направлять нужно не по localhost, а по имени контейнера и внутреннему порту.

    Если контейнеры нет возможности засунуть в одну сеть - proxy_pass можно направить на host.docker.internal.
    Ответ написан
    Комментировать