2017-02-20 19 views
2

В моем недавнем проекте я хотел бы попробовать Aurelia-frontend с Django-backend. Я сделал несколько проектов с Django и хочу использовать Django REST API для моего бэкэнд.
Я новичок в Aurelia и несколько раз прочитал документацию.Django-backend с Aurelia-frontend. Определение моделей в каждом из них, нарушающих DRY-принцип?

Теперь мне интересно, правильно ли было бы определять модели (например, пользователь с псевдонимом, электронной почтой, мобильным телефоном, адресом и т. Д.) В интерфейсе Aurelia, потому что в Django я уже определил свои модели в моделях .py для базы данных. Поскольку я извлекаю/данные через api в свое приложение Django, я мог бы опустить его. В Aurelia «начало работы» - раздел документации, который они определили для модели ToDo в отдельном файле, но данные не были привязаны к базе данных. Выполнение этого кажется мне как сделать это дважды (в back-and frontend) и нарушает принцип DRY.

Что вы думаете о хорошей практике? Спасибо за рекомендации!

+0

Возможно, вам захочется взглянуть на способ автоматизации моделей зданий, это, скорее всего, будет специфичным для технологии, как вы это сделаете –

ответ

2

Определение классов на стороне клиента имеет свои преимущества. Во-первых, вы можете сопоставить данные ответа в экземпляр класса и работать с данными таким образом. Хотя работа с объектом JSON не является жесткой.

Во-вторых, сериализация класса в JSON проста. Кроме того, некоторые бэкэнд-фреймы ожидают особо отформатированный объект JSON; иногда класс - единственный практический способ сделать это.

В-третьих, одно дело, которое вы можете сделать с классом, который нельзя сделать с объектом JSON (насколько я знаю), - это добавить методы/функции. Только эта расширяемость может стоить усилий.

Это, конечно, не является чем-то необычным для классов, определенных на задней и передней частях. Я работал с Aurelia, и Angular, они оба хорошо работают с ними. Я сделал приложение Aurelia без клиентских классов. То, что я действительно пропустил, не было Intellisense (четвертое преимущество) в среде IDE, поскольку ничего не было экспортировано/импортировано. Кстати, я использую VS Code.

DRY хороший. Но, показывая намерение, может пройти долгий путь, особенно если кто-то еще забирает код, когда вы закончите с ним. Занятия могут помочь там. Пятое преимущество, помогает показать намерение.

И, наконец, я уверен, что есть еще много преимуществ.

Вывод: я бы рекомендовал использовать классы на стороне клиента. Вы не будете сожалеть об этом.

Надеюсь, это поможет!