Ответы пользователя по тегу Веб-разработка
  • Выполнение/вызов функции из 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 комментарий
  • Как на 1 хостинге запустить несколько веб скриптов, на разных субдоменах?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    Пишите Go lang сервисы, которые вам нужны.
    Каждый сервис слушает разный порт.
    Ставите веб сервер, например nginx и настраиваете виртуальные хосты, которые прокируют запросы к Go lang сервисам.
    Конфиг nginx'a будет выглядеть примерно так
    server {
        listen *:80;
        server_name yourdomain1.com; # домен, который вам нужно
        ...
        location / {
            proxy_pass http://127.0.0.1:9000; # IP адрес и порт, на котором слушает сервис Go lang.
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    
    server {
        listen *:80;
        server_name yourdomain2.com; # домен, который вам нужно
        ...
        location / {
            proxy_pass http://127.0.0.1:9001; # IP адрес и порт, на котором слушает сервис Go lang.
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    Ответ написан
    1 комментарий
  • Где плотно используется Python в вебе?

    EvgenyMamonov
    @EvgenyMamonov
    Senior software developer, system architect
    Например Python+Django используется в Instagram
    https://instagram-engineering.com/web-service-effi...

    YouTube, DropBox, Uber, Pinterest, Яндекс, Facebook - все они используют Python.

    Знаменитая фраза разработчиков Google: «Python where we can, C++ where we must», переводится как: используем «Python ― где можем, C++ ― где должны»

    Да, переписывать части на Си можно, делается это достаточно редко.

    Если будете писать под большие нагрузки - можно посмотреть в сторону Go lang.
    Ответ написан
    5 комментариев
  • На чем писать проект для аналитики?

    EvgenyMamonov
    @EvgenyMamonov
    Senior software developer, system architect
    Если нагрузка будет маленькая - пишите на том, что лучше знаете.

    Если нагрузка будет большая - советую посмотреть в сторону Go + Clickhouse

    ClickHouse изначально разрабатывался для обеспечения работы Яндекс.Метрики, второй крупнейшей в мире платформы для веб аналитики, и продолжает быть её ключевым компонентом. При более 13 триллионах записей в базе данных и более 20 миллиардах событий в сутки, ClickHouse позволяет генерировать индивидуально настроенные отчёты на лету напрямую из неагрегированных данных.
    Ответ написан
    Комментировать