Alle Artikel mit dem Schlagwort: java

Technologieupgrade am Beispiel von Java 8

Es gibt viele gute Gründe, eine Java Anwendung auf die aktuelle Sprachversion zu aktualisieren. In größeren Softwareprojekten kann allerdings jedes Technologieupgrade an trivialen Dingen scheitern – Der Spruch “Never touch a running System” ist nicht umsonst so populär. Vor gut einem Jahr haben wir den jStage eShop, unsere E-Commerce-Lösung, auf Java 8 umgestellt. Dieser Erfahrungsbericht zeigt auf, worauf man achten sollte, damit der Wechsel  erfolgreich über die Bühne geht. Java: Sprache und Laufzeitumgebung Mit Java wird sowohl die Programmiersprache Java als auch die Laufzeitumgebung bezeichnet. Mit einer bestimmten Sprachversion entwickelte Anwendungen können nur auf einer Laufzeitumgebung mindestens der gleichen Version betrieben werden. Umgekehrt laufen dagegen ältere Anwendungen fast immer problemlos auf einer neueren Laufzeitumgebung. Dazu gleich mehr. Für uns ergibt sich dadurch die Reihenfolge der Umstellung: Zuerst wird die Laufzeitumgebung aktualisiert, dann die Entwicklung der Anwendung auf Java 8 umgestellt. Umstellung der Laufzeitumgebung Probleme macht in der Regel nicht die eigene Anwendung, sondern die verwendeten Softwarebibliotheken. Kritische Kandidaten sind unter anderem solche, die den Bytecode manipulieren, wie z. B. Javassist (Java Programming Assistant). Hier zahlt …

Freemarker – In Action

Bei der Erstellung einer webbasierten Software Lösung muss man sich frühzeitig auf eine geeignete Technologie zur Erzeugung der Website (Frontend) festlegen. Dies kann sowohl serverseitig als auch clientseitig geschehen. Dieser Beitrag befasst sich mit der serverseitigen Erzeugung von HTML-Code mithilfe der Template-Engine Freemarker. Natürlich ist eine Kombination beider Verfahren in Zeiten von JavaScript und AJAX nicht unausweichlich.

Performance Monitoring mit stagemonitor während der Entwicklung

Der erste Blogpost über stagemonitor gab einen groben Überblick über die vielseitigen Einsatzzwecke und Funktionen des Open Source Performance Monitoring Tools stagemonitor. In diesem Teil beschäftigen wir uns näher mit dem In Browser Widget, welches bereits während der Entwicklung einer Webanwendung Analysemöglichkeiten bietet und ein konstantes Feedback über die Performance gibt. In vielen Fällen bekommt man oft erst mit, dass eine Webanwendung langsam ist, wenn es eigentlich schon zu spät ist und sich ein verärgerter Kunde über eine langsame Seite beschwert. Gerade bei eCommerce Webseiten führt dies teilweise zu erheblichen wirtschaftlichen Schäden. Nicht nur, dass ein verärgerter Kunde wahrscheinlich nicht nochmals einen langsamen Shop besucht, viele machen ihrem Unmut auch bei Freunden oder in sozialen Netzwerken Luft. Deshalb ist es entscheidend, Performance-Bugs so früh wie möglich im Entwicklungszyklus zu beheben. Das In Browser Widget Stagemonitor bietet mit dem In Browser ein Werkzeug an, mit dem die Performance während der Entwicklung analysiert und optimiert werden kann. Zudem wird der Entwickler auf Probleme hingewiesen, die sonst evtl. erst in der Produktion sichtbar werden. Das In Browser Widget …

Warum weniger manchmal eben doch mehr ist

Gehören Sie zu den eher faulen Zeitgenossen? Zugegeben, das klingt nicht gerade nach einer schmeichelhaften Frage. Und dennoch ist sie aus Sicht des Entwicklers goldrichtig mit einem “Ja” zu beantworten, wenn es um die “Lines of Code”, also die Anzahl der geschriebenen Programmzeilen, geht. Warum das so ist? Guter Code ist kurz, prägnant und im besten Falle an anderen Stellen wiederverwendbar. Andererseits ist eine solch komprimierte Essenz fast immer das Ergebnis intensiven Arbeitsaufwandes. Und dieser kostet natürlich Zeit. So ist es nicht weiter verwunderlich, dass eine Aufgabe zwar oft gut und termingerecht gelöst wird, dabei jedoch mehr Programmzeilen entstehen als eigentlich notwendig. Noch ungünstiger wird es, wenn später eine ganz ähnliche Aufgabe nicht oder nur wenig von dem bereits vorhandenen Code profitieren kann und weitere Programmklassen erforderlich macht. “Ich schreibe dir einen langen Brief, weil ich keine Zeit habe, einen kurzen zu schreiben.” (Blaise Pascal) Am Beispiel einer zu erstellenden Tabelle möchte ich zeigen, wie eine Code Optimierung aussehen kann. Die Tabelle habe ich gewählt, da sie ein häufig genutztes Widget (grafische Komponente) bei der …

Testen von Java-REST-Clients mit Mockito und Wiremock

Die meisten Entwickler dürften schon einmal vor dem Problem gestanden haben, einen Test für Software zu entwickeln, welcher von fremden Schnittstellen abhängig ist. Die in diesem Zusammenhang auftretenden Fragen können beispielsweise lauten: Wie kann Geschäftslogik abgeprüft werden, die Zugriff auf externe Schnittstellen beinhaltet? Wie kann der Zugriff auf REST-Schnittstellen getestet werden? Dieser Artikel soll diese beiden Fragen beantworten.

Performance Monitoring mit stagemonitor

Jedes Software Projekt muss sich früher oder später Gedanken über die Performance machen, um marktfähig zu bleiben und den Erwartungen der Nutzer zu entsprechen. Hierzu ist ein gutes Monitoring Werkzeug unerlässlich. Kommerzielle Lösungen sind teuer und bestehende Open-Source-Projekte sind meistens nicht speziell für Webanwendungen ausgelegt oder tun sich schwer mit dem Monitoring von geclusterten Anwendungen. Genau hier setzt stagemonitor an. Stagemonitor ist eine Open-Source Java Application Performance Monitoring Lösung, welche alle Werkzeuge bietet, die während der Entwicklung, Qualitätssicherung und Produktion nötig sind, um die Performance einer Java Webanwendung überwachen zu können. Stagemonitor ist speziell dafür ausgelegt, aktuelle und historische Metriken von geclusterten Anwendungen zu überwachen. Durch die Plug-In Architektur kann der Funktionsumfang beliebig erweitert werden. Stagemonitor in der Praxis bei Hama GmbH & Co KG Aktuell setzen wir stagemonitor für die Entwicklung und die Überwachung der produktiven Shop-Webseite unseres Kunden Hama GmbH & Co KG ein. Das Beispiel Hama zeigt dabei sehr schön die flexiblen Möglichkeiten von stagemonitor, einzelne Server bis zu komplexen Serverclustern mit verschiedenen Anwendungen zu überwachen. Die folgende Grafik veranschaulicht vereinfacht die …