Full-Stack-Entwickler Lumír Ludvík arbeitet seit vier Monaten gemeinsam mit seinem Kollegen Jan Janeczko an einem Projekt für die Forstwirtschaft. Er hat uns einen Einblick in ihre Arbeit gegeben und sogar ein paar praktische Tipps verraten.

Lumír, kannst du uns das Projekt beschreiben, an dem du gerade arbeitest?
Gemeinsam mit meinem Kollegen Honza entwickle ich eine Anwendung zur Verwaltung von Wäldern. Sie gibt den Nutzern die vollständige Kontrolle über ihr Grundstück, bequem von zu Hause aus.
Welche Funktionen und Vorteile bietet die Anwendung?
Die wichtigste Funktion ist, dass Nutzer auf ihren Grundstücken Bäume pflanzen, fällen und das Holz anschließend abtransportieren lassen können. Außerdem lassen sich sämtliche Kosten rund um die Arbeiten erfassen, einschließlich Grundstücks- und Dienstleistungssteuern.

Mit einer zusätzlichen Anwendung, die in Unity geschrieben und in die Website eingebunden ist, können Nutzer ihre Grundstücke virtuell besichtigen. Die Website hat auch eine responsive mobile Version.
Die Anwendung dient außerdem als Ablage für alle bestehenden und zukünftigen Verträge. Sogenannte „Forest Experts“ bearbeiten diese über den integrierten Messenger. Zudem können Nutzer Geldbeträge flexibel zwischen der Anwendung und ihrer Bank hin- und herüberweisen.
Nicht zuletzt können Nutzer für ihre Grundstücke ein PEFC-Zertifikat beantragen und ausstellen lassen.
PEFC ist das weltweit am weitesten verbreitete Waldzertifizierungssystem. Seine Standards sollen die Bewirtschaftung von Wäldern auf lokaler und globaler Ebene verändern. Ziel ist es, Wälder zu erhalten und zu erweitern und eine nachhaltige Forstwirtschaft zu fördern.

Was ist deine Rolle als Entwickler und mit welchen Technologien arbeitet ihr?
Ich bin ausschließlich Frontend-Entwickler und arbeite mit folgenden Technologien:
Frontend: TypeScript, React.js 18 mit einem eigenen Framework, Bootstrap, PrimeReact und unserer eigenen UI-Bibliothek.
Backend: Java 11, MS SQL.
DevOps: Docker, Nginx, Jenkins, Git.
Was konntest du bisher umsetzen?
Die größte Veränderung war der Wechsel von der alten serverseitig gerenderten Anwendung in JSF zu einer Single-Page-Anwendung in React.js. Wir haben alle bisherigen Funktionen eins zu eins in einer schnelleren neuen Version umgesetzt, die einfacher zu warten ist und auf mobilen Geräten besser funktioniert.
Woran arbeitet ihr gerade?
Wir gestalten die gesamte Anwendung neu und modernisieren ihr Erscheinungsbild. Außerdem aktualisieren wir unsere UI-Bibliothek.

Was macht dir an diesem Projekt am meisten Spaß?
Am liebsten optimiere ich die bestehende Lösung. Dabei versuche ich, die Speichernutzung und Laufzeit unserer Komponenten sehr genau auszubalancieren, genau darum geht es auch in diesem Projekt.
Oft ist das undankbare Arbeit. Man verbringt Stunden damit abzuwägen, ob ein bestimmter Leistungsgewinn den höheren Speicherbedarf wert ist und wie oft der betreffende Code überhaupt ausgeführt wird. Aber das Gefühl, wenn die Anwendung ihr gesamtes Potenzial ausschöpft, ist unbezahlbar.
Was war bisher die größte Herausforderung?
Die Antwort ist im Grunde dieselbe wie bei der vorherigen Frage: Optimierung. :)
Man stößt dabei manchmal auf einen der größten Nachteile von React: unnötige erneute Renderings, obwohl sich an unseren Daten, abgesehen von Referenzen im Speicher, nichts geändert hat.
In solchen Fällen muss man manchmal die gesamte Architektur hinterfragen und einen großen Teil der Anwendung neu schreiben. Dann stellt sich allerdings die Frage, ob das wirklich nötig ist. Eine technisch nicht perfekte Architektur bedeutet nicht automatisch schlechtere Leistung oder eine schlechtere Benutzererfahrung. Ein Umbau könnte den Release unnötig verzögern, nur für Verbesserungen, die am Ende lediglich Programmierern auffallen.

Hast du einen Tipp, mit dem du andere Entwickler inspirieren könntest?
Im Frontend kann ich CASL zur Verwaltung von Benutzerrechten empfehlen. Das Besondere an der Bibliothek ist ihre Einfachheit. Man muss nur einige TypeScript-Modelle und Schlüsselwörter zur Erkennung der jeweiligen Rechte definieren und den JSX-Code in eine einfache Konstruktion einbetten. Den Rest der Logik übernimmt die Bibliothek.
Wer die Vorzüge von Docker und CI/CD noch nicht entdeckt hat: Mit einem einzigen Skript Änderungen auszuführen und kurz darauf in der eigenen Umgebung bereitzustellen, kann viel Kopfzerbrechen und Schmerzen beim Testen der Anwendung ersparen.
Mir ist Chilisauce und Nutella auf deinem Schreibtisch aufgefallen. Was magst du lieber? :)
Ich mag beides, aber in letzter Zeit esse ich mehr Nutella. Jeden Donnerstagmorgen mache ich nämlich Pfannkuchen zum Frühstück für uns Rocketeers. :)

Vielen Dank für das Gespräch und die leckeren Pfannkuchen!
Alles Gute!
Das könnte Sie auch interessieren
Agentic EngineeringWann wird ein KI-Agent vom Experiment zum echten Geschäftsprozess?
Wie ein KI-Agent zu einem zuverlässigen und effizienten Geschäftsprozess wird.
Rocket InspiresWie Sie einen AI-Agenten entwickeln, dem Sie vertrauen können: 6 Schritte vom Prompt zum produktiven Workflow
Vom ersten Prompt zum zuverlässigen AI-Agenten. 6 Schritte aus der Praxis.
AI & QAKI im QA: Von ChatGPT-Experimenten zu Agentic Testing
Wie KI die QA verändert und wo ihre Grenzen beim Testen liegen.