6 Stimmen

Wann sollte ich eine Funktion unterbrechen?

Es ist ratsam, eine lange Funktion in eine Hauptfunktion und Hilfsfunktionen zu unterteilen.

Ich weiß, dass außerhalb des Moduls nur die Hauptfunktion aufgerufen wird, aber ihre große Länge kann sich als einschüchternd erweisen.

In den Lehrbüchern ist die Anzahl der Zeilen begrenzt, aber ich halte das für zu starr.

P.S.: Ich programmiere in Python und muss eingehende Nachrichten verarbeiten. Die Funktion gibt ein Tupel zurück, das die Nachricht enthält, aber in den internen Datentypen von Python. Sie können also für jeden Nachrichtentyp etwas unabhängigen Code sehen.

Doppelte Frage

Wann ist eine Funktion zu lang?

0voto

Friedrich Punkte 5828

Der Punkt ist, dass es prinzipiell besser ist, spezialisierte Funktionen zu haben. Aber wo man die Grenze setzt, hängt sehr stark ab von 1) dem "üblichen" Programmierstil in bestimmten Sprachen. (man kann beobachten, dass objektorientierte Sprachen zu kürzeren Prozeduren neigen als z.B. C oder ähnliches 2) es hängt von der Art und Weise ab, wie man programmiert. Jede harte Grenze muss in Frage gestellt werden. IMHO. Insgesamt wird es wahrscheinlich eine "natürliche" Verteilung von Programmen geben 3) Ich denke, was man im Hinterkopf behalten sollte, ist, dass eine Funktion eine bestimmte Aufgabe erfüllen sollte, z.B. ist eine Funktion zum Parsen normalerweise viel länger als eine Funktion, die nur ein Feld in einer Struktur setzt. Oder denken Sie nur daran, wie eine Ereignisschleife in der Windows-API aussehen kann. Das alles deutet also darauf hin, dass es gute Gründe für lange Methoden geben kann...

0voto

chills42 Punkte 13564

Wenn es einen unabhängigen Code gibt (in Ihrem Fall für jeden Nachrichtentyp), sollten diese Bereiche aufgeteilt werden.

0voto

Kenneth Cochran Punkte 11762

Die Größe spielt keine Rolle. Du beurteilst mich nach meiner Größe, oder? - Yoda

Ihre Hauptanliegen sind Lesbarkeit, Einfachheit und Wartbarkeit. Ein guter Indikator ist, wenn Sie Kommentare schreiben müssen, um einen Abschnitt einer Funktion zu erklären, dann ist dieser Abschnitt ein guter Kandidat für eine separate Funktion.

0voto

Ryan Emerle Punkte 14990

Es gibt viele Gründe, eine lange Funktion in ihre Einzelteile zu zerlegen. Der wichtigste ist:

  • Lesbarkeit
  • Wartbarkeit
  • Klarheit des Codes/Absicht

Einige Funktionen können nicht einfach in kleinere Teile zerlegt werden, ohne dass dies negative Auswirkungen auf die aufgeführten Ziele hat, daher gibt es keine feste Regel.

-1voto

Adam Hawes Punkte 5403

Wenn Sie es nicht selbst geschrieben haben und es bereits in Produktion ist: NIEMALS!!! Wenn du es unterbrichst, wirst du es wahrscheinlich kaputt machen, so einfach ist das.

Wenn Sie den Text schreiben und sich nicht sicher sind, gilt die Regel "On Screen", wie andere bereits gesagt haben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X