• Как в Go при запуске программы открывать терминал?

    @bodrich
    Если простой вывод на экран терминала, то fmt.Println()
    package main
    
    import (
    	"fmt"
    )
    
    func main() {
    	fmt.Println("Hello world!")
    }
    Ответ написан
    1 комментарий
  • Как в Go при запуске программы открывать терминал?

    hOtRush
    @hOtRush
    Терминал это стороннее приложение, которое никакого отношения к исполнению программы не имеет, и выводить туда сообщения она собственно тоже врядли сможет.

    Когда ты запускаешь бинарник го из терминала, этот терминал просто перехватывает его stdout. Когда ты из приложения откроешь терминал, этому терминалу нечего перехватывать, потому что приложение запущено из другого окружения. Можешь конечно сначала запустить бинарник, который откроет терминал и в этом терминале запустит другой бинарник. Хотя я конечно могу ошибаться)

    a88.jpg
    Ответ написан
    Комментировать
  • Как на GO спарсить инфу с сайта и найти определенную фразу?

    @vadimuar Автор вопроса
    Мой код по этому вопросу.
    Спасибо, GLaDosSystem.
    code
    package main
    
    import (
    	"fmt"
    	"io/ioutil"
    	"log"
    	"net/http"
    	"regexp"
    )
    
    func main() {
    	resp, err := http.Get("LINK")
    	if err != nil {
    		log.Fatalln(err)
    	}
    
    	body, err := ioutil.ReadAll(resp.Body)
    	if err != nil {
    		log.Fatalln(err)
    	}
    
    	tm, err := regexp.Match("TEXT", []byte(body))
    
    	if tm {
    		fmt.Println("true")
    	} else {
    		fmt.Println("false")
    	}
    }
    Ответ написан
    Комментировать
  • Как обрабатывать код ошибки к базе?

    db.Exec возвращает интерфейс error, вам нужно его попробовать привести к *pq.Error, чтобы обработать.
    _, err := db.Exec(insert)
    if err != nil {
        if pgError,ok := err.(*pq.Error); ok {
            // Достаём код из переменной pgError
        } else {
            // Пришедший тип не является *pg.Error
        }
    }


    И самое главное!
    НИКОГДА не используйте Sprintf для формирования запроса, вы открываете SQL Injection в вашем коде. Используйте возможность подстановки, которую даёт вам пакет database/sql
    db.Query("select id, name from users where id = ?", 1) // Вот так, например
    Ответ написан
    Комментировать
  • Как постепенно перекочевать из Web в Machine Learning максимально безболезненно?

    KaaPex
    @KaaPex
    неумеха
    Сам начал потихоньку углубляться в эту область, скажу сразу нужна математическая база, комбинаторика, теория вероятностей, статистика, линейная алгебра, матан. На курсере есть специализация от Яндекса, а так же как выше сказали от Эндрю НГ (он кстати вообще для полных даунов все разжевывает досконально) и у нег осейчас вышла новая специализация по нейронкам. Начни с этого, потом поймешь интересно ли тебе это или чисто как хобби. А дальше можно вообще пойти в сторону хадуп, спарк и Scala как вариант.
    Ответ написан
    Комментировать
  • Как сделать удобную разработку?

    Fragster
    @Fragster
    помогло? отметь решением!
    Завести на сервере git, разрабатывать локально, при определенной степени готовности "заливать на прод" из того же репозитория.
    Ну и небольшой скрипт-деплойку, который делает все, что нужно.
    Ответ написан
    Комментировать
  • Перспективы у языка GO?

    Tyranron
    @Tyranron
    По поводу сложности языка.
    Просто оставлю это здесь.
    Ответ написан
    2 комментария
  • Как писать много кода, оставляя его простым, как в начале?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    1) Документируй
    2) Абстрагируйся всегда максимально
    3) Пиши классы по принципу "черного ящика"
    4) Один класс решает одну конкретную задачу, не стоит городить комбайны.
    Ответ написан
    5 комментариев
  • Go + Nginx: научите использовать правильно

    Tyranron
    @Tyranron
    как лучше обращаться к Go, через Proxy или FastCGI?

    И так и так хорошо. Я все же предпочитаю вариант проксировать запросы на Go.

    Не могу проверить вообще, так как на рабочей машине Windows.

    Это не проблема, поставьте виртуалку и вперед. В конце-концов: личный опыт лучше любых объяснений.

    И ещё очень странный вопрос: нужно-ли при таком подходе компилировать Go? Просто где-то видел пример кода, когда обращаются к исходному файлу с расширением .go.

    Компилировать нужно, особенно в случае большого приложения.
    Да, можно сделать:
    go run file.go
    Но, во-первых, код все равно компилируется в бинарник и выполняется при таком подходе, просто это происходит в папке с временными файлами и как бы скрыто от Вас.
    Во-вторых, этот подход не катит, если в папке с проектом больше файлов нежели file.go (имеется в виду на уровне package main).
    В-третьих, это обязует Вас иметь установленный Go соответственной версии на production серверах, когда обычный бинарник этого не требует.
    В-четвертых, а как быть в таком случае с демонизацией и zero downtime reloads? Да, можно, но неудобно, учитывая что каждый раз нужно будет перекомпиливать.
    Лучше скомпилировать один раз и не заморачиваться.
    Команда go run больше подходит для небольших файлов аля скрипт для выполнения одноразовой работы и тому подобное.

    Прошу не кидать камнями, я только учусь правильному написанию веб-сайтов на Go.

    Учиться - всегда полезно, никто камнями кидать не будет.
    Ответ написан
    5 комментариев