Was sind die Vor- und Nachteile der Verwendung der zwei verschiedenen Programmierstile von CGI.pm mit Perl?

7

Ich bin in einer Web Scripting Klasse in der Schule und arbeite an meiner ersten Aufgabe. Ich tendiere dazu, Dinge zu übertreiben und tiefer in mein Thema einzutauchen als das, was in meinen Kursen erforderlich ist. Im Moment recherchiere ich CGI.pm um meine HTTP-Anfragen zu machen und es gibt zwei Programmierstile für CGI.pm:

  • Ein objektorientierter Stil
  • Ein funktionsorientierter Stil

Es sei denn, ich habe die klare Antwort übersehen oder bin nicht sachkundig genug, um die Antwort für mich selbst aus der Dokumentation zu finden, die unter: Ссылка Ich weiß einfach nicht, was die Vor- und Nachteile dieser zwei verschiedenen Stile sind.

Wenn das gesagt wird, was sind die Vor- und Nachteile der Verwendung der zwei verschiedenen Stile? Welche wird häufiger verwendet? Was den objektorientierten Stil betrifft, heißt es, dass ich nur ein CGI-Objekt zu der Zeit verwenden kann. Warum ist das so?

Danke für Ihre Hilfe. Sie haben alle das Studium der Informatik sehr angenehm, befriedigend und lohnend für mich gemacht. = D

    
Chris 16.01.2010, 20:26
quelle

2 Antworten

17

Hinter den Kulissen macht CGI.pm trotz der Stile das Gleiche. Die funktionale Schnittstelle verwendet tatsächlich ein geheimes Objekt, das Sie nicht sehen.

Bei vielen kleinen CGI-Projekten werden Sie wahrscheinlich nie mehr als ein CGI-Objekt gleichzeitig benötigen, daher ist die funktionale Schnittstelle in Ordnung. Dies könnte der üblichere Stil sein, aber nur, weil die meisten Leute kleine Skripte für sehr spezifische Aufgaben erstellen. Wenn Sie viele andere Dinge haben, mag es Ihnen nicht gefallen, dass CGI.pm eine lange Liste von Funktionsnamen in Ihr Skript importiert. Einige der Funktionsnamen kollidieren möglicherweise mit den anderen Modulen, die importiert werden sollen.

Ich verwende jedoch immer die objektorientierte Schnittstelle. Ich muss mich nicht um Namenskollisionen kümmern, und es ist offensichtlich, woher eine Methode kommt, seit Sie ihr Objekt sehen. Es ist auch einfach, das Objekt als Argumente an andere Teile von großen Anwendungen usw. zu übergeben.

Manche Leute beschweren sich über das zusätzliche Tippen, aber das war nie der langsame Teil der Programmierung für mich. Ich mache Perl schon lange und die Syntax macht mir nichts aus. Allerdings verwende ich nur CGI, um die Eingabe zu erhalten und vielleicht die Ausgabe zu senden. Ich mache nichts mit dem HTML-Zeug.

Wenn es sich jeweils um ein CGI.pm-Objekt handelt, bezieht es sich auf den Zugriff auf die Eingabe. Sobald Sie beispielsweise STDIN gelesen haben, kann ein anderes CGI.pm-Objekt das nicht lesen. Sie können jedoch so viele Objekte haben, wie Sie möchten. Sie werden nur keine Daten teilen und die erste bekommt alle POST-Daten.

Sie können jedoch tatsächlich eine Mischung verwenden. Sie können einige Dinge importieren, wie :html , aber verwenden Sie immer noch die OO-Schnittstelle, um mit der Eingabe umzugehen.

    
brian d foy 16.01.2010, 20:41
quelle
4

Ich empfehle dringend, die Objektschnittstelle zu verwenden.

Wird es für Ihre Klassenarbeiten unbedingt benötigt? Nein, tatsächlich ist es sogar für kleine Produktionsprojekte übertrieben.

Wenn Sie jedoch ernsthaft lernen möchten, CGI.pm für größere Projekte zu verwenden, müssen Sie die Objektmethode erlernen. Wenn Sie zwei Objekte benötigen, müssen Sie die Objektschnittstelle verwenden. Programmieren wird, wie fast alles andere auch, mit Übung besser. Das Üben von relativ einfacheren Problemen wird Ihnen helfen, für komplexere Aufgaben bereit zu sein.

In der Tat würde ich es als allgemeine Regel in der Programmierung empfehlen (obwohl es Ausnahmen gibt), wenn zwei Arten der Verwendung eines bestimmten Werkzeugs die Gewohnheit haben, diejenige zu verwenden, die am wahrscheinlichsten im Produktionscode verwendet wird und / oder die, die die richtige Antwort für mehr des Problembereichs ist.

    
HerbN 16.01.2010 23:38
quelle

Tags und Links