• Golang подходит ли для создания сайтов?

    @MadridianFox
    Web-программист, многостаночник
    1) Go компилируемый, само собой скорость выше, но если вы на маленьком сайте упираетесь в скорость исполнения кода, то проблема скорее в коде, и выбор более быстрого языка избавит вас только от симптома, но не от болезни
    2) на seo влияет только то ЧТО вы отдаёте пауку. Не важно на каком языке пишется программа, которая отдаёт html
    3) Программа написанная на go сама работает как сервер. Более того, это не какой-то сервер приложений, как например tomcat, нет, вы сами будете писать цикл обработки входящих соединений - т.е. вам необходимо этот самый серер реализовать. В отличие от php+apache, где в качестве сервера выступает apache, который при необходимости вызывает php. Ставить ли apache или nginx перед go сервером вы решаете сами.
    4) Поддерживает. На скорость работы СУБД не влияет то, на каком языке написана программа, которая к ней обращается.
    5) Фреймворков уровня Yii2 или Symfony не наблюдается. Ситуация такая же как и с NodeJS - что-то есть, но комбайнов нет.
    6) Если что-то может слушать соккет - на этом можно написать сайт. Любой. Другое дело, что сайты визитки на Go не пишут (только ради забавы), а крупные сайты вообще имеют сложную архитектуру, такую что язык уже не имеет значения.
    7) Для php разработчика - да. Как минимум вы меняете скриптовый язык на компилируемый. Это значит что любое изменение кода требует компиляции, остановки работающего сервера, загрузки бинарника на его место и запуск. Кроме того вы меняете Stateless модель работы кода на полноценно работающую программу. Если на php у вас скрипт запускался заново при каждом http запросе, то программа на go запускается один раз и после этого принимает множество запросов.
    Ответ написан
    10 комментариев
  • Как добавить заголовки к http запросу при помощи golang?

    Примерно так
    func makeRequest() error {
    	req, err := http.NewRequest(http.MethodGet, "https://habr.com", nil)
    	if err != nil {
    		return err
    	}
    
    	req.Header.Add("User-Agent", "mySuperTestApp v1.0")
    
    	res, err := http.DefaultClient.Do(req)
    	if err != nil {
    		return err
    	}
    	defer res.Body.Close()
    	if res.StatusCode != http.StatusOK {
    		return fmt.Errorf("wrong status code: %d", res.StatusCode)
    	}
    
    	body, err := io.ReadAll(res.Body)
    	if err != nil {
    		return err
    	}
    
    	fmt.Println(string(body))
    	return nil
    }
    Ответ написан
    Комментировать
  • Выполнение/вызов функции из Go файла при нажатии на кнопку html?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    Алгоритм у вас будет примерно таким...
    При нажатии на кнопку у вас будет вызвана функция (обработчик события onClick у кнопки).
    В этой функции вы сделаете AJAX запрос по протоколу HTTP на ваш сервер, где запущено ваше ПО на Go.
    В main.go вы запускаете HTTP сервер, который примет запрос от вашей функции JavaScript, обработает его и ответит.

    Разберём самый простой вариант с методом GET, чтобы вам было проще тестировать.

    На сервере (своём компьютере) запускаете main.go примерно такого содержания
    package main
    
    import (
        "fmt"
        "net/http"
    )
    
    func helloHandler(w http.ResponseWriter, req *http.Request) {
        fmt.Fprintf(w, "hello\n")
    }
    
    func main() {
        http.HandleFunc("/hello", helloHandler)
    
        http.ListenAndServe(":8081", nil)
    }

    Этот сервис будет слушать порт 8081 любого IP адреса на сервере, где будет запущен.
    Предположим, что вы тестируете на своём компьютере, в этом случае для проверки вам нужно в браузере откройте url `127.0.0.1:8081/hello`
    После этого вы должны увидеть в ответе просто текст: "hello".
    Когда этот этап будет завершен - вы сможете перейти к вызову этого URL уже из JavaScript.
    Для этого можете использовать то, что вам привычнее, если такого нет - можете воспользоваться этим примером
    const req = new XMLHttpRequest();
      const url='http://127.0.0.1:8081/hello';
      req.open("GET", url);
      req.send();
      req.onreadystatechange=(e)=>{
        console.log(req.responseText)
      }

    PS: Если не понятно или что-то не получится - пишите, помогу разобраться.
    Ответ написан
    21 комментарий
  • Как в столбец SQL-таблицы записать массив?

    @mletov
    Можно запихнуть в поле, например, JSON или XML. Но если вам нравится подобный подход, то лучше сразу посмотреть в сторону NoSql, скажем, какой-нибудь монги, и не мучить реляционные БД.
    Ответ написан
    Комментировать
  • Как в столбец SQL-таблицы записать массив?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    надо сделать еще одну таблицу из двух полей.
    вставить данные в первую, получить id
    и записать во вторую столько строк, сколько элементов в массиве
    в виде полученный выше id - элемент массива

    так работают базы данных
    Ответ написан
    Комментировать
  • Как в столбец SQL-таблицы записать массив?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега SQL
    Седой и строгий
    Не надо в столбец записывать массив, это идёт в разрез с принципами работы реляционных баз данных и нарушает нормализацию.
    Ответ написан
    2 комментария
  • Как спарсить данные?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    json.streams[0].codec_type
    Ответ написан
    Комментировать
  • Текст накладывается сам на себя?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Открываете файл в режиме для записи - весь предыдущий контент удаляется. Вам подойдет режим "a"
    Ответ написан
    Комментировать
  • Как сделать match отдельных слов regex?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Использовать \b для отметки границы слова:

    \breg\b

    https://learn.javascript.ru/regexp-boundary
    Ответ написан
    3 комментария
  • Как делать рассылки и смотреть подписчиков в боте Telegram, написанном на Python?

    desaki
    @desaki
    пишу ботов для телеги
    Как узнать сколько подписчиков?:
    К сожалению, узнать сколько подписчиков в боте - невозможно.
    Но, есть другие варианты, допустим, база данных, с помощью базы, вы можете вести подсчёт пользователей в боте.

    Возьмём к примеру команду /start, при нажатии на неё:
    1. Если пользователь нажал впервые, то прибавляем +1 к значению в базе.
    2. Если пользователь уже не впервый раз нажимает, то просто игнорируем.

    Как делать рассылки?:
    В этой ситуации тоже нужна база данных.
    Возьмём снова команду /start:
    1. Когда пользователь впервые нажимает, добавляем его в базу.
    2. Создаём другую любую команду, с помощью которой будем делать рассылку:
    2.1 В этой команде мы пробегаемся по всем юзерам в базе и рассылаем им нужное сообщение

    Mongodb - хорошая база для этого, думаю разберётесь.
    Если что-то не поняли, в коментариях постараюсь объяснить
    Ответ написан
    2 комментария
  • Есть ли разница между унарным плюсом и parseInt?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Понятно, что читать спецификацию (+, parseInt) вы вряд ли будете, раз не смогли отличия хотя бы погуглить, так что вот вам несколько примеров разницы, а дальше думайте сами, где что использовать:

    parseInt('1!!!') // 1
    +'1!!!' // NaN
    
    
    parseInt('') // NaN
    +'' // 0
    
    
    parseInt('3.14159') // 3
    +'3.14159' // 3.14159
    
    
    parseInt('0b1000101') // 0
    +'0b1000101' // 69
    
    
    parseInt('0o273') // 0
    +'0o273' // 187
    
    
    parseInt({ valueOf: () => 666 }) // NaN
    +({ valueOf: () => 666 }) // 666
    
    
    parseInt('1000000000', 2) // 512
    +'1000000000' // 1000000000
    
    
    parseInt('99', 8) // NaN
    +'99' // 99
    
    
    parseInt('DEAD', 16) // 57005
    +'DEAD' // NaN
    Ответ написан
    1 комментарий
  • Есть ли сервисы для приблизительного анализа дохода сайта?

    MaKvc
    @MaKvc Автор вопроса
    Отчаянный веб-разработчик
    Выясняем площадку которой пользуется сайт, который мы хотим анализировать. Это можно узнать открыв исходный код страницы. Далее переходим на площадку, открываем калькулятор (в моем случае google adsense) и заполняем форму, где указываем страну, категорию и посещаемость за 1мес. Узнать эти данные можно из открытых источников, например из PR-CY. ВСЕ!
    Ответ написан
    Комментировать
  • Как сделать так чтобы в 00:00 происходило действие?

    @Drno
    засунуть нужный скрипт в crontab
    Ответ написан
    Комментировать