Warnung: Dies ist eine nicht sehr ernste Frage / Diskussion, die ich poste ... aber ich bin bereit zu wetten, dass die meisten Entwickler über dieses "Problem" nachgedacht haben ...
Wollte schon immer andere Meinungen zu Namenskonventionen für Methoden einholen, die Daten von irgendwoher abgerufen und zurückgegeben haben ...
Die meisten Methodennamen sind etwas einfach und offensichtlich ... SaveEmployee (), DeleteOrder (), UploadDocument (). Natürlich würden Sie bei Klassen höchstwahrscheinlich die Kurzform verwenden ... Save (), Delete (), Upload ().
Ich hatte jedoch immer Probleme mit anfänglichen Maßnahmen ... wie man die Daten erhält. Es scheint, dass ich bei jedem Projekt zwischen verschiedenen Namenskonventionen hin und her springe, weil ich mit der letzten, die ich verwendet habe, nie ganz zufrieden bin. Soweit ich das beurteilen kann, sind dies die Möglichkeiten ->
- GetBooks ()
- FetchBooks ()
- RetrieveBooks ()
- FindBooks ()
- LoadBooks ()
Was ist dein Gedanke?
quelle
fetch
bei der Datenzugriffszeit ist niedrig , das heißt auf demselben Gerät, von der lokalen Datenbank, aus dem Speicher.load
, oderdownload
wenn die Zugriffszeit höher ist , aus dem Internet, externe Datenbank, aus DateiEhrlich gesagt sollten Sie einfach mit Ihrem Team entscheiden, welche Namenskonvention verwendet werden soll. Aber zum Spaß wollen wir sehen, was Ihr Gedankengang wäre, um sich für eines dieser Dinge zu entscheiden:
Diese Methode gehört zu einer Datenquelle, und es ist uns egal, wie sie abgerufen wird. Wir möchten sie nur aus der Datenquelle abrufen.
Sie behandeln Ihre Datenquelle wie einen Bluthund, und es ist seine Aufgabe, Ihre Bücher zu holen. Ich denke, Sie sollten selbst entscheiden, wie viele er gleichzeitig in seinen Mund passen kann.
Ihre Datenquelle ist ein Bibliothekar und verwendet das Dewey-Dezimalsystem, um Ihre Bücher zu finden.
Diese Bücher gehören in eine Art "elektronische Büchertasche" und müssen in diese geladen werden. Rufen Sie nach dem Laden unbedingt ZipClosed () auf, um einen Verlust zu vermeiden.
Ich habe nichts.
quelle
add
für das Schreiben in eine Datenbank als auch für das Schreiben in den Store verwendet wurde. Jetzt versuche ich, diese zu trennen, und es ist ein Schmerz.Die Antwort ist einfach, sich an das zu halten, mit dem Sie vertraut sind, und konsequent zu sein.
Wenn Sie eine Barnes and Nobles-Website haben und GetBooks () verwenden, verwenden Sie GetMovies (), wenn Sie ein anderes Element wie eine Movie-Entität haben. Also, was auch immer Sie und Ihr Team mögen und konsequent sein.
quelle
In OO (C ++ / Java) verwende ich normalerweise getSomething und setSomething, da ich sehr oft, wenn nicht immer, entweder ein privates Attribut von der Klasse erhalte, die dieses Datenobjekt darstellt, oder es setze - das Getter / Setter-Paar. Als Plus generiert Eclipse sie für Sie.
Ich neige dazu, Laden nur zu verwenden, wenn ich Dateien meine - wie bei "Laden in den Speicher" und das impliziert normalerweise das Laden in Grundelemente, Strukturen (C) oder Objekte. Ich benutze Senden / Empfangen für das Web.
Wie oben erwähnt, ist Konsistenz alles und das schließt Cross-Entwickler ein.
quelle
Es ist nicht klar, was Sie unter "Abrufen der Daten" verstehen. Aus der Datenbank? Eine Datei? Erinnerung?
Meiner Ansicht nach besteht die Aufgabe der Methodenbenennung darin, Unklarheiten zu beseitigen und im Idealfall die Dokumentation nachzuschlagen. Ich glaube, dass dies auch auf Kosten längerer Methodennamen geschehen sollte. Studien zufolge können die meisten fortgeschrittenen Entwickler im Kamelfall mehrere Wörter lesen. Mit IDE und automatischen Vervollständigungen ist das Schreiben langer Methodennamen ebenfalls kein Problem.
Wenn ich also "fetchBooks" sehe, ist es mehrdeutig, es sei denn, der Kontext ist sehr klar (z. B. eine Klasse namens BookFetcherFromDatabase). Woher holen? Was ist der Unterschied zwischen holen und finden? Sie riskieren auch das Problem, dass einige Entwickler bestimmten Schlüsselwörtern Semantik zuordnen. Zum Beispiel Abrufen für Datenbank (oder Speicher) vs. Laden (aus Datei) oder Herunterladen (aus dem Web).
Ich würde lieber etwas wie "fetchBooksFromDatabase", "loadBookFromFile", "findBooksInCollection" usw. sehen. Es ist weniger sichtbar, aber sobald Sie die Länge überschritten haben, ist es klar. Jeder, der dies liest, würde sofort verstehen, was Sie versuchen zu tun.
quelle