[JAVA] [Inhouse-Lernsitzung] Einführung von "Readable Code"
0. Einleitung
Zielperson
- Programmierer (C ++, Python, Java, JavaScript)
Was ich erzählen möchte
- Nehmen Sie Fälle aus den folgenden Blickwinkeln unter "Lesbarer Code" auf.
- In der Rezension häufig erwähnte Punkte
--Elemente, die leicht zu erklären sind
- Bitte nutzen Sie dies als Gelegenheit, um "Readable Code" zu lesen. Bücher sind systematischer und leichter zu verstehen. Alles Geschriebene ist wichtig.
Vorsichtsmaßnahmen
- Grundsätzlich wird nur der Titel und der Beispielcode nicht veröffentlicht. Sie müssen ein Buch lesen, um es vollständig zu verstehen.
- Der als [Ergänzung] geschriebene Inhalt ist nicht im "Lesbaren Code" aufgeführt.
Inhalt von "Lesbarer Code"
Kapitel 1 Leicht verständlicher Code
Teil I Oberflächliche Verbesserungen
Kapitel 2 Verpackungsinformationen im Namen
Kapitel 3 Namen, die nicht missverstanden werden
Kapitel 5 Wissen, was zu kommentieren ist
Kapitel 6 Kommentare sind korrekt und prägnant
Teil II: Schleifen- und Logikvereinfachung
Kapitel 7 Erleichtern Sie die Lesbarkeit des Kontrollflusses
Kapitel 8 Teilen Sie eine riesige Formel
Kapitel 9 Variablen und Lesbarkeit
- Kapitel 10 und darüber hinaus wird nicht eingeführt und daher weggelassen
Einführung von "Readable Code"
Kapitel 1 Leicht verständlicher Code
- Der Code sollte leicht zu verstehen sein.
- Das wichtigste Prinzip beim Schreiben von Code
- Der Code muss so geschrieben sein, dass andere ihn in kürzester Zeit verstehen können.
- "Grundsatz der Lesbarkeit"
- "Zeit zum Verstehen" steht überhaupt nicht im Widerspruch zu anderen Zielen
- Leicht verständlicher Code führt häufig zu gutem Design und einfacher Prüfung.
Kapitel 2 Verpackungsinformationen im Namen
2.2 Vermeiden Sie generische Namen wie tmp und retval
- Der Name Retval enthält keine Informationen. Verwenden Sie einen Namen, der den Wert der Variablen darstellt.
Verwenden Sie den Namen * tmp nur für Variablen, die eine kurze Lebensdauer haben und für die die vorübergehende Vervollständigung am wichtigsten ist.
2.5 Bestimmen Sie die Länge des Namens
- Kurznamen sind zulässig, solange der Umfang klein ist
2.6 Informationen im Namensformat kommunizieren
-
Sie können den Namen mit Unterstrichen, Bindestrichen und Großbuchstaben füllen.
-
[Ergänzung] Das Java-Format finden Sie weiter unten
Kapitel 3 Unverwechselbarer Name
- Fragen Sie sich oft, ob der Name "Ist es nicht mit einer anderen Bedeutung verwechselt?" Ist.
- Verwenden Sie min und max, um Grenzwerte anzugeben
- Verwenden Sie zuerst und zuletzt, um den Bereich anzugeben
- Verwenden Sie Anfang und Ende für inklusive / exklusive Bereiche
Ergänzung
- Beachten Sie die Synonyme. Das Synonym für Start ist Stopp statt Ende.
http://webspace.jugem.jp/?eid=947
3.6 Boolescher Name
Die Bedeutung von wahr und falsch muss geklärt werden.
Die folgenden Variablen können auf zwei Arten interpretiert werden.
bool read_password = true;
- Passwort muss von nun an ** gelesen werden **.
- Passwort wurde ** bereits ** gelesen
Es ist besser, need_password
oder user_is_authenticate
zu verwenden.
- Booleschen Variablennamen wird häufig das Präfix "is, has, can, should" usw. vorangestellt, um das Verständnis zu erleichtern.
Kapitel 4 Schönheit
Drei Prinzipien
- Verwenden Sie ein Layout, das mit den Mustern übereinstimmt, an die der Leser gewöhnt ist.
- Ähnlicher Code lässt es ähnlich aussehen
- Blockieren Sie den zugehörigen Code zusammen.
Kapitel 5 Wissen, was zu kommentieren ist
- Kommentieren Sie nicht, was Sie aus dem Code erkennen können
- Benenne schreckliche Namen ohne Kommentar um
- "Guter Code> Schrecklicher Code + Guter Kommentar"
5.3 Notieren Sie Ihre Gedanken
- Warum der Code so aussieht und nicht umgekehrt ("Director's Commentary")
- "Hintergrund" in Bezug auf konstante Werte
[Persönliche Ansicht]
Es scheint besser, den Hintergrund nicht nur in die Quelle, sondern auch in den Tabellennamen und den Spaltennamen der Datenbank zu schreiben.
7.5 Schnell von der Funktion zurückkehren
Einige Leute denken, dass Funktionen nicht mehrere "Return" -Minuten verwenden sollten. Blöd. Es ist gut, schnell von der Funktion zurückzukehren. Vielmehr ist es manchmal wünschenswert.
~
Der Grund, warum wir einen Funktionsexit haben möchten, ist, dass wir sicherstellen möchten, dass ein Bereinigungscode ausgeführt wird. Moderne Sprachen bieten diesen Mechanismus auf komplexere Weise.
In Java ist try ... finally
die Bereinigungscode-Sprache.
[Ergänzung] Die Quelle des "Verbots von Rückgaben, die nicht das Ende der Funktion sind"
MISRA-C, ein "Software-Design-Standard für C-Sprache", scheint die Quelle zu sein.
http://d.hatena.ne.jp/eel3/20121225/1356443485
9.2 Reduzieren Sie den Umfang der Variablen
- Reduzieren Sie die Anzahl der Codezeilen, in denen Variablen sichtbar sind, so weit wie möglich.
- Verringern Sie die Position der Definition.
--Variable Definition wird unmittelbar vor der Verwendung von Variablen verschoben
- In der ursprünglichen C-Sprache mussten Variablen am Anfang von Funktionen und Blöcken definiert werden.
Blinddarm
Allgemeine Java-Namensregeln
- Klassenname: Kamelfall beginnend mit Großbuchstaben
- Variablen: Fälle, die mit Kleinbuchstaben beginnen
- Konstante: Alles Kapital, Schlangenfall (Unterstrich getrennt)
- Paket: Alle Kleinbuchstaben
- Benennen Sie Variablen mit Nomenklatur und Methoden mit Verben
Referenzcodierungsstandards
Persönliche Sicht auf Codierungskonventionen
- Bringen Sie keine Umstände in anderen Sprachen mit
- Bringen Sie keine C-Sprachregeln nach Java
- Einschließlich Einrückungsstil usw.
- Achten Sie auf die Zeiten
- Mit der Entwicklung von IDE ändert sich die Definition von einfach zu lesendem Code ein wenig.
- Java hat am Ende eines Feldes einen Unterstrich gesetzt. Derzeit wird es in der IDE in verschiedenen Farben angezeigt, daher wird es nicht empfohlen.
https://www.acroquest.co.jp/webworkshop/javacordingrule/Acroquest_JavaCodingStandard_7_0.pdf
――Der Inhalt des "lesbaren Codes" kann irgendwann altmodisch werden.
Referenzseite
http://qiita.com/AKB428/items/20e81ccc8d9998b5535d