Effective Unit Testing
Author Archives: Guido Franz
Cloud Architecture Patterns
Cloud Architecture Patterns
Mastering Web Application Development with AngularJS
![]() |
Mastering Web Application Development with AngularJS Pawel Kozlowski, Peter Bacon Darwin Packt Publishing August 2013 ![]() |
AngularJS ist ein noch recht neues Javascript Framework, um Single Page Apps zu bauen. Dabei geht es im harten Kern um DOM-Manipulationen. Das Erstaunliche an AngularJS: man hat damit überhaupt nichts zu tun. AngularJS schirmt den Entwickler komplett von dieser Arbeit ab. Er holt sich Datenobjekte (etwa per XHR) und bindet diese mittels sogenannter Direktiven (spezielle HTML-Attribute) an DOM-Elemente. Im Beispiel hier etwa, wird eine Liste mit der Direktive ng-repeat gefüllt.
|
1 2 3 4 5 6 7 8 9 |
<ul> <li ng-repeat="item in list"> <label> <input type="checkbox" ng-model="item.selected" value="1" name="{{item.title}}" /> {{item.title}}<span>${{item.price}}</span> </label> </li> </ul> |
Das Ganze fühlt sich an wie Visual Basic-Entwicklung anno 2000. Und diese Datenbindung funktioniert erstaunlich gut. Fügt man etwa im Model ein weiteres Objekt in die Liste ein, dann erkennt AngularJS die Änderung und baut sofort die View neu auf.
- schirmt DOM fast komplett ab.
- mit dem kompletten Javascript-Stack (Node.js, MongoDB) ungemein produktiv
Im Buch wird ein Projektmanagementapp erwähnt, die im Laufe des Buches gebaut werden soll, was aber tatsächlich nie gemacht wird.
und hat deutlich Mehrwert gegenüber der Projekt-Dokumentation.
auch wenn das Buch natürlich nicht immer auf alle Details eingehen kann und man für Vieles diverse andere Quellen heranziehen muss.
Das ist vielleicht ärgerlich, aber für mich letztlich trotzdem nachvollziehbar. Niemand kann in unserer kurzlebigen Zeit für so ein Buch genügend Aufwand stecken, um alle Fehler und Unstimmigkeiten zu bereinigen. Es würde nur die Veröffentlichung verzögern.
Entwickler, die bisher eher Serveranwendungen geschrieben haben und sich dort auch
Javascript-mäßig sollte man schon vor dem Lesen des Buchs aufgerüstet haben.
Es ist absolut verblüffend, was Javascript-Freaks in gerade einmal gut 100K Skript packen. AngularJS ist für mich die erste Wahl, wenn es um SPAs geht. Und das unabhängig von der verwendeten Servertechnologie.
SOA Patterns
![]() |
Graph Databases Ian Robinson, Jim Webber, Emil Eifrem O’Reilly Juni 2013 |
Graph Databases
![]() |
Graph Databases Ian Robinson, Jim Webber, Emil Eifrem O’Reilly Juni 2013 |
Noch vor 10 Jahren gab es quasi kaum Alternativen zu einem relationalen Datenbanksystem und SQL. Wenn man sagte, man braucht eine Datenbank, dann meinte man damit SQL. Das hat sich in den letzten Jahren doch klar geändert, und man hört oft von Projekten, die mal eben ein Caching-Layer mit Redis aufbauen oder für eine einfache Datenablage MongoDB einsetzen. Graphdatenbanken sind noch etwas seltener anzutreffen. Ich denke aber, dass sich das rasch ändern wird, da in einer immer vernetzteren Welt auch die möglichen Anwendungsfälle für Graphdatenbanken zunehmen wird.
Graphdatenbanken sind immer dann interessant, wenn man es mit stark vernetzten semistrukturierten Daten zu tun hat. “Semistrukturiert” bedeutet dabei, dass die Daten keiner allgemeinen Struktur unterliegen, sondern einen Teil der Strukturinformation mit sich tragen. UML-Diagramme etwa sind reinrassige Graphen. Eine Klasse hat Attribute, ein Status hat Entry- und Exit-Operationen, usw.. Man kann versuchen, solche Daten in ein relationales Schema zu pressen. Der grundsätzliche Mismatch zwischen den beiden Datenstrukturen führt aber leicht zu teilweise absurden Konstrukten, die ich am Beispiel des Datenmodells von Sparx Enterprise Architect beschrieben habe.
Jim Webber ist vielleicht einigen bekannt wegen seiner witzigen Präsentation zu Guerilla SOA auf InfoQ. Mittlerweile ist er als Chief Scientist bei Neo Technology gelandet. Auch die beiden anderen Autoren sind führende Köpfe von Neo Technology. Von “unabhängig” kann hier also keine Rede sein. Es geht im Buch beinahe ausschließlich um Neo4j. Das tut mir nicht weh, weil ich bisher nur Neo4j einsetze und genau darüber möglichst viel wissen möchte, sollte aber anderen Lesern bewusst sein. Etliche Kapitel sind aber genereller Natur und diskutieren etwa die Datenmodellierung mit Graphdatenbanken oder geben einen Einblick in konkrete Projekte. Damit ist das Buch auch eine lohnende Ergänzung der eh recht ausführlichen Neo4j-Doku.
Mein Fazit: Zum Einstieg in die noch etwas unbekannte Welt der Graphen ist dieses Buch sehr gut geeignet, zumal es bisher wenig Literatur dazu gibt. Es ist ein echtes Praxisbuch und lässt die harte Theorie hinter Graphen weitgehend außen vor.
RabbitMQ in Action
![]() |
RabbitMQ in Action Alvaro Videla, Jason Williams Manning April 2012 ![]() |
Wenn von Skalierung die Rede ist, dann schiessen Architekten häufig sofort mit der Wunderwaffe Message Queues durch die Gegend. Und RabbitMQ ist das neue große Kaliber im Schrank. RabbitMQ
- RPC-Style
- AMQP, also sprachunabhängig, Wire-Level Protokoll
- Erlang, sehr schnell
- entwickelt sich schnell
- Buch geht zum guten Teil auf Administration ein (Skalierung usw.)
Gleich ausprobiert habe ich RPC-Style-Messaging, bei dem man mit temporären, anonymen und exklusiven Queues arbeitet
beim Senden einer Nachricht an eine Queue mit angibt, an welcher privaten Queue man
Leider nur angerissen wurde das Thema CEP (Complex Event Processing), in dem Broker auch eine bedeutende Rolle spielen können.




