Lightning Talk 172 – Kotlin in der Praxis

In unseren Lightning Talks teilen unsere Software Engineers ihre Erfahrungen mit bestimmten Technologien und geben Impulse für die Projektarbeit. Die Programmiersprache Kotlin ist dabei nicht nur wegen der Java-Kompatibilität interessant. Unser Kollege Martin Käser berichtet von seinen Erfahrungen aus einem Projekt, das mit Kotlin umgesetzt wurde. Hiermit übergeben wir das Wort an Martin:Bei dem Projekt handelt es sich um eine zentrale Datenverwaltungskomponente in Rahmen des Catena-X Automotive Networks, das eine OpenAPI-Schnittstelle für die Abfrage und den Upload komplexer Geschäftspartnerdatensätze anbietet und diese weiterverarbeitet. Die Anwendung setzt auf dem Framework Spring Boot auf, welches eine sehr gute Unterstützung für Kotlin bietet.Die wichtigsten Kotlin-FeaturesJava-KompatibilitätKotlin ist kompatibel zu Java, kann also zusammen mit Java-Libraries und sogar mit Java-Code im gleichen Projekt eingesetzt werden. Für uns hat der Einsatz wichtiger Libraries wie z.B. Hibernate, OpenAPI und Jackson problemlos funktioniert.Kompakte SyntaxKotlin ermöglicht es im Vergleich zu Java auf einen Großteil des Boilerplate-Codes zu verzichten, wodurch der Code im Idealfall lesbarer wird. Wir haben Data Classes eingesetzt, um das umfangreiche Datenmodell kompakt zu definieren. Auf der anderen Seite besteht aber eine gewisse Gefahr, dass bei übertriebenem Einsatz der mächtigen Sprachmittel der Code schwer zu verstehen ist. Nach Spider-Man: With great power comes great responsibility! Mit Kotlin sind wechselseitige Code-Reviews daher besonders wichtig, um im Team zu einem gemeinsamen Verständnis zu kommen. Starkes TypsystemKotlin hat ein starkes Typsystem, am bekanntesten dürfte die verbesserte Null-Sicherheit sein. Für jeden Datentyp gibt es eine Variante, die immer einen Wert haben muss (z.B. Int, String, MyClass) und eine Variante, die null zulässt (z.B. Int?, String?, MyClass?). Fehler werden so oft schon vom Compiler und nicht erst zur Laufzeit erkannt. Für uns war dies sehr hilfreich, als das Datenmodell angepasst werden musste und z.B. einige Pflichtfelder hinzugekommen sind, aber auch einige auf optional geändert wurden. Diese Änderungen hatten dann zwar große Auswirkungen auf das ganze Projekt. Der Compiler konnte aber die meisten potenziellen Probleme frühzeitig erkennen und sicherstellen, dass keine notwendigen Änderungen vergessen wurden, etwa auch an den Unit-Tests.Verbesserte Collection-APIKotlin hat eine deutlich verbesserte Collection-API verglichen mit Java. Alle wichtigen Datenstrukturen (List, Set, Map) gibt es standardmäßig in der unveränderlichen (immutable) Variante und zusätzlich in einer modifizierbaren Variante. Gerade beim Einsatz funktionaler Techniken sind immutable Datenstrukturen vorteilhaft, da sie weniger fehleranfällig und besser zu optimieren sind. Außerdem bieten alle verwandten Datenstrukturen eine einheitliche und sehr mächtige API. Beispielsweise ist es mit Kotlin sehr einfach möglich, eine Liste nach einem bestimmten Schlüssel zu gruppieren, also in eine Map einzusortieren. Dies haben wir sehr häufig genutzt, wenn unsere Daten aufbereitet werden. Technisch hat Kotlin dies über Extension Methods umgesetzt, womit eine Klasse oder ein Interface modular um neue Funktionalität erweitert werden kann, ohne in Internas eingreifen zu müssen.Ich habe aus dem Projekt einen sehr positiven Eindruck von Kotlin gewonnen. Meiner Ansicht nach löst dies viele der Schwächen und Altlasten von Java auf elegante Weise. Mir persönlich macht die Entwicklung damit noch mehr Spaß!Alle technischen Einzelheiten gibts im Video: Group 69Created with Sketch. Weiterbildung bei eXXcellent solutions Der Beitrag Lightning Talk 172 – Kotlin in der Praxis erschien zuerst auf eXXcellent solutions.

zum Artikel gehen

Helge Burggrabe im Online-Talk: Die Würde. Und die Kunst

„Was ich als Künstler mit Kunstformen beitragen kann, ist, die Würde des anderen tatsächlich als Haltung zu leben. Und nicht nur, das als Recht einzufordern.“ Zu jedem neuen Weisheits-Journal gehört ein neuer Weisheits-Talk. Ich freue mich sehr, dass Helg

zum Artikel gehen

Das Profilbearbeitungs-Zentrum AT-520 SBZ in der Aluminium-Praxis

Das Magazin Aluminium-Praxis stellt in seiner aktuellsten Ausgabe die Funktionen unseres Profilbearbeitungszentrums AT-520 SBZ vor. Den Artikel können Sie auch hier als PDF herunterladen.

zum Artikel gehen

Lightning Talk 175 – Fokus Fokussiertes Arbeiten

Vielleicht geht es euch auch ab und zu so: Der Beschluss, sich jetzt zu fokussieren, fällt leicht, die Umsetzung dessen nicht immer. Unsere Kollegin Jessica Deetz aus dem People & Culture Team, beleuchtet in ihrem Lightning Talk daher das Thema Fokus

zum Artikel gehen

CloudTrail Data Events

In today’s post, I will talk about a hacking investigation I recently took part in. We will look into what went wrong, what the attackers did, and how we can improve detection and prevention to manage such incidents better.

zum Artikel gehen

Containers! Containers everywhere!

The newly introduced ECS Anywhere feature lets us use our existing resources as Compute Power in Amazon ECS. Let’s talk about some basics and see how ECS Anywhere can be set up in Terraform!

zum Artikel gehen