Schwierigkeit beim Benennen von Funktionen [duplizieren]

7

Manchmal scheint es, dass ich wirklich keinen Namen für eine Funktion finden kann, die ich schreibe, kann das sein, weil die Funktion nicht zusammenhängend genug ist?

Was machst du, wenn dir kein guter Name für eine Funktion einfällt?

    
quelle

8 Antworten

14

Um Benennungsfunktionen zu verwenden, vermeiden Sie einfach Substantive zu verwenden und benennen Sie sie nach Verben. Einige Hinweise:

  1. Haben Funktionsnamen, die sichtbar sind, z. habe nicht validateInput() und validateUserInput() , da es schwer ist zu sagen, was man gegenüber einem anderen tut. Vermeiden Sie auch Zeichen, die sehr ähnlich aussehen, z. die Nummer 1 und Kleinbuchstaben "l". Manchmal macht es einen Unterschied.
  2. Arbeiten Sie an einem Projekt mit mehreren Personen? Sie sollten einige Zeit damit verbringen, Namenskonventionen zu überdenken, zB wenn der Funktionsname Unterstriche haben sollte, sollte camelCase, etc.
  3. sein
  4. Ungarische Notation ist eine schlechte Idee; vermeide es, es zu tun.
  5. Denken Sie darüber nach, was die Funktion macht. Der Zusammenhalt, den Sie in Ihrer Frage erwähnt haben, fällt mir ein. Im Allgemeinen sollten Funktionen nur eine Sache tun, also nennen Sie sie nicht constructCarAndRunCar() , sondern haben eine Funktion, die konstruiert, und eine andere, die sie ausführt. Wenn deine Funktionen zwischen 20 und 40 Zeilen liegen, bist du gut.
  6. Manchmal, und das hängt vom Projekt ab, möchten Sie vielleicht auch Ihre Funktionsnamen der Klasse voranstellen, wenn die Klasse rein prozedural ist (nur aus Funktionen zusammengesetzt). Wenn Sie also eine Klasse haben, die sich um eine Simulation kümmert, benennen Sie Ihre Funktionen sim_pauseSimulation() und sim_restartSimulation() . Wenn Ihre Klasse OOP-basiert ist, ist das kein Problem mehr.
  7. Verwenden Sie nicht die zugrunde liegenden Datenstrukturen in den Funktionen selbst; Diese sollten abstrahiert werden. Anstatt Funktionen wie addToVector() oder addToArray() zu verwenden, müssen sie stattdessen addToList() sein. Dies gilt insbesondere, wenn es sich um Prototypen handelt oder die Datenstrukturen sich später ändern können.
  8. Schließlich sollten Sie in Ihren Namenskonventionen konsistent sein. Wenn du nach etwas Nachdenken eine Konvention hast, bleib dabei. PHP fällt einem ein, wenn man an inkonsistente Funktionsnamen denkt.

Glückliche Codierung! :)

    
SHC 26.06.2010, 23:49
quelle
2

Manchmal könnte es sein, dass Ihre Funktion zu groß ist und Sie daher zu viele Dinge tun. Versuchen Sie, Ihre Funktion in andere Funktionen aufzuteilen, und es könnte klarer sein, welche einzelnen Funktionen aufgerufen werden sollen.

Mach dir keine Sorgen darüber, Dinge mit ein oder zwei Wörtern zu benennen. Manchmal, wenn Funktionen etwas tun, das in einem kleinen Satz erklärt werden kann, gehen Sie weiter und nennen Sie die Funktion ein wenig länger, wenn es anderen Entwicklern hilft zu verstehen, was vor sich geht.

Ein anderer Vorschlag ist es, Feedback von anderen zu bekommen. Oftmals haben andere, die aus einer anderen Perspektive kommen und die Funktion zum ersten Mal sehen, eine bessere Vorstellung davon, was sie die Funktion nennen sollen.

    
digiarnie 26.06.2010 23:38
quelle
2

Ich folge folgender Regel: Name nach dem Zweck (Warum? - Designentscheidung) und nicht nach dem Inhalt (Was, wie? - kann im Code gesehen werden).

Für Funktionen ist es fast immer eine Aktion (Verb) gefolgt von dem Nomen der Parameter und (oder Ergebnisse. (Off-topic, aber für Variablen verwenden nicht "ArrayOfNames" oder "listOfNames", das sind Typ Informationen aber einfach "Namen") . Dies wird auch Inkonsistenzen vermeiden, wenn Sie den Code teilweise umgestalten.

Bei bestimmten Mustern wie der Objekterstellung, sei konsistent und benutze immer die gleiche Benennung wie "Create ..." (und nicht manchmal "Allocate ..." oder "Build ...") Sie oder Ihre Kollegen werden am Kratzen der Kopfwunde enden)

    
jdehaan 26.06.2010 23:54
quelle
1

Geben Sie Ihr Best-Shot und re-Faktor später, wenn es immer noch nicht passt.

    
cristobalito 26.06.2010 23:37
quelle
0

Ich finde es einfacher, Funktionen zu benennen, wenn ich nicht auf die Wörter verzichten muss. Solange Sie nicht Javascript für die Google Startseite tun, können Sie längere Namen machen.

Zum Beispiel haben Sie die Methode dequeueReusableCellWithIdentifier und mergeChangesFromContextDidSaveNotification in Äpfeln Kakaorahmen.

Solange es klar ist, was die Funktion macht, können Sie es benennen, was Sie wollen, und es später umgestalten.

    
Patrik Björklund 26.06.2010 23:47
quelle
0

Fast so wichtig wie der Funktionsname ist, dass Sie mit Kommentaren konsistent sind. Viele IDEs verwenden Ihre ordnungsgemäß formatierten Kommentare nicht nur, um kontextsensitive Hilfe für eine Funktion bereitzustellen, die Sie möglicherweise verwenden, sondern sie können auch zum Generieren von Dokumentationen verwendet werden. Dies ist unschätzbar , wenn Sie nach längerer Zeit oder bei der Arbeit mit anderen Entwicklern zu einem Projekt zurückkehren.

In akademischen Umgebungen bieten sie eine geschätzte Demonstration Ihrer Absichten.

Eine gute Faustregel ist [Verb] returnDescription. Dies ist mit den Funktionen vom Typ GetName () einfach und kann nicht universell angewendet werden. Es ist schwierig, ein Gleichgewicht zwischen unaufdringlichem und beschreibendem Code zu finden.

Hier ist ein .Net-Kongressleitfaden , der jedoch auf die meisten Sprachen anwendbar ist.

    
Laramie 26.06.2010 23:50
quelle
0

Gehen Sie zu www.thesaurus.com und versuchen Sie, einen besser passenden Namen zu finden, wenngleich Synonyme.

    
Sergej Andrejev 26.06.2010 23:58
quelle
0

Wenn ein Funktionsname zu lang ist, sollte er als praktische Regel in ein neues Objekt atomisiert werden. Dennoch stimme ich allen obigen Beiträgen zu. BTW, nette noob Frage

    
fabjoa 27.06.2010 00:01
quelle

Tags und Links