Задать вопрос
  • Как связать React + GoLang?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Так же, как бэкенд на любом языке и фронтенд на любом фреймворке - по протоколу http.
    Ответ написан
    Комментировать
  • Как связать React + GoLang?

    package main
    
    import (
        "encoding/json"
        "net/http"
    )
    
    func main() {
        http.HandleFunc("/api/data", func(w http.ResponseWriter, r *http.Request) {
            data := struct {
                Message string `json:"message"`
            }{
                Message: "Привет, мир!",
            }
    
            w.Header().Set("Content-Type", "application/json")
            w.WriteHeader(http.StatusOK)
    
            if err := json.NewEncoder(w).Encode(data); err != nil {
                http.Error(w, err.Error(), http.StatusInternalServerError)
            }
        })
    
        http.ListenAndServe(":3001", nil)
    }


    В целом так же как и на node, python, dotnet)
    Делаешь небольшой сервер с endpoint, в этом случае /api/data и делаешь на него запрос с react, localhost:3001/api-data, делать запросы можно через fetch, axios. Ну и описываешь route дальше. таких роутов можно делать много, это вариант http запросов. Еще есть gRCP, ну для начала лучше разобраться с этим)
    Ответ написан
    1 комментарий
  • Как выбрать архитектуру автономного веб-приложения?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Архитектура приложения разве может быть универсальной? Она зависит от самого приложения. Автономность - это скорее отдельное свойство архитектуры, чем ее стержень, но опять же зависит от конкретной задачи.

    Например, если это приложение для ресторана, то логично предположить, что в какой-то момент у юзера может не быть связи или кончились деньги на телефоне. И если до этого удалось успеть загрузить номер заказа через WiFi, которого уже нет, то с этой информацией всё равно можно работать. Как именно - вопрос уже скорее дизайна, чем архитектуры. В противовес этому можно не заморачиваться и показывать заглушку о недоступности Интернета, но это будет бесить некоторых клиентов.

    С базой данной сложнее, конечно же. В идеале стоит дать пользователю контролировать, что именно он хочет хранить локально. Но если данных не так уж и много (больше 5 Мб, но не гигабайты), то можно и всю базу скопировать, а потом обновлять ее. Возможно, стоит сделать упор на то, как обновлять базу мелкими патчами, если это делается часто, либо тупо перезагружать всю базу заново, если это делается редко. В общем, повторюсь, архитектура и ее детали зависят от задачи, и автономность это, скорее всего, всего лишь одна фича из многих.
    Ответ написан
    6 комментариев
  • Как выбрать архитектуру автономного веб-приложения?

    @tyxeo
    дальний знакомый Мурыча
    здесь это описано: https://habr.com/ru/articles/160477/

    не используй indexedDB - это неудобно
    используй библиотеку localForage https://habr.com/ru/companies/nordavind/articles/2...
    Ответ написан
    Комментировать
  • Что нужно знать для создания собственного движка?

    GavriKos
    @GavriKos Куратор тега Разработка игр
    Нужно очень хорошо знать и понимать принципы рендера изображений, работу с опенГЛ и вот это все. Т.е. как рисуется картинка, как на нее натягивается текстура, как все это масштабируется и поворачивается, что тут в этом всем делают шейдера и прочее прочее. Чем глубже эту тему знаете - тем круче графика у движка.

    Из математики обязательно: матрицы, тригонометрия, плани/стереометрия (декартовы координаты). Без этого вообще никак - это основа основ.

    Из ЯП стандартно: алгоритмы поиска, сортировки, структуры данных (особенно деревья), ну и навык проектирования и архитектуры больших систем
    Ответ написан
    1 комментарий
  • Что нужно знать для создания собственного движка?

    Знать нужно много чего...
    Само собой программирование: C++, C#, Java или другие.
    Математика: необходимо знание основ алгебры, геометрии, тригонометрии и математического анализа.
    Физика: нужно знать основы, чтобы моделировать физические взаимодействия в игре.
    Графика: нужно знать, как создавать 2D и 3D графику, а также как обрабатывать изображения.
    Звуковое сопровождение: принципы работы со звуком, чтобы создать качественное звуковое сопровождение для игры.
    Геймдизайн: нужно иметь представление о том, как создать интересный и увлекательный геймплей.
    Сетевой код: если хотите создать многопользовательскую игру, то необходимо знать, как реализовать сетевой код.
    Оптимизация: нужно уметь оптимизировать код, чтобы игра работала быстро и без сбоев на различных устройствах.

    Ну и, естественно, уметь пользоваться поисковиком, так как искать придется много разной информации.
    Ответ написан
    Комментировать
  • Как установить Python 3.9.6 на Ubuntu 20.04 LTS?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для установки специфичных версий Python можно использовать conda https://docs.conda.io/en/latest/
    Это удобно особенно, для понижения версий софта. И вообще можно иметь бесконечное
    число конфигураций Питона под разный софт.
    Ответ написан
    Комментировать
  • Как выбрать базу данных для проекта?

    @alexalexes
    1. Если в разрабатываемой системе нет потребности производить нечеткий поиск, получать сверхбыстрый ответ на запрос в реальном времени (не более пары миллисекунд), производить аналитику данных в самых разных разрезах. У вас в потоках данных определены сущности с четкими реквизитами и сущности имеют высокую связность, то в 99% случаях вы даже не повернете голову в сторону нереляционных СУБД, будете использовать реляционные.
    2. На самом деле, просто зависит от того, как сложно администрировать СУБД в том масштабе, в которой развилась база данных. Сначала берут первую попавшуюся, или с тем, с чем освоились более-менее, а потом смотрят с течением времени, как сложно нанять нужного специалиста на администрирование, удобно ли масштабировать экземпляры баз данных при возросшей нагрузке, удобно подымать экземпляры из небытия, держать непрерывный аптайм. Вот тут уже выясняется специфика работы предметной области и необходимость переезжать на подходящее окружение.
    Ответ написан
    1 комментарий
  • Как выбрать базу данных для проекта?

    Если не знаешь, почему тебе нужна нереляционная - бери реляционную, тк наиболее гибкое и какие-то возможные проблемы будет легче всего обойти.

    Какую конкретно? Ту, которую лучше знаешь, если не можешь назвать конкретную причину, почему лучше изучить другую и взять другую. Например вот я беру postgres по-умолчанию, но вот у меня проект, который требует минимального жора ресурсов и наиболее простой инфраструктуры - тогда беру sqlite.
    Или наоборот - я понимаю, что у меня какие-то специфичные требования по консистентности и доступности, система у меня будет распределённая, а запросы у меня будут исключительно key-value, да и желательно ещё иметь возможность подписки на изменения каких-то ключей - тогда беру etcd.
    Ответ написан
    Комментировать
  • Где лучше сохранить информацию о посетителей сайта?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Очень большая - это какая? Больше 100млн записей? Тогда clickhouse (как я могу понять данные будут писаться и не обновляться). База позволит делать по данным аналитику.
    Меньше 10млн - любая классическая бд типа мускуля справится.
    Ответ написан
    2 комментария
  • Где лучше сохранить информацию о посетителей сайта?

    saboteur_kiev
    @saboteur_kiev Куратор тега Веб-разработка
    software engineer
    конечно в базе данных.
    Ответ написан
    Комментировать
  • Как искать по своим вопросам или ответам?

    Vindicar
    @Vindicar
    RTFM!
    Я обычно использую запрос вида
    inurl:qna.habr.com/q/ "@Username" Ключевые слова для поиска

    К сожалению, по URL qna.habr.com/user/Username/answers гугл не ищет, хотя в robots.txt он не запрещён.
    Ответ написан
    Комментировать
  • Как правильно писать AWS Lambda?

    inoise
    @inoise Куратор тега Amazon Web Services
    Solution Architect, AWS Certified, Serverless
    До определенного момента не играет роли. В данном случае причинами делать несколько лямбд может быть:
    - увеличение безопасности (разные права у каждой лямбды)
    - увеличение перформанса (разные подключаемые модули и разные настройки, включая память)
    - разная логика
    - поддержка разных версий
    - разделенное логирование

    В принципе, все)
    Ответ написан
    2 комментария
  • Ошибка импорта на python3.10?

    @va_k
    Если, он у вас в /usr/local/bin то скорее всего вы его сами собрали и собрали без lzma.
    Ответ написан
    1 комментарий
  • OpenCV. Почему отдельные кадры из видео весят больше чем видео?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Потому что кадры в массивах хранятся в несжатом виде, а исходный видео-ролик сжат кодеком.
    Кодеки сейчас довольно сложные, у них много параметров сжатия и нетривиальные алгоритмы. Вы один и тот же ролик можете расжать и сжать по новой, а в результате получите совсем другой объём и даже немного отличающийся контент, ведь сжатие происходит обычно с потерей качества.
    Ответ написан
    Комментировать
  • Какой язык или направление подойдет для программирования на компе с 4гб оперативы?

    axifive
    @axifive
    Software Engineer
    backend или системное программирование.
    Но лучше просто добавить оперативки и уже выбирать направление по душе. Цена вопроса 1-3 тысячи за 4-8 гб модуль (DDR2 или DDR3, надо смотреть какую поддерживает материнская плата).
    Ответ написан
    2 комментария
  • Как ускорить запрос Select живом поиске?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Если поисковый запрос начинается с символа %, то индекс толком не используется.
    Вам нужен либо fulltext index и соответствующий запрос, либо сторонний поисковый движок типа эластика или мантикоры

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

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Никак. Выбор инструмента - это задача тимлида и/или техлида. Т.е. ведущего/главного разработчика, отвечающего за принятие ключевых технических решений. Ваша задача, как заказчика, четко оформить требования, ограничения и сформировать начальное ТЗ и описание, что вам требуется от проекта, прототипы интерфейса, например. Без вникания в технические детали. Т.е., "хочу чтобы были фичи такие-то и работил они так-то, ограничения такие-то, требования такие-то". Далее уже задача найти разработчика/команду с большим или достаточным для данного проекта опытом. Далее из начального ТЗ формируется полноценное техническое задание: описывается весь требуемый функционал, рисуется дизайн, прописываются требования, ограничения и прочие хотелки. И на основе ТЗ, тим/тех лид уже подбирает/подбирают наиболее оптимальные и конкретные инструменты и решения, основываясь на собственном опыте и знаниях для конкретно этой задачи. Например, если человек хорошо знает несколько разных инструментов и есть достаточный опыт их использования - он может реализовать проект используя любой из них как одинаково хорошо, так и одинаково плохо. У разных ЯП и фреймворков свои плюсы и минусы. Далее из ТЗ формируется более детальное ЧТЗ и происходит разработка проекта.

    Вот вы говорите:
    Нужно будет выполнять много запросов к БД

    Важная быстрая скорость работы нашего сайта

    Много/быстро это сколько? 100 запросов в час? 1000 в минуту? 1М в секунду? Загрузка страницы за 30/10/1с или даже 100мс? А к какой именно БД? Какая характеристика самих данных и какого типа запросы? На какое количество соединений? В каком регионе? Есть ли там тяжелые или еще какие-то вычисления? Медиа файлы - картинки, видео? Тут очень много нюансов. В идеале следует определиться с конкретными значениями/параметрами и их описать в ТЗ. Ну или определить примерное, а фактическое значение определить на стадии прототипа/MVP и/или провести какое-то исследование/тестирование. Можно потратить десяток лямов на написание крутого кода на го/расте/С++/ассемблере в течении года и все будет летать на простейшем сервере. А можно купить свой сервер за лям (ну, условно, конечно), нанять питонщика или PHP-ника за 300к и он за пару-тройку недель добьется такого же результата. Большинство веб-задач сегодня достаточно просто или с минимальными усилиями решаются абсолютным большинством решений для веба. Да, у всех решений есть свои плюсы и минусы.

    Безопасность от всяческих XSS и SQL атак.

    Вот с этим проще: использовать популярные OpenSource решения, регулярно проводить тесты, нанять отдельно опытного разработчика, красноглазика и пентестера - и тратить на них деньги, пока деньги не кончатся или не будет достигнут необходимый уровень безопасности. Безопасность противоположна удобству, защита отстает на шаг от атак. Риск есть всегда и надо просто быть готовым к последствиям и иметь запасной плат хотя бы в общих чертах.

    А так - уже правильно посоветовали сразу брать дот-нет, т.к. у вас требование к использованию конкретной библиотеки для дот-нета.
    Ответ написан
    1 комментарий