[JAVA] Schreiben wir einen Code, der einfach zu pflegen ist (Teil 2)

1. Worüber man diesmal sprechen soll

2. Chat

Wir haben viele Meinungen aus dem Artikel Letztes Mal "Schreiben wir einfach zu wartenden Code (Teil 1)" erhalten. Vielen Dank! Es ist eine kleine persönliche Geschichte, aber ich bin ein 30-jähriger junger Ingenieur, 6 Jahre nachdem ich in die aktuelle Firma eingetreten bin. Da ich an der Universität und an der Graduiertenschule Chemie studiert habe, entspricht meine Programmiergeschichte fast meiner Einstellungsgeschichte. Ich habe vor, jetzt die richtige Antwort zu formulieren, aber ich kann das Gefühl eines Frosches im Brunnen immer noch nicht abwischen. Es ist sehr hilfreich, wenn Sie die inhaltlichen Fehler, besseren Methoden und unterschiedlichen Perspektiven kommentieren können. Bitte.

3. Techniksammlung

3.1 Verwenden Sie für die Namen von Methoden und Variablen kein Englisch über dem Junior High Level

Da die in der Programmierung verwendeten Zeichen im Grunde genommen Alphabete sind, ist es bequemer, englische Wörter zu verwenden. Wenn Sie jedoch der Meinung sind, dass Sie keine englischen Wörter verwenden, ist der Code möglicherweise schwer zu pflegen.

Wenn Sie beispielsweise eine Variable mit der folgenden Bedeutung benennen würden, wie würden Sie sie benennen?


Stellen Sie sich eine Klasse vor, die einen Geschäftsbericht darstellt.


Natürlich gibt es keine 100 richtigen Antworten. Übrigens, wenn Sie es einfach mit Google Translation ins Englische übersetzen ...

ist geworden.

・ ・ ・

Ich denke, es würde so aussehen.

