Do vs. Run vs. Execute vs. Perform Verben [closed]

8
  • Welche Liste von Verben verwenden Sie für Methodennamen? Was ist dein persönlicher oder Team-Standard?
  • Ich debattiere, ob Do vs. Run vs. Execute vs. Perform zu verwenden ist, und frage mich, ob einige davon nicht mehr zu empfehlen sind oder welche die Leute einfach nicht wirklich verwenden und ich sollte sie einfach zerkratzen. Grundsätzlich bedeutet jedes dieser Verben dasselbe ... einen Prozess aufzurufen (Methodenaufruf). Dies ist außerhalb von CRUDs. Zum Beispiel:

ExecutePayPalWorkflow();

, das könnte stattdessen auch einer dieser Namen sein:

%Vor%

oder ist es nicht wirklich wichtig ... weil jedes dieser Verben so ziemlich nachvollziehbar ist, was Ihre Absicht durch die anderen Wörter zeigt, die darauf folgen "PayPalWorkflow"

Benennen ist etwas, das ich sehr ernst nehme und beim Codieren wirklich viel darüber nachdenke:

  • es macht Code für andere Entwickler lesbar
  • es macht meinen Code Wochen später für mich lesbar, wenn ich mich nicht mehr daran erinnern kann, was ich codiert habe

Diese Diskussion kann für jede Sprache gelten. Ich habe einfach die beiden Haupt-Tags C # und Java hier eingefügt, was gut genug ist, um solide Antworten oder Erfahrungen zu erhalten.

    
PositiveGuy 19.05.2010, 16:19
quelle

7 Antworten

8

Sollten deine Methodennamen normalerweise nicht zu Beginn Verben sein? Wie in Ihrem Beispiel könnten Sie einfach das Verb Pay anstelle von Perform + Payment verwenden.

Bearbeiten :

Wie Sie eines der von Ihnen aufgelisteten Verben (Execute, Do, Run, Perform) verwenden könnten, glaube ich nicht, dass sie überhaupt notwendig sind. Sie vermitteln keine zusätzlichen Informationen. Die Tatsache, dass Sie eine Methode aufrufen (oder ausführen oder ausführen oder ausführen), hängt von Ihrer Syntax ab.

Wenn Sie dem Aufrufer anzeigen möchten, dass Ihre Methode möglicherweise zurückgegeben wird, bevor die Aktion abgeschlossen wurde, gibt es eine Konvention dafür in .NET: Begin * und End *.

Die einzige Ausnahme, an die ich denken kann, ist, wenn Sie eine Abstraktion für einen allgemeinen Prozess haben. In diesem Fall müssen Sie ein Verb wie Execute oder Run verwenden, da was Sie gerade tun, noch nicht definiert ist.

    
Michael Petito 19.05.2010, 16:31
quelle
2
%Vor%

Es scheint, dass Ihre Namenskonvention unter einem Mangel an Abstraktion leidet. Wenn etwas "ausführbar" ist, dann sollte die Methode "execute ()" lauten und Sie sollten den Klassennamen verwenden, um anzugeben, was das "ausführbare" Verhalten implementiert.

Ob Sie "Ausführen", "Ausführen" oder "Ausführen" verwenden, hängt vollständig vom Kontext des Systems ab. Wenn Sie diese als Jobs anzeigen, die ausgeführt werden müssen, verwenden Sie nicht "Ausführen". Wenn es sich um Aufgaben handelt, die ausgeführt werden müssen, ist "run" ebenfalls eine schlechte Wahl. Wichtig ist, dass alle diese Methoden konsistent sein sollten (was die Interface-Deklaration erzwingen wird).

    
Edwin Buck 19.05.2010 16:30
quelle
1

Ich sage nichts von dem oben genannten. Unterschiedliche Präfixe verletzen IntelliSense.

    
Stephen Cleary 19.05.2010 16:21
quelle
1

Manchmal beeinflusst die Sprache, die Sie vor c # / java verwendet haben, den Begriff, den Sie verwenden werden. Zum Beispiel gibt es eine Menge Delphi-Entwickler, die

bevorzugen

PerformSomeTask()

Umgekehrt habe ich eine Menge von VB (ich glaube?) Einfluss gesehen, mit einer Tendenz, Methoden als

voranzutreiben

RunSomething()

Ich vermeide persönlich jede Art von Konvention, weil Ihr Code ähnlich aussehen wird. In einer Empfehlung, die ich von einem Arbeitskollegen auf LinkedIn erhielt, erwähnte er, dass ein von mir gepflegtes Projekt mehr als 2.000.000 Zeilen Code aufwies. Ich wusste nicht, dass das Projekt so groß war, aber eine Sache, die ich von diesem Projekt gelernt habe, war, dass dein Code nicht so aussehen soll :

%Vor%

Es macht einfach alles so unlesbar. Namenskonventionen sollten mit einer großen Dosis von Realitätssalz getroffen werden.

Ich denke, der Name der Methode sollte einfach widerspiegeln, was sie tut. An einem Tag könnte es PerformSomeTask sein, an einem anderen Tag könnte es DoImportantThing sein. Aber mit 20+ Perform[YourMethodNameHere] ist nicht sehr intuitiv.

    
code4life 19.05.2010 16:53
quelle
1

Ich finde Abstraktion die bessere Form selbsterklärenden Codes als lange Methodennamen.

Vielleicht ist es besser für Sie, so etwas zu haben:

%Vor%

Was ist das PayPalWorkflow überhaupt? Es bedeutet mir momentan nichts ... Vielleicht möchten Sie payPal.startPaymenetProcess(); mit diesem oder

Sie wollen es mit 1 Methodenaufruf initiieren und beenden?

Sie müssen Ihr System besser beschreiben und abstrahieren und dann folgen die einfachen Namen.

Lass uns dein Beispiel vergessen ...

und hier sind meine Gedanken zu do/perform/run/execute

run - hier geht es um kontinuierlichen Prozess. Etwas, das dauern wird. Kann während des Laufens usw. konfiguriert werden.

do - Ich werde das do -Wort nicht verwenden, weil es in Java (meine Arbeitssprache) ein Befehl ist, der von der Sprache

definiert wird

perform - ... eine Aufgabe. Etwas, das kurz und schnell und wiederholt ausgeführt wird

execute - der letzte Schritt von etwas Komplexem mit vielen Vorbereitungen, die vorher notwendig sind

    
Leni Kirilov 19.05.2010 17:19
quelle
0

Semantik beiseite, in Java ist public void run() fast immer korrekt. Dies liegt an der Runnable , RunnableFuture und Executor .

    
Powerlord 19.05.2010 18:03
quelle
0

Ja, behaltet es einfach. Zuallererst sollten die Funktionsnamen niedriger sein. Dann, anstatt etwas wie PeformReportGeneration , willst du generateReport . Es vermittelt die gleiche Botschaft prägnanter.

In deinem Fall ist es schwieriger, da Workflow nicht wirklich ein Verb ist ... wie wäre es mit PerformPayPalWorkflow , sondern nur mit run , z. B.:

%Vor%

Wenn Sie nur ein PayPal -Objekt haben, das mehr als nur einen Workflow erledigt, ... bin ich mir nicht sicher. Ich brauche mehr Informationen darüber, wie der Code eingerichtet ist, was ein Workflow in diesem Fall ist, usw.

    
Claudiu 19.08.2010 16:20
quelle

Tags und Links