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.
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.
error
Undmessage
Undid
Die 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.
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
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.
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.
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.
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