ng-week: </> + ()-[]->() = b+

Unsere diesjährige Projektwoche stand ganz im Zeichen von JavaScript und Cypher. Wir wollten gemeinsam eine Anwendung entwickeln, die im Frontend auf AngularJS setzt und zur Datenhaltung eine Neo4J-Graphdatenbank verwendet. Die Anwendung sollte dabei ohne (Java-)Backend auskommen. Um das Ergebnis kurz vorwegzunehmen: Das hat super funktioniert!

Als Anwendungsfall diente eine klassische Adressverwaltung: Personen stehen mit Organisationen in Beziehung, Personen besitzen Kontaktdaten, Organisationen haben kontextabhängige Adressen, Personen finden sich in Empfängerlisten für Marketing-Aktionen wieder und vieles mehr. Die Modellierung dieser Beziehungen als Graph ist sehr intuitiv und hat uns gute Dienste als Diskussionsgrundlage geleistet.

Die technische Umsetzung blieb nicht ohne Herausforderungen. Es zeigte sich sehr schnell, dass das Rest-API der Neo4j-DB nicht auf die $resource Abstraktion von AngularJS passt. Auch mit dem $http-Service haben wir uns schwer getan. Wir hätten beinahe einen HATEOAS-Transformer implementiert, wäre nicht Peter – der erst später zu uns stieß – mit der Frage ins Haus gefallen, warum wir nicht den JavaScript-Treiber der Neo4j-DB verwenden. Eine kurze Evaluierung des APIs ergab: Das müsste gehen! Obwohl eine frühe 1.0, erwies sich der Treiber überaus stabil und weitgehend erwartungskonform.

Der JavaScript-Teil hat bei mir gemischte Gefühle hinterlassen. Das Bootstrapping der Anwendung mittels AngularJS war in wenigen Minuten erledigt. Allerdings ein Build-System aufzubauen, wo alle Ressourcen am Ende automatisch an der richtigen Stelle landen, hat mich viel fluchen lassen. Plugins für Grunt scheinen durchweg nichts von Fehler-Reporting zu halten. Eine Inkompatibilität zwischen grunt-usemin und grunt-angular-file-loader war so nur durch Raten zu finden.

Eine weitere Spitzfindigkeit zeigte sich in der Integration des Neo4j-Treibers mit AngularJS. Beide Frameworks setzen auf Promises – allerdings in verschiedenen Implementierungen. Der Neo4j-Treiber nutzt eine eigene, an ES6 angelehnte Implementierung, während AngularJS mit $q einen Service hat, der an den Digest-Zyklus des Frameworks gekoppelt ist. Die Folge war, dass Ergebnisse aus Datenbank-Abfragen nie unmittelbar angezeigt wurden. Peter – diesmal der, der von Anfang an dabei war – konnte den gordischen Knoten zerschlagen. Die von ihm etablierte Verwendungsweise von $q kannte ich bis dato nicht.

Als Fazit lässt sich festhalten: Keiner hat das Java-Backend vermisst. Wir haben uns durch JavaScript, AngularJS, NPM, Grunt, Bootstrap, Less, Neo4j und Cypher gekämpft und selbst alte Hasen konnten dabei noch neue Tricks dazulernen. Wir haben einen funktionsfähigen Prototyp implementiert, deren Fertigstellung im Wesentlichen jetzt nur noch Fleißarbeit ist. Auf unsere Zusammenarbeit und das erzielte Ergebnis können wir durchaus stolz sein.

Mit jQAssistant auf der
JavaOne Latin America 2016

In den vergangenen Monaten war Dirk auf einigen europäischen IT-Konferenzen unterwegs, um zum Thema Software-Analyse mit jQAssistant zu sprechen. Wir berichteten z. B. von der GeeCON 2016 in Krakau und von den Software Quality Days in Wien. Nun musste etwas Abwechslung her – die Nachricht aus Brasilien kam wie gerufen: “Congratulations! You have been identified as a speaker for the upcoming Oracle JavaOne Latin America 2016 conference in Sao Paulo, Brazil.” So reiste Dirk vom 27. – 30. Juni 2016 nach São Paulo und sprach am 28. Juni zum Thema “Yes We Scan! Software Analysis Using jQAssistant And Neo4j”. Was er auf der JavaOne erlebte, schreibt er im Blog auf jqassistant.org.