Das englische Wort Implementierung wird in der Junior High School nicht verwendet. (Dieses Mal habe ich mir die englischen Wörter auf [dieser Site] angesehen (http://www.eigo-duke.com/tango/chu1.html).) Wenn Sie dies nicht auf einen Blick als "implementiert" lesen können Sollte auch ein Projektmitglied sein. Wenn Sie es zu sehr einschränken, wird es schwierig sein, "Menschen zu schaffen, die verstehen", aber ich denke, es kann schwierig sein zu sagen, dass Menschen, die kein Englisch verstehen, eher Englisch lernen. Der Kompromiss ist "über Englisch der Mittelstufe". Selbst wenn es ein schwieriges Wort ist, wenn es in der Branche häufig verwendet wird, sollten Sie es natürlich verwenden.

Es wird übrigens nicht empfohlen, einfach Seriennummern in den Namen einzugeben (Datum_01 usw.). Wenn Sie eine große Anzahl von Variablennamen festlegen müssen und diese eng miteinander verbunden sind, damit Sie sich auch bei der Zuweisung von Seriennummern nicht unwohl fühlen, ist dies akzeptabel. Andernfalls wird "Diese Variable" später angezeigt. Was bedeutet "tun"? " (Wenn Sie sich die Kommentare ansehen, können Sie sie bis zu einem gewissen Grad verstehen, aber umgekehrt können Sie sie nur verstehen, wenn Sie sich die Mühe machen, die Kommentare anzusehen.)

3.2 Beachten Sie bei Namen mit zwei oder mehr Wörtern die Reihenfolge

In Abschnitt 3.1 war der Variablenname, an den ich denke, "date_XXX". In diesem Abschnitt werde ich darüber sprechen, ob "Date" vorne oder hinten gebracht werden soll. Diese Antwort hängt natürlich vom Anlass ab. Daher möchte ich auf die Denkweise eingehen, die ich als Richtlinie habe.

Das Wichtigste für mich ist zunächst: "Welche Einheit ist leicht zu sehen / zu verstehen, wenn man sich mögliche Verbesserungen in der Zukunft vorstellt?" Betrachten Sie das Beispiel in Abschnitt 3.1.

Stellen Sie sich in diesem Beispiel eine zukünftige Verbesserung vor, die lautet: "Ich möchte nach Datum sortieren. Das Datum ist ein Datum, aber welche Art von Datum hatte dieses Objekt? Warum ist es einfach zu sortieren?" Hat. Im Gegenteil: "Ich habe bereits ein Berichtserstellungsdatum, möchte aber auch den Autor hinzufügen. Oh, ich möchte einen Business Implementer und einen Entscheidungsträger! Sie können sich die Verbesserung vorstellen. In diesem Fall ist die Verwendung möglicherweise einfacher, wenn sie nach den Achsen create_XXX und jisseki_XXX organisiert ist.

Es gibt keine klare Antwort darauf, aber es ist schlecht, überhaupt nicht darüber nachzudenken. Bitte nehmen Sie es als Erinnerung. Ich denke, es ist Zeitverschwendung, zwei oder drei Stunden damit zu verbringen, sich für diese Benennung zu entscheiden.

3.3 Nennen wir es nach dem Inhalt

Welche Art von Methode stellen Sie sich vor, wenn Sie die folgenden Methodennamen sehen? Denken Sie übrigens, dass `` `int categoryId```, das zum ersten Mal erschien, der Schlüsselwert der Kategorie für die Klassifizierung einer großen Anzahl von Elementen ist. Stellen Sie sich einen Teil der Bildschirmlogikverarbeitung vor, dass auf dem Webbildschirm, auf dem die Artikelliste angezeigt wird, ein Pulldown namens "Kategorie" angezeigt wird. Wenn Sie diese ändern, wird sie auf die Artikelliste dieser Kategorie eingegrenzt und erneut angezeigt.

 public static List<String> getListItemTitle(int categoryId) {
  //Inhalte verarbeiten

  }

"Ich frage mich, ob ich auf die Datenbank zugreifen und eine Liste der Elemente mit der Kategorie-ID als Schlüssel erhalten werde" oder "Ich frage mich, ob nur die Elemente der entsprechenden Kategorie-ID aus der Elementliste extrahiert werden, die bereits als Objekt erfasst wurde". Ich denke, Sie können sich so etwas vorstellen.

In der Tat, bei dieser Methode, zusätzlich zu SELECT für eine solche Listenerfassung, was ist, wenn Sie hören "Ich führe ein INSERT in der Suchverlaufstabelle aus, die dieser Benutzer nach dieser Kategorie-ID gesucht hat." Ist es nicht "Eh? Aktualisieren Sie die DB ?!"

Wenn Sie nach Kategorien eingrenzen und SELECT anwenden, besteht meiner Meinung nach die Anforderung, dass Sie den Verlauf immer registrieren und als Paar ausführen möchten. Wenn ja, sollten Sie irgendwo im Methodennamen erkennen können, dass Sie auch INSERT ausführen. Wenn Sie nicht verstehen, was die Methode tut, indem Sie nur den Namen betrachten, wird sie möglicherweise unbeabsichtigt in zukünftigen Verbesserungen wiederverwendet und möglicherweise wird ein seltsamer DB-Datensatz erstellt.

Ich denke, dass "dann der Methodenname länger sein wird, oder?", Aber anstatt des Namens "Ich habe keine wichtigen Informationen, weil ich sie kürzen möchte", der Name "Es enthält genügend Informationen, ist aber lang". Es ist jedoch sehr einfach zu warten. Ich möchte jedoch nicht 100 Zeichen und 200 Zeichen zulassen, daher ist Moderation wichtig.


Ich werde das nächste Mal weiter über Namen sprechen.

Recommended Posts

Schreiben wir einen Code, der einfach zu pflegen ist (Teil 2)
Schreiben Sie einfach zu wartenden Code (Teil 1)
Schreiben Sie einfach zu pflegenden Code (Teil 4)
Schreiben Sie einfach zu wartenden Code (Teil 3)
Schreiben Sie Code, der schwer zu testen ist
So identifizieren Sie den Pfad, auf dem leicht Fehler gemacht werden können
Wie man Code schreibt, der objektorientiertes Ruby denkt
Einfach zu wartender FizzBuzz
Easy Null Check - Ich möchte Ihnen die Möglichkeit geben, guten Code zu schreiben. 6 [C # Refactoring-Beispiel]
Java 14 neue Funktionen, mit denen Code geschrieben werden kann
[Java] Code, der schwer zu bemerken, aber furchtbar langsam ist
Schreiben wir einen Testcode für die Anmeldefunktion mit Spring Boot
Lassen Sie uns ein custom_cop erstellen, das auf das Schütteln des Namens hinweist
Die Funktion ist sehr einfach zu bedienen
AtCoder heißt TLE und spricht darüber, wie man schönen Code schreibt
Schreiben Sie eine dritte If-Anweisung, die weder eine if-Anweisung noch ein ternärer Operator ist
Beachten Sie, dass VS Code + JUnit 5 unter Windows 10 verwendet werden kann
Erstellt eine Bibliothek, die die Handhabung von freigegebenen Android-Einstellungen erleichtert
[Kleine Geschichte] Irreführender Methodenname (eine Geschichte, die aufgrund von setScale Zeit verschwendet hat.