Was magst du an Django?

7

Ich habe vor ein paar Tagen begonnen, Django zu lernen, und als ich mich darauf besinne, scheint es, dass ich es noch mehr mag Versuchen, von einer anderen Sprache zu migrieren. Ich werde nicht sagen, welcher, da der Zweck dieser Frage nicht ist, irgendetwas zu vereiteln.

Ich würde gerne Ihre Meinung über Django erfahren.

Was gefällt dir daran?
Was hat dich dazu gebracht, es zu benutzen? Welche Features möchten Sie haben, die nicht da sind?
Was würdest du dazu wechseln?
Wie schnell ist es in der Produktion? Wie schwer ist es, es zu meistern?

    
daniels 31.10.2008, 09:00
quelle

6 Antworten

8

Was gefällt mir daran?

  • Sehr einfaches ORM
  • klare Trennung von Vorlage / Controller
  • django-admin
  • Pluggable-Apps: Mir scheint, dass die Django-Community das wirklich geschafft hat!

Was mich dazu gebracht hat, zu wechseln:

  • hauptsächlich Neugier
  • Ich habe eine Menge guter Dinge von einem Kollegen gehört
  • Ich wollte etwas leichter als das Java, das ich lebe
  • Ich hatte ein Side-Projekt, das stark datengesteuert ist und für das die Django-Admin-Schnittstelle sehr nützlich ist

