Permalink

Scrumwall – mit oder ohne digitale Hilfsmittel?

Heute gibt es wieder einen “Mitmach”-Beitrag. Es geht um das Thema Scrum und im Speziellen um die Scrumwall (oder Scrumboard). Auf dieser sind die aktuellen Aufgaben angeheftet und wandern durch die verschiedenen Status hindurch bis sie zur Übersicht abgenommen werden können. Oftmals wird in der Literatur ein Whiteboard oder ähnliches Instrument beschrieben, das mit Papierkärtchen gefüllt ist. Wie sieht das bei euch aus? Gibt es ein digitales Pendant?
Weiterlesen →

Flattr-badge-large in Scrumwall - mit oder ohne digitale Hilfsmittel?

Permalink

GWT – den CI Build beschleunigen

Um ein CI-System sinnvoll zu nutzen, muss der Build möglichst schnell laufen. Dazu gehören neben dem Unittests auch der GWT Compiler und an beiden Stellen gibt es einige Optimierungsmöglichkeiten die wir heute mal betrachten werden.

GWTTestCase auf gwt-unit-test migrieren
GWT bietet GWTTestCase um UnitTests zu programmieren. Der Nachteil an dieser Methode ist jedoch, dass so bei einem UnitTest extra ein TomCat Server gestartet werden muss. Dies ist relativ zeitaufwändig und kann durch die Benutzung der gwt-test-utils verbessert werden. Die gwt-test-utils wurden bereits vorgestellt. Die Funktionsweise ist so, dass der Teil der möglichst dicht am Javascript liegt durch sogenannte Patcher überschrieben wird. Das heißt, dass für die Testdurchführung nur noch Java benutzt werden muss. Kritisch an diesem Verfahren ist, dass man so nicht dem compilierten Code testet. Man sollte aber in GWT soviel Vertrauen haben, dass der GWT-Compiler den Java Code ordnungsgemäß in JavaScript-Code transformiert. Auf der anderen Seite kann man so neben der von Google gepatchten Emma Version auch Cobertura nutzen, um die Testabdeckung zu bestimmen. Insbesondere die Auswertung im Hudson/Jenkins CI finde ich persönlich bei Cobertura übersichtlicher.

Junit-Test in einer VM ausführen – forkmode sinnvoll nutzen
JUnit hält 3 Optionen bereit wie die Erzeugung neuer VMs verwaltet wird. So kann in einem Batch, einem Test oder für den gesamten Testlauf eine neue VM erzeugt werden. Die Standard-Einstellung ist per Test, was bedeutet, dass jeder Test eine eigene VM nutzt. Diese muss als erzeugt und nach dem Test verworfen werden. Wenn man am Class-Loader keine größeren Manipulationen vornimmt, kann man aber auch mehr Test in einer VM durchführen. So spart man sich insbesondere bei vielen Test die Erzeugung und das Verwerfen von neuen VMs. Aus persönlicher Erfahrung kann ich sagen, dass dies wirklich sehr viel Zeit einsparen kann. So konnte ein Testdurchlauf nur durch diese Option von über 45 Minuten auf weniger als 5 Minuten reduziert werden.

SoftPermutations
GWT compiliert für jede Sprache und für jeden Browser eine eigene JavaScript-Datei, sodass ein Benutzer nur den relevanten Code herunterladen muss. Lokal compilieren daher viele Entwickler eine spezialisierte Version, die nur in diesem lokalen Umfeld nutzbar sind. Zum Beispiel eine deutsche Version die für den Firefox optimiert ist. Auf dem CI-System ist dies aber zu speziell und man benötigt hier die Versionen für alle Browser. Es gibt aber die Option “collapse-all-properties“, welche für das CI-Sytem sehr gut geeigent ist. Dadurch wird statt vieler verschiedender JavaScript Dateien eine große Datei compiliert und die Optimierungen durch Factories realisiert. D.h. es wird eine spezialisierte Version benutzt, wenn dies vom Browser her erforderlich ist. So wird das Deferred Binding nun realisiert. Der Vorteil ist, dass auf diese Art die Build-Geschwindigkeit weiter verbessert wird. Von ca 30 Minuten konnten wir den GWT-Compiler so auf wenige Minuten reduzieren.

Fazit:
Mit diesen 3 Änderungen ist es möglich einen langlaufenden Build wieder in einen annehmbaren Zeitbereich zu überführen. In einem Projekt von ca 2,5 Stunden auf 15 Minuten.

Flattr-badge-large in GWT - den CI Build beschleunigen

Permalink

Frohe Weihnachten

Diese Woche gab es den letzten Artikel für dieses Jahr. Im nächsten Jahr geht es dann wieder weiter und darum bleibt mir nur noch zu sagen:

Ich wünsche euch allen ein Frohes Fest und ein schönes, erfolgreiches und gutes neues Jahr 2012.

             *
            /.\
           /..'\
           /'.'\
          /.''.'\
          /.'.'.\
   "'""""/'.''.'.\""'"'"
     jgs ^^^[_]^^^

Permalink

I18n Property-Dateien für GWT automatisch erzeugen

Internationalisierung ist bei Webanwendungen ein wichtiges Thema und so gibt es auch viele Ansätze die Mehrsprachigkeit in eine Anwendung zu bekommen. GWT nutzt einen Ansatz der zum Teil auf speziellen Interfaces beruht. Da man diesen Programmcode nicht an ein Übersetzerbüro geben kann, muss man eine übersichtlichere Struktur generieren lassen.
Weiterlesen →

Flattr-badge-large in I18n Property-Dateien für GWT automatisch erzeugen

Permalink

2-step verification mit dem Google Account

Ja es gibt heute endlich wieder einen neuen Artikel und der hat dann auch gleich wieder mit Google zu tun, aber ich meine das Thema ist recht interessant. Leider hat die ganze Geschichte nicht mit PHP zu tun, dafür sind aber zum Teil die Androiden angesprochen.
Weiterlesen →

Flattr-badge-large in 2-step verification mit dem Google Account