Java Programmierung - zeitlicher Aufwand für Realisierung?
In meiner Firma, die Warehouse-Management-Software WMS entwickelt, wurde nun umgestellt auf Front-End, Backend-Server in Java mit mit Maven, Jenkins, EclipseLink, Oracle DB und Realisierung in Eclipse.
Wenn ich nun bestimmte Prozesse programmiere und testen möchte, muss ich jedesmal den eigenen lokalen Backend-Server neu starten und das braucht so 80-120 Sekunden bis Eclipse alle relevanten Jars + eigene Änderungen geladen hat. Ändere ich auch nur eine Zeile ab (Hot Code replacement klappt nicht), muss ich wieder diese Zeit warten.
Meine Frage ist nun: Arbeitet jemand in einer vergleichbaren Umgebung und kann mir sagen, ob Compilier-Wartezeiten von 1-2 Minuten akzeptierter Standard für WMS mit 3 Schichten sind?
Ich bin drauf und dran zu kündigen, weil ich einfach überhaupt keinen Workflow mehr finde so und den Eindruck habe, dass die Firma mit dieser Eigenentwicklung auf ein totes Pferd gesetzt hat. Die Aufwände für Realisierung sind so 10x mal höher wie die frühere Entwicklung mit Programmierung in der Oracle-Datenbank.
Vielen Dank für Antworten. ;)
LG Sophie
2 Antworten
(...) muss ich jedes mal den eigenen lokalen Backend-Server neu starten (...)
Für Änderungen muss nicht zwingend der komplette Service neugestartet werden. Schau dir ein Plugin wie JRebel an.
Andernfalls würde ich den Server unabhängig von Eclipse, am besten als Backgroundservice laufen lassen. Via Remote Debugging könntest du dich für Tests an den Prozess hängen.
(...) und kann mir sagen ob Compilier-Wartezeiten von 1-2 Minuten akzeptierter Standard für WMS mit 3 Schichten ?
Je nach Projektkomplexität und -struktur kann ein Build durchaus auch etwas länger (z.B. fünf Minuten) dauern. Das ist nun kein expliziter Sonderfall und hat auch nicht unbedingt mit einem schlechten Konzept zutun.
(...) Ich bin drauf und dran zu kündigen, weil ich einfach überhaupt keinen Workflow mehr finde (...)
Neben den obigen Tipps und einer Überarbeitung des persönlichen Workflows (vielleicht könntest du die Anzahl von Rebuilds bereits selbst reduzieren, bspw. durch mehr Vorplanung/Analyse?) kann ich dir soweit nur noch den Rat geben, das Problem in deinem Unternehmen offen anzusprechen. Frage bei Mitarbeitern herum, wie sie damit umgehen. Möglicherweise kennen sie bereits Wege, um die Entwicklungszeit zu vereinfachen oder dein Entwicklungsumfeld zu optimieren.
Außerdem kann es natürlich sein, dass tatsächlich noch Probleme vorliegen, die generell angepasst werden müssen.
1-2 minuten sind schon unangenehm lang. sind es 1-2 minuten bis zum eigentlichen testen (also build + startup) oder nur der build?
Die von der Firma entwickelten Standard-Funktionen/Komponenten-Jars können in Eclipse nicht durchsucht werden.
Es gibt für Eclipse Plugins wie InstaSearch, die dieses Problem vermutlich lösen können.
Im Quellcode gibt es kein Logging oder Kommentare, (...) Allgemeine Dokumentation wurde auch vergessen (...)
Das sind soweit alles Punkte, die du innerhalb des Unternehmens anbringen müsstest. Da die Umstellung wohl erst vor kurzer Zeit vorgenommen wurde, dürfte das Projekt ja noch recht überschaubar sein und die Integration eines Logging-Frameworks (sofern es da noch kein System gibt) nicht schwer.
Ein weitgehender Verzicht auf Kommentare ist übrigens nicht unüblich und hat auch gute Gründe (Wartungsaufwand, häufig wenig Aussagekraft). Sofern im Quellcode mit passenden/aussagekräftigen Bezeichnern gearbeitet wird, sind sie oft nur dann notwendig, wenn schwer nachvollziehbare Magic ausgeübt wird (Beispiel: Duff's Device, wenn auch eher ein Beispiel für C). Wie es sich bei deinem Projekt verhält, kann ich natürlich nicht beurteilen.
Über den Front-End Code kann man nur raten welcher Backend-Server angesprochen wird.
Sofern es sich um ein Webprojekt handelt, kannst du im Netzwerk-Tab (Entwicklungstools deines Browsers) nachschauen, von welcher IP du einen Response erhältst. Für andere Fälle kannst du dich ebenso nach Monitoring-Software für Netzwerkverbindungen umschauen.
Das ist Build + Start von allerlei möglichen Servern. Z.b. für Komponente Drucken, Kundenauftragsverarbeitung, Reservierung von Bestand,... Frontend braucht so 15 Sekunden + 5 Sekunden anmelden aber ja FrontEnd kann länger offen bleiben.
Die von der Firma entwickelten Standard-Funktionen/Komponenten-Jars können in Eclipse nicht durchsucht werden. Im Quellcode gibt es kein Logging oder Kommentare, Über den Front-End Code kann man nur raten welcher Backend-Server angesprochen wird. Allgemeine Dokumentation wurde auch vergessen und so verlier ich 80% meiner Arbeitszeit mit Warten oder Raten.