Welche Funktionen möchte ich:

  • bessere / einfachere Steuerung der Transaktionen (Konfiguration der verschiedenen Arten von Transaktionen (nur Lesen / Schreiben lesen / einige Feinabstimmungen hier und da) ist nicht so einfach, wie ich es gewohnt bin, eine Sitzung im Ansichtsmodell, wo die Transaktion ist immer noch offen in der Ansicht macht mich nicht so komfortabel, ich würde es vorziehen, wenn die Transaktionen nicht eine Service-Schicht verlassen. Aber wiederum gibt es nicht wirklich eine Service-Schicht in der Django-Modell.
  • besseres Modell für Geschäftslogik (vielleicht ist das nur ich, aber ich vermisse den serviceorientierten Ansatz von Enterprise Java, ich weiß nie, ob ich die Geschäftslogik in die Ansicht, in die Form oder in das Modell einfügen soll Lösung machen mich warm und unscharf ... zur gleichen Zeit, ich habe keine schwere Geschäftslogik in der Anwendung, die ich für den Moment entwickeln, und ich würde wahrscheinlich immer noch Java für diese verwenden)
  • Stabilität (in dem Sinne, dass man sich nicht verändert, nicht in dem Sinne, dass man nicht zusammenbricht). Wiederum komme ich aus Java, wo ich immer noch an Java 1.4 für viele Projekte arbeite, ein Projekt, das gerade 1.0 veröffentlicht hat und all das Refactoring, das damit einherging, ist nicht sehr beruhigend. Es brauchte etwas Arbeit, um dem Stamm zu folgen, und die Verwendung von 0.96 war nicht besonders überzeugend. Ich glaube nicht, dass ich mich bei einem missionskritischen Unternehmensprojekt noch wohl fühlen würde.

Mir ist klar, dass es einige Verbesserungen gibt, die ich gerne hätte. Versteh mich nicht falsch, ich liebe Django und ich werde mich für viele Projekte daran halten. Ich werde es einfach noch nicht überall hinstellen ...

    
Guillaume 19.02.2017, 17:21
quelle
8

Was gefällt dir daran?

URL-Verteilung: Ich war nie ein großer Fan von "/foo.php" ist die Datei "foo.php" auf meinem Server, und wenn ich nettere URLs möchte, muss ich mit mod_rewrite herumspielen und das in Übereinstimmung halten was meine Logik in foo erwartet.

ORM: Weil 90% Ihrer Abfragen meiner Erfahrung nach nicht von Hand geschrieben werden müssen. Intelligentes Caching ist im Allgemeinen viel wichtiger für die Leistung. Sie können immer nach Bedarf auf Raw SQL setzen.

Middleware und Signale: Einfach die meisten Teile des Request / Response / View / Render-Zyklus zu erweitern, ohne den Django-Code selbst zu berühren.

Was hat Sie dazu bewegt / benutzt?

Es kam heraus, als ich von den Python-Web-Framework-Angeboten enttäuscht war. Ein einfacher Verkauf für mich.

Wie schnell ist es in der Produktion?

Hmm, um ehrlich zu sein, habe ich mich nie zu sehr darum gekümmert. Der Webserver-Teil deiner App ist (meiner Meinung nach) immer am einfachsten zu skalieren. Solange Sie "Best Practices" verwenden und nichts teilen, müssen Sie lediglich einen Software Load Balancer hinzufügen, und Sie können neue Webserver hinzufügen, bis die Kühe nach Hause kommen. Der erste Engpass, den man im Allgemeinen trifft, ist die Datenbanklast - aber Django bietet großartige Caching-APIs, die Ihnen dabei helfen, das zu lindern.

Allerdings habe ich das nur überflogen, aber es scheint schneller zu sein als Rails und die bekannten PHP-Frameworks: Ссылка

Wie schwer ist es, es zu meistern?

Ich schätze, es hängt davon ab, wie Sie 'Master' definieren. Die Dokumentation ist großartig, im Laufe einer anständigen Website / App denke ich, dass Sie ein bisschen von allem verwenden werden, was ein guter Anfang ist.

    
Brett 30.10.2008 14:57
quelle
4

Gefällt mir

Die ausgezeichnete Dokumentation. Zusammen mit der Hilfe von stackoverflow habe ich in nur wenigen Tagen viel gelernt. Es schreibt in Python. Es hat die wunderbare contrib.admin, die sogar modular und erweiterbar ist, um es in die Web-App zu integrieren.

Abneigungen

Bisher nicht. Ich bin immer noch verzaubert

Schalter

Es ist mein erstes Web-Framework, also kein Switch. Nachdem ich einige Jahre Python benutzt hatte, schien mir Django die natürliche Auswahl zu sein, vor allem wegen seines klaren Designs.

    
Ber 30.10.2008 22:26
quelle
4

Was gefällt dir daran?

  • Die Vorlagen, insbesondere die Vererbungsfunktion, waren nach dem Umgang mit jsps
  • erstaunlich
  • muss nicht mehr sql schreiben

Was hat Sie dazu bewegt / benutzt?

Ein Freund hatte seinen Fortschritt verfolgt, bevor er öffentlich veröffentlicht wurde, und ich benutze ihn seitdem für persönliche Projekte.

Welche Funktionen möchten Sie haben, die nicht da sind?

Mir ist klar, dass das kein triviales Problem ist, und ich denke, Google Summer Code wurde dafür ausgegeben, aber ich würde gerne bessere Wege sehen, um die db zu entwickeln (welche schienen scheint ziemlich gut zu machen) .

Was würden Sie dazu veranlassen?

Ich benutze es bereits zu Hause und treffe diese Entscheidungen nicht bei der Arbeit.

Wie schnell ist es in der Produktion?

Ich bin noch nie auf Probleme gestoßen, obwohl Django in den meisten Fällen nicht im Weg ist, so dass die Performance eher auf Python oder der db basiert.

Wie schwer ist es, es zu meistern?

Die Dokumentation ist ziemlich erstaunlich, und genug Leute benutzen es, dass Antworten oft verfügbar sind, wenn das nicht hilft. Außerdem, wenn ich in den Quellcode einsteigen musste, war es auch sauber und dokumentiert, also würde ich sagen, dass es einfacher zu meistern ist als die meisten Frameworks, webbasiert oder anders.

    
Chris 04.11.2008 21:03
quelle
3

Ich hatte nicht die Gelegenheit, es viel zu benutzen. Das heißt, mein absoluter Lieblingsteil von django ist die eingebaute Administrationskonsole.

    
rayners 30.10.2008 15:03
quelle
3

Likes:

  • Pythonic (ich kann die Sprache leicht durchforsten) und somit jeden Teil leicht erweitern
  • Dokumentation,
  • Gemeinschaft (ich gehöre zu den Franzosen und sie sind sehr nett)
  • eine volle Ladung von Projekten um ihn herum
  • voll integrierte Test Engine. Sie können fast eine ganze Anwendung testen, ohne einen Webbrowser zu starten, indem Sie einfach Tests schreiben.
  • Die benutzerdefinierten Befehle rocken einfach. Es ermöglicht Ihnen, benutzerdefinierte Aufgaben im Handumdrehen durchzuführen. Ich verwende es häufig, um Batch-Aufgaben auszuführen (z. B. eine Datenbank bereinigen oder auf einem Produktionsserver auf Integrität prüfen - Tests verwenden ihre eigene Datenbank, nicht die eigentlichen Daten in Ihrer Anwendung).

Warum umschalten?

  • wurde von PHP-from-scratch langweilig.
  • hatte einen RSI in meinem Handrücken, sehr schmerzhaft. nach dem Wechsel zu einer Semikolon-freien Sprache, verschwand es (es ist wahr!)
  • viel festere Entwicklung (TDD), und schneller (Sie können ein CMS in wenigen Minuten bauen) - so viele andere Web-Framework, obwohl.

Abneigungen:

  • keine reibungslose Datenmodellmigration. Sie müssen Ihr Modell aufgrund einer unerwarteten Funktion häufig ändern. Das ist schmerzhaft, und Sie müssen es mit der Hand bauen, und es kann manchmal riskant sein.

Wie schwer zu meistern?

  • Wenn Sie bereits Python-Fähigkeiten haben, können Sie Dinge in ein paar Stunden aufbauen.
  • Wenn nicht, tauche zuerst in Python (heh) - das würde ein paar Tage dauern.
  • "Mastering" es kann einige Zeit dauern ... Und du entdeckst oft Edelsteine ​​in Djangos Dokumentation, die dich dazu bringen werden, "Ich liebe Django!" (Nun, es funktioniert für mich)
brunobord 05.11.2008 11:46
quelle

Tags und Links