Ответы пользователя по тегу Go
  • Как зашифровать http запрос?

    Если необходимо для какой-то цели защифровать адрес сервера назначения пакета, то это делается легко с помощью библиотеки crypto. Только как будет происходить преобразование доменного имени в сетевой адрес для маршрутизации в сети?
    Обычно для сокрытия адреса назначения приватного сервиса применяют туннелирование.
    Ответ написан
    4 комментария
  • Как обновлять данные, без запросов в бд?

    мне нужно обновлять данные, которые были измененные в бд, но не хочу обращаться данными к бд
    не хочешь не обращайся дело хозяйское. Все эти базы данных для слабаков, раньше их вообще не было и нормально в космос летали. Даже на Луну слетали на ПО без всякиз баз данных. Храни и обрабатывай прямо в своём приложении. Я почему так говорю, сталкивался с такими решениями.
    Ответ написан
    1 комментарий
  • Golang в чём смысл?

    Assembler по идее всех быстрее и сильнее, но благодаря умелому говнокодингу на нём, полученный код может быть легко отчпокан хорошо написанным скриптом на питоне. И сливать будет по страшному бенчам, написанных для проверки сферичности коней в адронном вакууме.
    Ответ написан
    Комментировать
  • Как проверить, есть ли элемент в массиве без цикла?

    Всегда есть рекурсия! Много и разной.
    Ответ написан
    Комментировать
  • В каких случаях стоит GORM использовать?

    В каких случаях стоит GORM использовать?
    Когда отчаялась работать с каким-то специализированным драйвером к выбранной базе. Ко многим базам есть куча других ORM-в. Некоторые заходят, некоторые просто выворачивают своим синтаксисом или работой (у меня db не передавал в базу кракозябры из UTF, пришлось искать замену)
    Ответ написан
    Комментировать
  • Как на 1 хостинге запустить несколько веб скриптов, на разных субдоменах?

    Как на 1 хостинге запустить несколько веб скриптов, на разных субдоменах?
    Просто запускаешь и оно работает. Можно совсем без контейнеров.
    Ответ написан
    Комментировать
  • Текущее положение Golang в машинном обучение?

    Текущее положение Golang в машинном обучение?
    Довольно неплохое. Постепенно обрастает добротным ПО. Особенно выгодно смотрится он, когда проект становится сложным и нагруженным. Когда траты на разогрев воздуха в ДЦ станут ощутимее прибыли от этого ML (Python однопоточный и вы хоть завалитесь ядрами, цимес как от многопоточности как на Go не получите), когда ты окончательно околеешь от катавасии с версиями Python, их совместимостью и несовместимостью с библиотеками, когда станет вопрос о простом и легком масштабировании (какие сложности с организацией run time для приложения на Go?), когда быстрый hot-fix может быть ещё той лотереей (динамическая типизация может подосрать в самом неожиданном месте), тогда начнёшь думать и ломать свой ИИ.
    Если посмотреть на положение дел в текущий момент, то всякие компании типа Ozon, или Avito (наверное слышал о таких) очень активно набирают разрабов даже шапочным знакомством языка Go (подробности смотри на hh.ru) в том числе и в отделы ML и антифрода.
    Ответ написан
  • Как применить множество фильтров на входящий поток?

    имея массив фильтров
    Не надо фильтры ложить в массив)

    обработать входящий поток так, чтобы не было блокировок и в input находился обработанный поток после применения последнего фильтра?
    Каналы вам в помощь.

    То есть, по аналогии с применением pipe в командной строке.
    Да-да, каналы вам в помощь) Они примерно так и работают.

    Вообще в теле твоей функции чтения содержимого файла можно добавить вызовы анонимных функций, в которых будет описана фильтрация, или дёргать другие функции, можно написать метод (в зависимости как собираешься фильтровать), можно пойти "через каналы". По идее блокировок возникнуть не должно.
    Ответ написан
  • Создание многопользовательского сервера на го?

    Создание многопользовательского сервера на го? Задача: сделать небольшую многопользовательскую WEB игру.
    Не вижу препятствий. Есть куда более сложные проекты на это языке.

    1) раз мы делаем через WEB, то используем веб-сокеты?
    Тут дело хозяйское. Можешь хоть на webRTC делать.

    Так же, интересует максимальное кол-во игроков? Как я понимаю это 64к человек на сервер?
    Смотря какие будут сервера. Серверам вообще всё равно сколько будет на них игроков.

    2) Как стоит разделять комнаты? Делать все в одном инстансе или для каждой комнаты свой отдельный?
    На уровне MVP нет. Пусть хоть хоть как-то заработает. Потом по мере роста желательно раскидать. Чтобы можно было балансировать нагрузку: в одной комнате может быть пусто, в другой густо и надо как-то ресурсы гибко предоставлять.

    3) Если на разных инстансах (или собственно серверах), то как в итоге соединять людей в них? В БД хранить порт комнаты на сервере или как то еще?
    Есть синхронный вариант, есть асинхронный. Но лучше MVP слепить. А потом смотреть варианты. Слишком много возможных нюансов, которые надо будет брать в расчёт.

    4) Как при запуске GOшного инстанса сохранять и манипулировать им? Как указывать игрокам к какому подключаться?
    Это уже про оркестрацию. Есть один проектик как раз на Go, который этим занимается.

    PS. Под инстансом я говорю о запущеном бинарнике приложения
    Инстанс это обычно про некоторое окружение работающего приложения. Может быть виртуальная машина (в контексте Амазон), или контейнер Docker как сейчас модно.
    Ответ написан
  • Насколько Golang подходит для больших проектов?

    Насколько Golang подходит для больших проектов?
    У него это на генетическом уровне. Один из его создателей уже имел опыт создания крайне успешного языка программирования, который пошёл довольно хорошо в крупные проекты. И ещё в создании операционной системы поучаствовал. Как раз на это языке. Очень успешная ОСь получилась.

    насколько уместно использовать Go в большом кровавом энтерпрайзе-монолите на миллион строк кода со всякими REST, кэшами, работой с базой и так далее?
    У него изначально архитектурно заложено быть в лютом кровавом энтерпрайзе и даже в монолите на туеву гору строк кода. Любая СУБД по сути монолит. И на Go наверное с десяток наберётся довольно успешных баз, которые применяются в энтерпрайзе.

    Понятное дело, что для микросервисов язык подходит как нельзя кстати
    Микросервисы это методология разработки для больших, часто разрозненных проектов. И по большому счёту индиффирентно на каком ЯП будет сверстан микросервис. Хоть на ассемблере, если это оправдано. Обычно микросервисы это про несколько ЯП на проект.

    однако интересен практический опыт стартапного плана, возможные подводные камни и недостатки.
    Как бы для стартапа не рекомендуется микросервисы прям сразу. Его бы хотя бы оживить и заставить как задумывалось работать. А потом уже переходить к микросервисам. Но это отступление. Беда может выползти из прошлых навыком и знаний. Golang реализует свою модель ООП, которая не совсем понятная для тех кто писал на ООП ориентированных языках (Java, Python. PHP). Очень туго приходится после языков с динамической типизацией. Модель параллельного программирования тоже многим не сразу даётся.
    Ответ написан
    4 комментария
  • Нужно ли логировать запрос на сервер?

    Помимо фиксации запроса надо ещё писать хоть какие-то информативные данные о работе сервера (время ответа, какие-то статусы ответа на запрос). Если есть downlink или база, куда ходят за данными, очень желательно фиксировать статус подключения или ответа.
    Это просто хороший навык и правильная привычка. Когда попадёшь в серьёзную компанию, где ещё до попадания в препрод сервис гоняют тестами в хвост и гриву, будешь отхватывать лучи добра от QA или DevOps, либо твоё приложение просто развернут.
    Ответ написан
    Комментировать
  • Используется ли go для построения готовых сайтов?

    Используется ли go для построения готовых сайтов?
    Да, только не часто. Также нечасто как java, как на ruby, как на perl. Миром web разработки правят фреймфорки и CMS в большинстве своём. Тама есть готовые либы с плагИнами и ОРМ искаробки (с).

    Большая часть информации, которую я нашел предлагает писать на го микросервисы
    Микросервисы это методология абстрагированная от ЯП. И для её работы нужно выполнение определённых требований со стороны управления и разработки. Только в обыденной массе это превращается в засовывание в контейнер CMS вместе с вэб сервером (примеров тьма). С последующей гордыней, что таки освоил микросервисы. Вообще не шучу. Об этом люди на митапах рассказывают с полной уверенностью в своей правоте.

    В итоге возник вопрос используют ли го на практике для создания полноценных сайтов
    Это полноценный, качественный, продуманный ЯП (один из его создателей уже удачно поучаствовал в создании успешного ЯП и пары ОС) общего применения. Крайне вполне пригодый для написания сайтов тоже. Вот только там многопоточность, ещё статическая типизация, нет конструкции "try", значит надо думать, просчитывать поведение программы изучать основы. А это категорически плохо сказывается в навыках сетевых или консольных игр.

    (если можно то приведите примеры)?
    Держи
    Ответ написан
    Комментировать
  • Есть ли смысл для увеличения производительности использовать несколько подключений к одной БД?

    Есть ли смысл для увеличения производительности использовать несколько подключений к одной БД?
    Обычно СУБД самое медленное звено. Даже так - в подавляющем числе архитектурных решений СУБД самое медленное звено.
    Второй случай будет не только не самый производительный, но и не самый безопасный. В нём идёт обращение в двум разным базам данных db и db1. Поэтому встаёт проблема синхронизации данных между базами, а то одна может начать отдавать одни данные, а другая иные на один и тот же запрос. Синхронизация данных процесс не всегда быстрый. И пока данные не синхронизируются, придётся ждать ответа. Иначе вылезет split brain.
    Ответ написан
    Комментировать
  • Потребление памяти php и go?

    Сейчас сайт на пхп, 100 пользователей (постоянное выполнение определенных действий на серверной стороне) жрет около 500мб памяти.
    Там что ни база, ни вэб сервер не потребляют ресурсы?

    Знаю что такой же ресурс, даже в разы более функционяльный написанный на delphi сжерает 20 мб оперативки.
    Наверное потому что этот delphi компилируемый, "При создании языка (и здесь качественное отличие от языка C) не ставилась задача обеспечить максимальную производительность исполняемого кода или лаконичность исходного кода для экономии оперативной памяти" и со статической типизацией.

    Сколько же будет жрать GO? Примерно
    Прикинь. Golang со статической типизацией при его разработке "ставилась задача обеспечить максимальную производительность исполняемого кода или лаконичность исходного кода для экономии оперативной памяти", ориентирован на многопоточность. Помимо этого на нём можно написать фронт и вэбсервер.
    Ответ написан