Slides als PDF:
Yes We Scan! Software Analysis Using jQAssistant And Neo4j (PDF)

Fotos zur JavaOne Latin America 2016:

Neuer Workshop:
jQAssistant – Getting Started!

logo_jqa_lang_dunkel_rgbNeben unseren Consulting-Leistungen zu jQAssistant bieten wir ab sofort einen Einsteiger-Workshop an, für alle, die jQAssistant als Werkzeug kennen lernen möchten. Dirk Mahler – Trainer und Initiator von jQAssistant – zeigt Ihnen, wie das Kommandozeilen-Werkzeug bzw. das Maven-Plugin zum Einlesen von Artefakten und Projekten eingesetzt werden kann, Abfragen auf den Datenstrukturen interaktiv ausgeführt und Design- und Architektur-Konzepten validiert werden können. Der Workshop findet vom 22. – 23. August in Dresden statt und richtet sich an Entwickler und QA-Ingenieure mit fortgeschrittenen Kenntnissen in Java und grundlegendem Know-how in Apache Maven.

Aktuell können Sie den Workshop zum Starterpreis buchen. Detaillierte Informationen und das Anmeldeformular finden Sie auf unserer Seminarseite:
jQAssistant – Getting Started!

Wenn Sie regelmäßig über jQAssistant informiert werden möchten, können Sie den Newsletter abonnieren oder uns per Twitter folgen:
Anmeldung jQAssistant Newsletter
@jqassistant

Dev-Blog:
https://jqassistant.org

Architekturberatung:
http://jqassistant.de

Fragen rund um jQAssistant:
Dirk Mahler (info@jqassistant.de)

buschmais ist Premium-Sponsor des JUG Saxony Day 2016

JSD_Sponsor_2016

Am 30. September findet der JUG Saxony Day 2016 im Radisson Blu Park Hotel & Conference Centre in Radebeul bei Dresden statt. Die eintägige Konferenz des JUG Saxony e.V. bietet für die regionale Java-Community eine gute Plattform für Wissensaustausch und Networking und findet bereits zum dritten Mal in Folge statt. Neben der spannenden Keynote „Prepare for JDK 9!“ von Dalibor Topic hält das Konferenzprogramm noch 25 interessante Fachvorträge für die Teilnehmer bereit, aufgeteilt in 5 parallele Tracks: Prozess, Architektur, Java Technologie, Enterprise und Specials.

Die Konferenz erfährt große Resonanz und gewinnt stetig an neuen Fans aus der Java-Community. Wir freuen uns, als Premium-Sponsor des JUG Saxony Days 2016 mit einem Ausstellerstand vor Ort sein zu können und blicken gespannt auf einen interessanten und erlebnisreichen Konferenztag.

Wer sich den JUG Saxony Day 2016 nicht entgehen lassen möchte, bekommt weitere Informationen zum Programm und zur Ticketbuchung auf der Veranstaltungsseite.

Tipp: Bis zum 15. Juli gibt es noch Early Bird Tickets.

Case Study:
jQAssistant bei der E-Post Development

CaseStudy_EPOST_jQA_DEU_webWir freuen uns, unsere Case Study “Standardisierung und Automatisierung bei der E-Post Development” vorstellen zu dürfen.

Die E-Post Development GmbH mit Sitz in Berlin entwickelt und betreibt die auf dem Microservice-Ansatz beruhende E-Post-Plattform zum digitalen Versand von Briefen für Groß- und Privatkunden.

Ziel des Einsatzes unseres Open-Source-Frameworks jQAssistant ist es, Entwicklungsteams in der Kommunikation und der Durchsetzung gemeinsamer Programmierpraktiken zu unterstützen. Insbesondere der ganzheitliche Blick auf Anwendungsstrukturen, der neben der Programmiersprache Java und seinen Frameworks insbesondere auch das Build-System umfasst, spielt eine entscheidende Rolle, um die Bereitstellung von Micrsoservices zu standardisieren, zu automatisieren und damit zu effektivieren. Die ausführliche Beschreibung des gewählten Ansatzes finden Sie in der Case Study.

Case Study: Standardisierung und Automatisierung bei der E-Post Development
(DEU, PDF, 1 MB)

Case Study: Standardization and Automation at E-Post Development
(EN, PDF, 1 MB)

Infos zu unserem Consulting-Angebot finden Sie unter www.jqassistant.de

 1 2 3 4 5 6 ... 18 19 20 Vor