Es gibt viele verschiedene Arten, wie Menschen an die Entwicklung herangehen.
Manchmal befolgt man Ihre drei Schritte und stellt fest, dass die langsamen Bits auf die äußere Umgebung zurückzuführen sind, so dass eine Umschreibung von Python in C das Problem nicht löst. Diese Art von Langsamkeit kann manchmal auf der Systemseite gelöst werden, und manchmal kann sie in Python durch die Anwendung eines anderen Algorithmus gelöst werden. So kann man beispielsweise Netzwerkantworten in den Cache stellen, so dass man nicht jedes Mal auf das Netzwerk zugreifen muss, oder in SQL kann man die Arbeit in "gespeicherte Prozeduren" verlagern, die auf dem Server laufen und die Größe der Ergebnismenge verringern. Wenn Sie etwas in C umschreiben müssen, suchen Sie in der Regel als erstes nach einer bereits vorhandenen Bibliothek und erstellen einen Python-Wrapper, falls nicht bereits vorhanden. Viele Leute haben diese Wege schon vor Ihnen beschritten.
Oft besteht Schritt 1 darin, die Anwendungsarchitektur zu durchleuchten, den Verdacht zu äußern, dass es in irgendeinem Bereich ein Leistungsproblem geben könnte, und dann eine C-Bibliothek auszuwählen (vielleicht bereits für Python verpackt) und diese zu verwenden. In Schritt 2 wird dann einfach bestätigt, dass es keine wirklich großen Leistungsprobleme gibt, die behoben werden müssen.
Ich würde sagen, dass es für ein Team mit einem oder mehreren erfahrenen Entwicklern besser ist, von Anfang an zu versuchen, Leistungsengpässe vorherzusagen und sie mit bereits vorhandenen Modulen zu entschärfen. Wenn Sie ein Anfänger in Python sind, dann ist Ihr 3-Schritt-Verfahren vollkommen gültig, d.h. Sie sollten mit der Erstellung und dem Testen von Code beginnen und wissen, dass es einen Profiler und die Möglichkeit von schnellen C-Modulen gibt, wenn Sie diese benötigen. Und dann gibt es noch psyco und die verschiedenen Werkzeuge, um eine Anwendung in eine ausführbare Binärdatei einzufrieren.
Wenn Sie wissen, dass Sie einige C- oder C++-Module verwenden müssen, können Sie alternativ dazu die Anwendung von Grund auf in C schreiben, aber Python einbetten, um den größten Teil der Arbeit zu erledigen. Dies funktioniert gut für erfahrene C- oder C++-Entwickler, da sie eine ungefähre Vorstellung von der Art des Codes haben, der in C mühsam zu erledigen ist.
2 Stimmen
Zählen Elemente der integrierten Bibliotheken als "große Projekte"? Es gibt eine Reihe von Dingen (wie cStringIO und cPickle), die genau das getan haben. Ist das ausreichend, um davon zu lernen?
1 Stimmen
Um genau zu sein, handelt es sich nicht um ein Entwurfsmuster im üblichen Sinne, sondern um eine Entwicklungsmethodik