TechBlog

Dieser Blog-Eintrag ist dem Unterkapitel „Introduce Column Constraint“ in Kapitel 7 des Buchs „Refactoring Databases -  Evolutionary Database Design“ gewidmet. Scott W. Ambler und Pramod J. Saldage stellen in ihrem 2006 erschienenen Buch Techniken und Vorgehensweisen für die agile Entwicklung von Datenbanken vor.

Für den Benutzer einer Applikation ist die Performance des UIs einer der wesentlichsten Punkte, über den er Qualität des Produkts wahrnimmt. Kaum etwas ärgert so sehr, als wenn jeder Arbeitsschritt spürbare Verzögerungen verursacht.

Einen Weg, um eine GWT-SuggestBox auch bei einer hohen Anzahl an möglichen Werten performant - und skalierbar - zu halten, möchte ich heute vorstellen.

Googles Framework GWT bietet mit der CellTable bereits eine Komponente für tabellarische Daten an, die sowohl Pagination als auch Sortierung out-of-the-box unterstützt. Die Implementierung des GWT Showcase unter Verwendung von SimplePager und ListDataProvider ist allerdings clientseitig ausgelegt und daher für große Datenmengen, insbesondere wenn ältere Browser unterstützt werden müssen, leider unbrauchbar. Aus diesem Grund haben wir eine Lösung implementiert, die die CellTable verwendet, jedoch immer nur so viele Daten vom Server lädt, wie der Benutzer im Moment sehen möchte.

Softwareentwicklung besteht aus technischem Know-How und Verständnis für die Abläufe und Prozesse, die sich um die technische Umsetzung herum gebildet haben. Robert L. Glass nimmt in seinem Buch Facts and Fallacies of Software Engineering zweiteres unter die Lupe und fasst zusammen, welche Aussagen (Facts) und Trugschlüsse (Fallacies) er in der Community wahrnimmt.

 

Pentaho ist neben Jaspersoft wohl die beste Business-Intelligence-Lösung, die als Open Source Software verfügbar ist. Wir verwenden Pentaho seit einem Jahr und sind bis jetzt sehr zufrieden damit.

    Oft wird zum Befüllen von User Interfaces eine Vielzahl verschiedener Daten vom Server benötigt. Auch beim Persistieren von Benutzereingaben kann es notwendig sein, mehrere Requests an den Server zu senden. Die Kommunikation zwischen Client und Server ist in GWT zwar asynchron, jedoch führt das Absenden eines jeden Requests in einem eigenen HTTP-Request zu einem merklichen Overhead. In diesem Artikel widmen wir uns der Vermeidung dieses Overheads und zeigen, wie sich eine beliebige Anzahl an Requests innerhalb desselben HTTP-Requests mithilfe der RequestFactory zusammenfassen lassen. 

Formulare kommen in Business-Applikationen sehr häufig vor und werden von Benutzern stärker wahrgenommen als die im Backend ablaufende Funktionalität. Es ist daher wichtig, dass sie optisch ansprechend und möglichst einfach auszufüllen sind.

Wer zum ersten Mal als Entwickler das Thema Datum/Kalender berührt, denkt sich meist, dass es sich hier gar nicht um ein komplexes Thema handeln kann. Schließlich hat man damit täglich zu tun und empfindet es als einfaches Konzept. Tatsächlich gibt es bei diesem Themenbereich aber eine besonders große Kluft zwischen dem, wie man als Einzelperson im täglichen Leben damit umgeht, und dem, was eine Software berücksichtigen muss.

Maven bietet einfache Möglichkeiten, um ein Projekt als jar- oder war-Datei auszuliefern. Für eigenständige Anwendungen reicht es aber oft nicht aus, eine jar-Datei zu generieren. Das gewünschte Ergebnis ist vielmehr ein zip-Archiv, welches die Anwendung inklusive der benötigten Bibliotheken, einem Skript zum Starten der Anwendung, und einer Dokumentation z.B. in Form einer Readme-Datei enthält.

In diesem Artikel werde ich vorstellen, wie man mit dem Maven Assembly Plugin und dem Application Assembler Maven Plugin solch ein auslieferbares Archiv erzeugt.

In einem unserer Projekte gab es vor kurzem die Anforderung den Speicherverbrauch zu reduzieren. In diesem Artikel werde ich deshalb beschreiben, welche Möglichkeiten es dafür gibt, und wo deren Vor- und Nachteile liegen. Dieser Artikel beschäftigt sich jedoch explizit nicht mit Memory-Leaks. Es geht vielmehr darum, den minimal benötigten RAM einer Applikation zu senken.