Markus studiert!

@incredible_star Inzwischen sieht man ja, auf was Du antwortest.Sonst hätte ich jetzt fragen können: Auch die FB-Alternativen?

< letzter tweet

22. February, 21:02 Uhr

follow me: @markusstudiert

Was ich an Django so mag

Nachdem ich im dritten Semester zum ersten Mal intensiveren Kontakt mit Python hatte, habe ich die Sprache in den vergangenen Semestern immer stärker schätzen gelernt.

In diesem Semester setzen wir für die Server-Komponente unseres Mobile-Computing-Projekts ebenfalls auf Python, und zwar in Form des Web-Frameworks Django. Und das ist wirklich ein Genuss.

Zur Implementierung des Servers lieferte Django bereits alle notwendigen Komponenten. Das Framework bietet den besonderen Vorteil, dass die typischen Aufgaben einer Webanwendung, deren Hauptaufgabe die Verwaltung von Datensätzen ist, also deren Auflisten, Anzeigen, Finden und Editieren (CRUD), nach Erstellung von nur wenig eigenem Code bereits komfortabel zur Verfügung stehen. Es muss lediglich die Datenstruktur in Form von Models definiert werden. Anhand dieser Informationen kann Djongo schon die nötige Datenbankstruktur erzeugen und passende Formulare zum Editieren der Datensätze im mitgelieferten Admin-Bereich erzeugen.

Zur Implementierung der öffentlichen Schnittstellen der Anwendung reichen auch lediglich wenige Zeile Code aus. In Django werden diese mithilfe der Views erstellt, wobei man hier nur Ausnahmen behandeln muss, die über das Anzeigen von einzelnen Datensätzen oder Listen von Datensätzen hinaus gehen. Die für die App zur Verfügung gestellt API wird ebenfalls mit Hilfe der Views erzeugt, wobei dann das Antwort-Format nicht HTML ist, sondern JSON. Die Unterscheidung wird anhand das Accept-Headers in der Anfrage getroffen. Um die Implementierung eines eigenen Controllers muss man sich nicht kümmern, hier übernimmt das Framework bereits alle nötigen Aufgaben, sofern man die vorgegebenen Konventionen befolgt und die bereitgestellten Hilfsfunktionen verwendet.

Auch die Möglichkeit zum Testen seiner Anwendung sind genial, das Test-Framework kümmert sich um alle Aufgaben, lediglich die Unit-Tests muss man selber schreiben – was elegant von der Hand geht, dank einem mitgelieferten Test-Client der URL-Request simuliert.

Django nimmt einem durch viele Konventionen unheimlich viel Arbeit ab, und man kann sich auf das Wesentliche konzentrieren. Die Geschwindigkeit, mit der man in Django entwickeln kann ist beeindruckend und ich bin schwer am Überlegen, es auch für meine Thesis ein zu setzen…

< blogeintrag

27. January, 09:01 Uhr

Tags:


Deine Meinung ist gefragt!





Meinungen

[...] umgesetzt. Auch das hat mir einige „OMG! Wie geil!“-Momente, über die habe ich aber schon an anderer Stelle [...]

< Projektergebnis Mobile Computing « Markus studiert!

22. February, 16:02 Uhr

Da stimme ich dir voll zu. Man muss ganz klar sagen, dass Django explizit darauf ausgerechtet ist diese Basis-Operationen in einer contentlastigen Website zu automatisieren.

Developed by a fast-moving online-news operation, Django was designed to handle two challenges: the intensive deadlines of a newsroom and the stringent requirements of the experienced Web developers who wrote it. It lets you build high-performing, elegant Web applications quickly.

Wenn man eine komplexere Webanwendung mit komplizierteren Businesslogiken hat, stößt man mit Django mit Sicherheit relativ schnell an eine Grenze — dafür fehlt es ganz klar auch an der Möglichkeit, Anwendungen wie in Symfony2, Modular auf zu bauen. Unter djangosites.org findet sich ein große Liste an Referenz-Projekten.

< Markus Tacker

27. January, 18:01 Uhr

Klingt sehr interessant und bin gespannt auf deine weiteren Erfahrungswerte, vor allem bei Themen der Flexibilität und Erweiterbarkeit. Die CRUD-Mechanismen, die z.B. Rails und scheinbar auch Django bieten, sehe als ein zweischneidiges Schwert. Auf der einen Seite ermöglicht es anfänglich eine enorm schnelle Entwicklung zu einem an sich funktionierendem System. Die Kehrseite ist jedoch, dass im Verlauf der Entwicklung View/Controller/Model i.d.R. doch soweit angepasst bzw. doch explizit implementiert werden (müssen), dass die anfängliche Zeiteinsparung im Endeffekt wieder verloren geht.

< Dennis Oehme

27. January, 18:01 Uhr