Best Practices für Layout-Out Angular / Django-Apps

8

Ich bin ziemlich neu in Django und Angular. Ich bin mir bewusst, dass dies subjektiv ist und es viele Möglichkeiten gibt, dies zu tun, aber ich frage mich, welche Best Practices die Leute empfehlen können, um eine solche Anwendung zu erstellen. Ich denke speziell an den Fall von Reichen, SPA mit dem Backend, das größtenteils oder völlig ein RESTful API-Server ist, aber dann möchte ich eine gemeinsame Annäherung für irgendwelche Anwendungen haben, die bedeutende Ansichten von Django dienen. (Ich habe nicht genug getan, um zu entscheiden, ob letzterer es rechtfertigt, Angular zu verwenden, oder ob er mehr Mühe hat, als es wert ist).

Speziell:

Was sind die Vor- und Nachteile der Pflege des Front-End-Codes in einem separaten Verzeichnis / Repository vom Backend im Gegensatz zu einem "statischen" Unterverzeichnis der Django-App? In meinem Fall bin ich momentan der einzige Entwickler, was einige Auswirkungen auf diese Entscheidung hat, aber ich kann mich immer noch als getrennte "Teams" von Backend, Frontend, Designer usw. in dem Sinne verstehen, dass mein Workflow es wird versetzt mich in eine dieser Rollen gleichzeitig.

Meine Einrichtung ist im Grunde eine Entwicklungsmaschine, SCM in GitHub und öffentlich gehostet auf WebFaction (Shared Web Hosting). Ich werde auf der ganzen Linie Projekte auf verschiedenen Entwicklungsmaschinen leicht greifen wollen, aber der primäre Workflow ist nur ein Dev, eine Prod-Installation. Das heißt, ich bin an Best Practices in realen Projekten interessiert, da ich hoffe, dass ein zukünftiger Job mit Django zusammenarbeiten wird.

HINZUGEFÜGT : Ein weiterer Punkt, über den ich mir sehr unsicher bin, ist, ob die Angular-App von Django bootstrapped werden soll / muss. Das heißt, sollte die Titelseite von Django bedient und mit irgendwelchen Daten versehen werden?

PROS:

  • Kann URL-Pfade und sogar API-Endpunkte konfigurieren, die sich von Entwicklung zu Produktion ändern, ohne eine alternative Konfiguration und ohne dass diese im Front-End fest codiert sind.
  • Dies ist möglicherweise für die Authentifizierung erforderlich? Unklar zu mir, dass ich das noch nicht gemacht habe ...
  • Ermöglicht die Verwendung von Tools wie der Django Debug Toolbar App.

CONS:

  • Verbindet das Front-End mit dem Back-End. Was, wenn ich das letztere austauschen möchte? Was ist, wenn das Front-End in einer Sandbox mit Pseudodaten arbeiten soll?
  • Scheint sehr, alle Angular-Sachen in das Django-App-Layout zu verschieben. Gleichzeitig mag ich es nicht, eine Mischung aus Winkelteilen an einer Stelle und Django-Templates in einer anderen zu haben. Ich bin bereits entschlossen, NG und DJ Templates nicht zu mischen, da ich nicht glaube, dass viel Gutes daraus wird.
Jason Boyd 18.02.2014, 13:17
quelle

1 Antwort

2

Ich begann auch als Solo-Entwickler auf Django als BE mit AngularJS FE. Ich habe AngularJS Dateien in statischen Ordner und alles ist in Ordnung.

Nachteile sind definitiv, dass Sie FE und BE in einem Projekt durcheinander gebracht haben, aber ich denke, das sollte keine Rolle spielen, da Sie Solo-Entwickler sind. Selbst wenn Sie sich dazu entschließen, einen zusätzlichen Entwickler einzustellen (um FE- und BE-Arbeit zu teilen), würde Ihre Arbeit keine Konflikte haben, da einer von Ihnen vollkommen unabhängig arbeiten würde.

Einer der Vorteile für mich ist definitiv, dass ich den gesamten Login-Prozess über Django gemacht habe (auch Templating) und nach der Anmeldung ging es gut, ich habe den Rest des FE (gesamter AngularJS-Teil) bedient.

Für Django REST habe ich TastyPie benutzt. Es ist eine großartige REST-Erweiterung für Django und einfach einzurichten.

    
Slaven Tomac 18.02.2014 13:27
quelle

Tags und Links