• Как правильно реализовать архитектуру AJAX приложения?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Простите меня заранее, но я вижу, что Вы хотите много чего, не изучив даже малой доли того, что требуется для построения грамотной архитектуры.
    Я не могу Вам что-то посоветовать, поскольку я не знаю архитектуры существующего у Вас приложения.

    Могу сказать, как использую сам: есть собственная либа includeHTML простая, как ведро... Но я даже не думал, что кому-то она будет нужна. Сейчас решил сделать роутинг для неё и контроль загруженных ресурсов (чтобы не грузить по несколько раз одно и то же).

    Посмотрите принцип работы библиотеки: автор - я и отвечу на все вопросы, есть предложения по улучшению - также, пишите.
    Ответ написан
    6 комментариев
  • Как правильно реализовать архитектуру AJAX приложения?

    @davidnum95
    А вы знатный велосипедист.
    - не знаю как правильно обрабатывать и контролировать состояние AJAX запросов (на одной странице их может быть несколько) - как я теперь понимаю, нужно использовать PROMISE (но пока не понял, как это работает - достаточно сложно воспринять)

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

    react stateful components
    - фактически view совмещен с контроллером, из-за этого уже сейчас сложно работать с файлами контроллеров - они разрастаются и содержат много html - кода. Кроме того, они завязаны на глобальные данные, про которые я уже писал и получается, что ни о каком модульном подходе не приходится говорить. Как от этого избавиться при текущей архитектуре не знаю.

    react-redux, react decomposition
    - практически все данные и весь код приложения доступен и открыт через консоль браузера (можете сами посмотреть). В том числе видна вся структура приложения - можете сами посмотреть. Можно ли что-то с этим сделать я не знаю.

    webpack, etc...
    - не знаю, как реализовать какую-то единообразную схему обработки ошибок в приложении, без дублирования кода. Чтобы все скрипты вдруг не валились, если где-то что-то сломалось. То же самое и про единнообразную обработку AJAX запросов (знать когда все запросы исполнились и т.п.)

    react error boundaries
    - проблема с навигацией и индексацией из-за AJAX (сейчас вроде как уже понял, что нужно использовать pushState)

    react-router, ssr
    - что делать и нужно ли что-то делать для тех, кто не использует JS. Например те же рекомендации по SEO для AJAX говорят что для всех динамических страниц нужно иметь статический snapshot. Как его реализовать - чтобы это было "дешево (просто) и сердито (не криво)" я не знаю.

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

    Таким образом проще переписать приложение с использованием какого нибудь современного стэка (react например)
    Ответ написан
    6 комментариев
  • Как подключить github к реальному проекту?

    saboteur_kiev
    @saboteur_kiev Куратор тега Git
    software engineer
    Нельзя на сайт выкладывать репозиторий.
    github нужно использовать для хранения репозитория со всеми версиями.

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

    gobananas
    @gobananas
    finishhim.ru
    Именно так. Вход - пишем в базу сессию. Выход - стираем в БД сессию. Если сессия есть - второго не пускаем. Есть недостаток что юзер не вышел, а просто оставил вкладку открытой и ушёл но не работает, а другого в этот момент не пустит. Тогда можно при отсутствии каких-то действий в системе убивать сессию каждый 10 минут например.
    Ещё можно принудительно выкидывать первого юзера, так например на pastebin сделано, с другого ПК логинишься - всё нормально, но стоит сесть за первый - оттуда выкинуло уже.
    Ответ написан
    1 комментарий