Beachten Sie, dass Neulinge während der Java-Entwicklung lesbaren Code schreiben müssen

Einführung

Als Universität und Doktorand war ich zum ersten Mal nach meinem Eintritt in das Unternehmen mit Java beschäftigt. Nach dem Training für Neulinge habe ich nur eineinhalb Jahre Erfahrung in der Java-Entwicklung. Daher möchte ich die Punkte mitteilen, die beim Schreiben von Quellcode in den Projekten, an denen ich teilgenommen habe, zu beachten sind, sowie die Punkte, auf die in der Überprüfung hingewiesen wurde.

Machen Sie Klassennamen, Methodennamen und Variablennamen leicht verständlich

① Befolgen Sie die Namensregeln des vorhandenen Quellcodes

Die Projekte, an denen ich in den letzten anderthalb Jahren beteiligt war, sind hauptsächlich die Erstellung neuer Funktionen oder die Stapelerstellung bestehender Systeme. Vor dem Erstellen einer neuen Klasse ist es wichtig, zuerst den vorhandenen Quellcode zu lesen, um die Namensregeln zu verstehen. Lesen Sie zunächst den vorhandenen Code, bevor Sie beginnen!

Beispiel: `OldProductDeleteBatch.java``` ⇒ Vorhanden `CampaignFileStopBatch.java``` ⇒ Neu

Es ist eine Namensregel für Nase + Verb + Charge.

② Machen Sie den Variablennamen leicht verständlich, auch wenn er lang ist

errorUndmessageUndidDie Variablennamen sind kurz, aber wenn Sie sorgfältig darüber nachdenken, erhalten Sie keine Informationen. Welcher Fehler? Was für eine Nachricht? Wo id? Niemand weiß es außer der Person, die es geschrieben hat.

Genauer `FormatError```, wenn ein Formatanzeigefehler vorliegt Für Warnmeldungen warningMessage```, Für die Datei-ID `` fileId``` Lass uns schreiben.

③ Versuchen Sie, korrektes Englisch zu schreiben

Natürlich gibt es Leute, die nicht gut Englisch können, aber ich denke, dass korrektes Englisch notwendig ist, um denjenigen, die den Quellcode lesen, die Absicht korrekt zu vermitteln.

Zum Beispiel: ① Boolesche Variable, die bestimmt, ob die Datei vorhanden ist boolean fileexist ⇒boolean fileexists

② Variable zum Speichern der ID der Kampagnendatei string campignfileid ⇒ string campaignfileid

Schreiben Sie Kommentare positiv

Für erfahrene Ingenieure ist es vielleicht besser, nicht häufig Kommentare zu schreiben, aber ich denke, es ist besser für Anfänger, positiv zu schreiben.

Zu Beginn wurden die Verarbeitungsinhalte wie unten gezeigt in Kommentaren aufgeführt, und der Code wurde geschrieben, nachdem das gesamte Bild erfasst wurde. Ich denke, wir können auf diese Weise klären, was zu tun ist.

comment.java


/*--------------------------------------------------------------------------------------------------------------
Untersuchen Sie jede Zeile der hochgeladenen TSV-Datei
	0.id		1.Name 2.Schülernummer
						
* Die in der TSV-Datei aufgeführte Studentenregistrierungsnummer ist die DB-Nummer int._number

Wenn ein Fehler auftritt, rufen Sie die folgende Methode auf, um die Fehlermeldung zeilenweise in das Blatt einzufügen
・ AddErrorRow():Wenn alle Daten null sind
・ AddStudentErrorRow(): Wenn die Anmeldeinformationen der Schule fehlerhaft sind
--------------------------------------------------------------------------------------------------------------*/
for(){
    //Schreiben Sie eine bestimmte Verarbeitung
}

Und noch etwas: Als Ingenieur vergesse ich oft, was ich im Laufe der Zeit geschrieben habe. In diesem Fall können Sie den Inhalt des Quellcodes sofort verstehen, wenn Sie einen Kommentar haben.

Schreiben Sie ähnliche Prozesse zusammen

