2009-03-24 8 views
5

Spring Python scheint der Gold-Standard zu sein, um gute Qualitäts-APIs in Python zu definieren - es basiert auf Spring, der auch der Gold-Standard für Java-APIs zu sein scheint.Was ist das beste Online-Tutorial für Spring Python?

Mein Manager hat sich (mit gutem Grund) beschwert, dass unsere APIs in einem Durcheinander sind - wir müssen ihnen eine gewisse Reihenfolge auferlegen. Da wir neu faktorisieren werden, ist es sinnvoll, den Vorteil der besten Vorgehensweise zu nutzen - daher möchten wir Spring berücksichtigen.

Kann mir jemand die besten Lernressourcen für den Einstieg in Spring nennen? Ich habe eine Weile gegoogelt und nichts gefunden, was von den ersten Prinzipien ausgeht. Ich suche nach etwas, das gute Kenntnisse von Python voraussetzt, aber kein Spring-Wissen auf anderen Plattformen oder seinen Prinzipien.

Dank

+0

"Spring Python scheint der Gold-Standard zu sein, um gute APIs in Python zu definieren" - wie sind Sie zu diesem Schluss gekommen? – Vasil

+0

Haben Sie die Quelle? http://sourceforge.net/projects/springpython/ Was ist los mit dem Lesen der Quelle? Hast du den Wikipedia-Artikel? http://en.wikipedia.org/wiki/Spring_Python Was brauchen Sie mehr? Hast du eine spezifische Frage? –

+0

@Vasil: Der Wikipedia-Artikel sagt es. Daher (offensichtlich) ist es wahr. –

Antwort

10

Wie kamst du auf Frühling Python als API der Wahl zu entscheiden? Spring funktioniert gut auf Java, wo eine Tradition der deklarativen Programmierung besteht; Die Definition Ihrer Anwendung, bei der hauptsächlich XML zur Steuerung einer Core-Engine verwendet wird, ist ein Standardmuster in Java. In Python, während die zugrunde liegenden Muster wie Inversion of Control immer noch passend sind (abhängig von Ihrem Anwendungsfall), sieht die von Spring gewählte Implementierung wie ein klassischer Fall von etwas aus, das von einem Java-Programmierer erzeugt wird, der nicht lernen will Python. Siehe den oft referenzierten Artikel Python is Not Java.

Ich begrüße Ihre Entscheidung, Ordnung und Nachdenklichkeit in Ihre Codebasis einzuführen, aber Sie möchten möglicherweise eine Reihe von Optionen bewerten, bevor Sie Ihre Entscheidung treffen. Insbesondere können Sie feststellen, dass die Verwendung von Spring Python es schwierig macht, gute Python-Programmierer einzustellen, von denen viele den umgekehrten Weg gehen, wenn sie mit XML-Dateien mit 1000 Zeilen konfrontiert werden, die Interaktionen mit Objekten beschreiben.

Vielleicht beginnen Sie mit der Überprüfung, was Sie wirklich erreichen wollen. Das Problem kann nicht einfach sein, dass "Sie einen Rahmen brauchen". Es gibt viele Frameworks da draußen, und es ist schwer zu bewerten a) wenn Sie wirklich brauchen und b) welche wird funktionieren, wenn Sie nicht identifiziert haben, welche zugrunde liegenden Software-Probleme Sie lösen müssen.

Wenn das eigentliche Problem darin besteht, dass Ihr Code ein nicht zu behebendes Chaos ist, wird das Problem durch die Einführung eines Frameworks wahrscheinlich nicht gelöst. Anstatt nur chaotischen Code zu haben, wirst du Code haben, der unordentlich in jemand anderem Stil ist :-) Vielleicht ist die Starre im Entwickler-Team, wo du empfehlen solltest, zuerst zu beginnen: gute Planung, Code-Reviews, strenge Einstellungspraktiken, eine "Aufräum" -Freigabe usw.

Viel Glück mit der Forschung.

+0

Unser Code ist meistens ziemlich gut - aber die APIs sind inkonsistent. Wir möchten, dass unsere APIs viel einfacher zu verwenden sind und die Chance nutzen, von dem zu profitieren, was die führenden API-Entwickler erreicht haben. –

+0

Bitte beachten Sie, dass Spring Python nicht nur ein einfacher Port [1] ist, noch ist es auf XML beschränkt. Laufen Sie nicht vor XML weg, sondern verwenden Sie stattdessen Dekoratoren! [2] Ich begrüße immer Wege, Dinge pythonisch zu machen. - 1. http://tinyurl.com/dz3dk6, 2. http://tinyurl.com/dzupa9, 3. http://tinyurl.com/d53d8v – gregturn

+0

Lassen Sie uns durch dieses Problem schneiden - Sie möchten eine konsistente haben API. Ich rate Ihnen, PEP-0008 http://www.python.org/dev/peps/pep-0008/ zu lesen, was die offizielle Stilrichtlinie für Python ist. – gregturn

1

Ich werde nicht so weit gehen zu sagen, dass Spring Python schlecht ist (weil ich nicht genug darüber weiß). Aber Spring Python den "Goldstandard für Python-APIs" zu nennen, ist eine Strecke. Für mich scheint Spring Python eher eine Möglichkeit zu sein, Python-Anwendungen mit Spring Spring zu interagieren.

Auf jeden Fall, nach einem ersten Blick auf die official documentation, scheint es ziemlich einfach zu verstehen für mich mit anständigen Kenntnissen von Python, aber keine Kenntnis des Frühlings. Abgesehen davon, dass es fast wie Java-Code aussieht, wo der Autor die Typnamen, Semikola und geschweiften Klammern vergessen hat. :-)

+0

Ich hätte erwähnen sollen: Wir sind ein Python + Java-Shop. All unsere Geschäftslogik ist in Python. Der größte Teil unserer GUI ist Java, weshalb es für uns sehr wichtig ist, Python mit Java zu spielen. Die Java-Entwickler lieben Spring und ich kann mir keinen guten Grund vorstellen, sie zu enttäuschen. –

+0

Das klingt nach einem absolut guten Grund, es mir zu benutzen. Aber Sie sollten darauf vorbereitet sein, Reaktionen, wie Sie sie in dieser Frage gesehen haben, auf ein sehr Java-orientiertes Framework in Python anzuwenden. :-) –

+0

Spring Python wurde nicht gebaut, um einfach mit Java zu integrieren. In der Tat ist dieser Abschnitt momentan etwas schwach. Das Hinzufügen von Sicherheit zu Ihrer App, das Bereitstellen von einfachen Möglichkeiten zum Ausführen von einfachem SQL (kurz eines ORM) und das dynamische Abfangen von Code in Bibliotheken von Drittanbietern mit AOP scheinen jedoch wertvolle Werkzeuge zu sein. – gregturn