Praktische Pakete, die Leute kennen sollten, die sich entschieden haben, Java zu schreiben

Einführung

Normalerweise mache ich Webentwicklung in Go-Sprache, aber vor kurzem habe ich mit Java Spring mit der Webentwicklung begonnen. ** "Das ist zu bequem !!" ** Es gab mehrere Pakete, daher möchte ich sie vorstellen.

lombok lombok kann weggelassen werden, indem einfach der Kesselplattencode des Konstrukteurs, Getter, Setter, Builder usw. mit Anmerkungen versehen wird. Das mag ziemlich berühmt sein, aber für mich, der Java nur in Universitätsvorlesungen berührt hat, war ich schockiert, redundanten Code erheblich weglassen zu können. Dies allein wird die Entwicklungseffizienz steigern.

Beispiel

Normal

class Sample {
  private String name; 

  public Sample() {}

  public Sample(String name) {
     this.name = name;
  }

  public String getName(){
    return name;
  }

  public void setName(String name) {
     this.name = name;
  }
}

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

Verwenden Sie Lombok

@Getter 
@Setter
@AllArgsConstructor
@NoArgsConstructor
class Sample {
  private String name; 
}

Dies ist abgeschlossen! Anmerkung ... Es ist ziemlich praktisch!

ParameterizedTest ParameterizedTest ist eine Anmerkung, die in einem Testpaket namens JUnit5 verwendet werden kann. Diese Anmerkung erleichtert die Implementierung des tabellengesteuerten Tests, der üblicherweise in der Go-Sprache verwendet wird.

/*
* public String hogehoge(String str);
* append "hoge" str
*/
@ParameterizedTest
@MethodSource("hogeProvider")
void hogehogeTest(String input ,String expect) {
  assetEquals(hogehoge(input),expect);
}

static Stream<Arguments> hogeProvider() {
  return Stream.of(
    arguments("hogehoge","hogehogehoge"),//input,expect
    arguments("test","testhoge")
  );
}

Sie können problemlos viele Testfälle einfügen.

Anmerkung ... ** Ich mag das! ** ** **

Spring Sleuth Spring Sleuth ist ein Tool, mit dem Sie einfach protokollieren können. Fügen Sie es einfach Ihrem Paket hinzu!

Grundsätzlich wird für eine Anforderung die Ablaufverfolgungs-ID immer gleichzeitig mit der Protokollausgabe angezeigt. Zum Zeitpunkt der Protokolluntersuchung

$ xx yy.log |grep <Trace ID>


 Sie können die Protokollausgabe in einer Anforderung von oben überprüfen.

 Spring Sleuth ist nicht der einzige! !!
 Es ist möglich, die Trace-ID weiterzugeben!


 In letzter Zeit haben sich Mikrodienste zum Mainstream entwickelt, und ich denke, dass mehrere Systeme und Anwendungen in einem Prozess über die Web-API usw. übertragen werden.
 Das sehr ärgerliche ist also, dem Protokoll zu folgen.

 Angenommen, Sie haben ein System namens A-B-C angeschlossen. Wenn ein Benutzer eine Anforderung an System A stellt und ein interner Fehler in System A auftritt, müssen möglicherweise B und C untersucht werden.
 Da die Systeme jedoch getrennt sind, muss jedes System im Voraus eine ID protokollieren, die bei der Prüfung des Protokolls für einen Anforderungsfluss eindeutig identifiziert werden kann.


 Trace-IDs können automatisch zwischen Systemen weitergegeben werden, auf denen dieser Spring Sleuth installiert ist. Daher kann das Protokoll mit derselben Trace-ID untersucht werden, und die Datenextraktion wird reibungslos. Wenn Sie auch ein teamübergreifendes System eingeführt haben, ist es meines Erachtens möglich, eine Protokollumfrage anzufordern, indem Sie einfach die Ablaufverfolgungs-ID angeben.

 ** Zu bequem! !! !! ** ** **

## Zusammenfassung
 Der Frühling ist sehr praktisch und kann größtenteils mit vorhandenen Paketen ergänzt werden. Java ist überraschend cool, um anständige Apps (Implementierungen und Tests) zu erstellen! Ich habe das verstanden.

 Ich möchte wütend auf mich selbst werden, der Java hasste!


 Ich habe diesmal nicht über DI- und DI-Container gesprochen, aber diese Funktion ist auch sehr praktisch, daher hoffe ich, sie irgendwo wieder einzuführen.

 Na dann.


Recommended Posts

Praktische Pakete, die Leute kennen sollten, die sich entschieden haben, Java zu schreiben
Java 14 neue Funktionen, mit denen Code geschrieben werden kann
Wie schreibe ich einen Java-Kommentar