Beim Erstellen einiger Stapelprozesse habe ich festgestellt, dass ich einen ähnlichen Prozess geschrieben habe.

Zum Beispiel das Erstellen der folgenden Excel-Tabelle:

ExcelFormat.java


    public static Workbook newWorkbook(){
		Workbook newWorkbook = new SXSSFWorkbook();
		
		CellStyle styleHeaderLabel = null;
		CellStyle styleHeaderValue = null;
		CellStyle styleHeaderValue = null;
		
		DataFormat format = newWorkbook.createDataFormat();
		
		//Schriftarteneinstellungen
		Font font = newWorkbook.createFont();
		font.setFontName("MS Gothic");
		font.setFontHeightInPoints((short)9);
		
		//Formatierung für die Anzeige von Header-Strings
		styleHeaderLabel = newWorkbook.createCellStyle();
		styleHeaderLabel.setBorderBottom(CellStyle.BORDER_THIN);
		styleHeaderLabel.setBorderTop(CellStyle.BORDER_THIN);
		styleHeaderLabel.setBorderLeft(CellStyle.BORDER_THIN);
		styleHeaderLabel.setBorderRight(CellStyle.BORDER_THIN);
		styleHeaderLabel.setFillForegroundColor(HSSFColor.LIGHT_CORNFLOWER_BLUE.index);
		styleHeaderLabel.setFillPattern(CellStyle.SOLID_FOREGROUND);
		styleHeaderLabel.setVerticalAlignment(CellStyle.VERTICAL_TOP);
		styleHeaderLabel.setWrapText(true);
		styleHeaderLabel.setFont(font);
		
		addHeader(newWorkbook);
		
		return newWorkbook;
	}
	
	public static void addHeader(Workbook workbook){
		//Initialisieren Sie das Blatt und legen Sie den Namen des Blattes fest
		Sheet mainSheet = workbook.createSheet();
		mainSheet.createFreezePane(0, 1);
		workbook.setSheetName(SHEET_NO, SHEET_NAME);

		int colNumber = 1;
		int rowNumber = 1;
		Row row = mainSheet.createRow(rowNumber);
		Cell cell = null;
		CellStyle styleHeaderLabel = workbook.getCellStyleAt((short)(workbook.getNumCellStyles()-3));

		//Header einfügen
		for(String headerName : HEADER_LIST){
			cell = row.createCell(colNumber++);
			cell.setCellStyle(styleHeaderLabel);
			cell.setCellType(Cell.CELL_TYPE_STRING);
			cell.setCellValue(headerName);
		}

		int maxColNumber = 0;

		//Passen Sie die Größe der Spalte an
		for(int i = 1; i < colNumber; i++) {
			mainSheet.setColumnWidth(i, 5000);
			maxColNumber = i;
		}

		//Stellen Sie die Kopfzeile auf Autofilter
		mainSheet.setAutoFilter(new CellRangeAddress(1,1,1,maxColNumber));
	}

Tatsächlich gibt es im Batch-Prozess einige ähnliche Prozesse. Wenn Sie sie in einer Klasse gruppieren und den Prozess gemeinsam nutzen, wird der Quellcode kürzer und die Lesbarkeit verbessert. Wenn Ihre Quelle zwei oder mehr ähnliche Prozesse enthält, überlegen Sie, ob dieser Prozess gemeinsam genutzt werden kann oder ob er irgendwo zusammengefasst werden kann.

Schreiben wir mit hoher Unabhängigkeit

Schauen Sie sich den folgenden Quellcode an.

file.java


for(int i=0;i<file.arrtibuteSize();i++){
    if("00000000".equals(file.getAttribute(i).getId()) && !file.getAttribute(i).getValue().isEmpty()){
         ids.add(file.getAttribute(i).getValue());
         
         break;
    }
}

