Benennung komplizierter Methoden

7

Ich habe eine Methode, um Daten aus einer Datenbank zu ziehen, und ich möchte, dass sie das bekommt:

Limit von fünf Einträgen, Artikeltyp ist Newsletter, Muss aktiv sein (PublishDate & lt; DateTime.Now)

Also denke ich daran, es GetFiveActiveNewslettersByCreatedDate ()

zu nennen

Das scheint mir ein bisschen lang zu sein. Ich schaute auf der Website nach einer guten Möglichkeit, solche Dinge zu benennen, wie würdest du damit umgehen?

    
Wesley 12.03.2012, 19:17
quelle

6 Antworten

4

Um diese spezifische Benennung zu vermeiden, würde ich darüber nachdenken, die Methode generisch zu machen. Etwas wie:

%Vor%     
Nicklas Møller Jepsen 12.03.2012, 19:23
quelle
12

Wie wäre es stattdessen mit so etwas?

%Vor%

Top 5 ist immer noch der Standard, aber es ist nicht mehr zu spezifisch.

    
Ed S. 12.03.2012 19:21
quelle
8

Der Grund, warum ich es vermeiden würde, "fünf" in den Namen zu schreiben, ist persönlich, was es auf der ganzen Linie bedeuten könnte.

Was wäre zum Beispiel, wenn in bestimmten Szenarien statt 5 nur 10 Newsletter angefordert würden? Nun, Sie würden eine zusätzliche Methode GetTenActiveNewslettersByCreatedDate() erstellen. Und jetzt haben Sie ein "Design-Muster", dem nachfolgende Entwickler folgen werden, wenn 20, 50, 100 Newsletter benötigt werden. Dies ist ein Entwurf, der verrotten wird, und Sie können ihn nun abschalten, indem Sie die fünf Parameter parametrisieren.

Natürlich könnte dies YAGNI / spekulative Allgemeinheit sein. Wenn 5 wirklich eine Art von Magie ist, hart-schnell, wird niemals die Regel ändern, dann könntest du es vorsichtig backen. Ich finde nur, dass ich es bereut habe, solche Dinge weit, viel öfter als nicht zu tun und zu sehen.

    
Erik Dietrich 12.03.2012 19:26
quelle
5

Ich würde empfehlen, es in: GetNewsletters(int recordCount=5) umzubenennen. Die Anzahl der Newsletter wäre ein Parameter für die Methode.

Der Rest könnte in ///Summary angenommen und beschrieben werden.

    
Khan 12.03.2012 19:22
quelle
2

Nennen Sie es, damit jedem Entwickler klar ist, was die Methode macht. Selbstkommentar Code ist König. Wenn Ihr Methodenname zu lang wird, machen Sie wahrscheinlich zu viele verschiedene Dinge darin und wären ein Kandidat für das Refactoring.

Was Ihr spezifisches Beispiel betrifft, habe ich kein Problem mit dem Namen, den Sie angegeben haben.

    
KodeKreachor 12.03.2012 19:24
quelle
1

Ich würde eine parametrisierte Methode wie

hinzufügen

GerEntries(T typeofEntity, DateTime date, int maxNumber)

Und natürlich Dokument Methode mit Kommentaren

    
Tigran 12.03.2012 19:21
quelle

Tags und Links