Full Stack React, приложение Redux, Python / Flask, PostgreSQL Heroku - PullRequest
0 голосов
/ 25 марта 2020

Извините, если некоторые из этих вопросов немного любительские sh, я начинающий разработчик с несколькими достойными проектами за моим плечом. Если бы вы могли помочь ответить на пару из этих вопросов, это было бы невероятно полезно.

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

React,
Redux,
Flask / Python,
PostgreSQL,

И я хочу разместить его на Heroku.

Я уже создавал приложение на основе React / Redux, но в основном я использовал localalstorage и Redux в качестве псевдобазы данных / бэкэнда. Сейчас моя цель - создать полнофункциональное одностраничное приложение, но я хочу убедиться, что я принимаю правильные проектные решения на ранней стадии, чтобы сделать мой код максимально профессиональным.

Я хочу создать простую задачу трекер. Сейчас я просто хочу создать проект, в котором вы можете войти в систему, создать проект (который является просто набором заявок), создать заявки и иметь возможность обновлять эти проекты / заявки. Пока что между пользователями не будет никаких взаимодействий, т.е. пользователи смогут видеть и взаимодействовать только с проектами и заявками, которые они сами создали, но в конечном итоге я хочу, чтобы пользователи могли сотрудничать, назначать друг другу заявки, приглашать друг друга работать над тем же проектом и т. д. c.

У меня возникли проблемы с концептуализацией того, как приложение на одной странице вписывается в архитектуру classi c MVC. Мне кажется, что одностраничные приложения вообще не следуют архитектуре MVC. Большинство учебников по flask, которые я могу найти, создают простые веб-серверы, которые обслуживают страницу HTML каждый раз, когда делается новый HTTP-запрос. Тем не менее, это не имеет смысла с одностраничным приложением, верно? Все дело в том, что все приложение загружается одновременно, поэтому вам не нужно постоянно запрашивать новые веб-страницы.

Как тогда работает маршрутизация? Я использовал React Router в своем первом проекте, но он не взаимодействует с бэкэндом, он просто отображает новый компонент на основе URL. Итак, когда это произойдет, должно ли хранилище Redux сделать http-запрос на данные, которые ему нужны? Если это так, разве это не противоречит цели одностраничного приложения, которое ограничивает количество запросов к бэкэнду? Должен ли я просто сделать один HTTP-запрос в начале для всех данных и сохранить его в хранилище Redux?

Я читал, что некоторые одностраничные приложения на самом деле не являются одностраничными, а фактически разделены в несколько небольших кусков. Это рекомендуемый подход? Разве я не должен стремиться сделать действительно одностраничное приложение для впечатления будущих интервьюеров?

Имеет ли смысл использовать PostgreSQL? Я действительно выбрал только PostgreSQL, потому что это база данных, используемая в большинстве уроков по Heroku, но можно использовать mysql

Еще раз извините за неопределенную, общую и любительскую sh природу некоторых из этих вопросов, но я действительно хочу сделать этот проект великолепным.

1 Ответ

2 голосов
/ 25 марта 2020

В учебных руководствах Flask, которые вы видели, используется шаблонизатор, который поставляется вместе с ним (Jinja), потому что они не имеют отдельной среды интерфейса. В вашем случае Flask следует использовать только как API, который возвращает только JSON во внешний интерфейс и позволяет ему решать, как отображать данные, вместо того, чтобы отображать сами страницы HTML.

PostgreSQL имеет смысл использовать, как и MySQL. Они похожи, и если вы используете ORM (например, SQLAlchemy, который часто используется в Flask), вы будете использовать одинаковые операторы для них обоих. Однако, если я не ошибаюсь, у Heroku есть специальное дополнение для Postgres, которое сделает интеграцию с ним проще, чем MySQL. Хотя не уверен.

...