Die Schreibweise `! File.getAttribute (i) .getValue (). IsEmpty ()` `hier lautet, dass der Wert von` file.getAttribute (i) .getValue () `nicht immer null ist. Annahmen sind erforderlich. (Weil `NullPointerException``` auftritt, wenn null gesetzt ist) Dieses Mal wurde das referenzierte Objekt so festgelegt, dass der Wert hier nicht null ist. Sie müssen jedoch auch die Situation berücksichtigen, in der es nicht festgelegt ist.

Es ist sicherer, so zu schreiben, dass es nicht herunterfällt, selbst wenn beim Verweisen auf ein Objekt, das durch eine solche unabhängige Verarbeitung erstellt wurde, etwas festgelegt wird.

Fest:

file_2.java


for(int i=0;i<file.attributeSize();i++){
    var fileAttr = file.getAttribute(i);
    if(!"00000000".equals(fileAttr.getId())){
        continue;
    }

    var value = fileAttr.getValue();
    if(value != null && !value.isEmpty()){
          ids.add(value);

          break;
    }
}

Wenn Sie dies schreiben, wird "NullPointerException" vermieden.

Vereinheitlichen Sie den Schreibstil

Es ist eine sehr detaillierte Geschichte, aber ich denke, es ist besser, persönliche Regeln festzulegen, wenn Sie anfangen, den Quellcode zu schreiben. Beispiel:

rule.java


for(int i =0;i<ids.length;i++) {
 //なにかの処理を書く
}

Der obige Quellcode mag verwirrend sein, aber schreiben Sie die Argumente nach für()Ich habe kein Leerzeichen nach für gesetzt, aber ich habe ein Leerzeichen nach den Klammern gesetzt. Zeigen Sie die Argumente nach solchen für und wenn an()Lassen Sie uns vereinheitlichen, ob ein Raum mit halber Breite verbleiben soll oder nicht.

rule2.java


for(int i=0;i<ids.length;i++){
 //なにかの処理を書く
}

#Zusammenfassung Was haben Sie gedacht.

Zuerst habe ich mein Bestes getan, um nur den Quellcode zu verschieben, aber ich denke allmählich über Lesbarkeits- und Erstellungsregeln nach. Für mich ist "Programmieren nicht der Zweck" das Wichtigste. Ich denke, das Wichtigste ist, nach den Motiven "Ich möchte etwas machen" und "Welche Art von Funktion möchte ich realisieren" zu forschen und zu programmieren.

Recommended Posts

Beachten Sie, dass Neulinge während der Java-Entwicklung lesbaren Code schreiben müssen
Dinge, auf die Sie bei der zukünftigen Java-Entwicklung achten sollten
Grundlagen der Java-Entwicklung ~ Schreiben von Programmen * Übung 1 ~
Punkte, die bei Java beachtet werden müssen, sind gleich
java: Wie schreibe ich eine generische Typliste? [Hinweis]
[Java] Hinweise zur Typinferenz in Java 10
So erstellen Sie eine Java-Entwicklungsumgebung mit VS Code
Dinge, die Sie beim Schreiben von Code in Java beachten sollten
Einstellungen für die Eclipse-Installation und die Verstärkung der Codevervollständigung (Mac für Java-Entwicklung)
Java 14 neue Funktionen, mit denen Code geschrieben werden kann
Wie man guten Code schreibt
Wie schreibe ich einen Java-Kommentar
Schreiben Sie Java8-ähnlichen Code in Java8
[R Spec on Rails] So schreiben Sie Testcode für Anfänger von Anfängern
Grundlagen der Java-Entwicklung ~ Schreiben von Programmen (Variablen und Typen) ~
[Anmerkung] Java: Ist es notwendig, Gleichheit für die Beurteilung der Gleichheit zu überschreiben?
Java # 6 studieren (Wie man Blöcke schreibt)
[Java] Mit Arrays.asList () zu beachtende Punkte
Erstellen einer Java-Entwicklungsumgebung (für Mac)
So schreiben Sie eine Java-Variablendeklaration
Meine Gewinnnotiz: Einführung von Java in Ubuntu
So schreiben Sie leicht verständlichen Code [Zusammenfassung 3]
Java-Entwicklungsumgebung (Mac, VS Code)
Dinge, die in bedingten Ausdrücken zu beachten sind
[Android] Konvertieren Sie Android Java-Code in Kotlin