JAXenter | Artikel Das Portal für Java, Architektur, Cloud & Agile http://jaxenter.de/ Zeig mir deinen Code! http://jaxenter.de/artikel/zeig-mir-deinen-code-176788 Pull Requests unterstützen zunächst einmal manuelle Codereviews. Man kann über den Pull Request diskutieren und alle Erkenntnisse zusammentragen, um den Request zu bewerten. Es gibt kein formales Kriterium, wann ein Pull Request für gut befunden oder abgelehnt wird. Der Prozess ist recht flexibel. Gerrit ist ein Codereviewwerkzeug, das den Prozess weiter formalisiert. Es kombiniert Feedback vom Continuous-Integration-(CI-)System, das besagt, ob der Code erfolgreich baut, und Einschätzungen von Reviewern zum Code. Beides hat zum Ziel, die Baseline stabil zu halten. Allerdings braucht dieser… 176788 Freitag, 31. Oktober 2014 - 9:00 JAXenter | Artikel Zeig mir deinen Code! Zeig mir deinen Code! Der kleine IoT-Guide zur W-JAX 2014 http://jaxenter.de/artikel/iot-guide-w-jax-2014-177156 Mittwoch: Internet of Things Day Der so genannte „Special Day“ zum Internet of Things beleuchtet am zweiten Tag der Hauptkonferenz (Mittwoch) aktuelle Trends und Themen aus der Welt der vernetzten Maschinen und Alltagsgegenstände. Ein Schwerpunkt der insgesamt fünf Vorträge liegt in diesem Jahr auf IoT-Konnektivität. Neben Bluetooth und WiFi (Speaker: Sven Haiges) stehen zwei Sessions über MQTT auf der Agenda (Christian Götz, Markus Mann). Und es könnte keinen besseren Zeitpunkt geben, sich mit diesem leichtgewichtigen IoT-Protokoll zu beschäftigen, ist es doch seit vorgestern offizieller… 177156 Freitag, 31. Oktober 2014 - 7:31 JAXenter | Artikel Der kleine IoT-Guide zur W-JAX 2014 Der kleine IoT-Guide zur W-JAX 2014 Java-Annotationen und Software-Engineering: Wolf im Schafspelz? http://jaxenter.de/Java-Annotationen-Software-Engineering-Wolf-im-Schafspelz-176727 Die Einführung von Annotationen in Java 5 hat – weitgehend unbeachtet – eine Entwicklung eingeleitet, deren Konsequenzen nur schwer absehbar sind. Wahrscheinlich wird es niemand ernsthaft in Betracht ziehen, aber rein technisch gesehen ist es kein Problem, jedes Programm in die in Listing 1 gezeigten Formen zu bringen. Die eigentliche Funktion wird dann in speziellen Annotationsprozessoren und Laufzeitbibliotheken verborgen. Selbstverständlich ist das eine sehr extreme Verwendung von Annotationen. Aber sie zeigt, dass es nützlich ist, sich mit diesem Sprachelement genauer zu befassen. import… 176727 Mittwoch, 29. Oktober 2014 - 9:30 JAXenter | Artikel Java-Annotationen und Software-Engineering: Wolf im Schafspelz? Java-Annotationen und Software-Engineering: Wolf im Schafspelz? Pleiten, Pech und Pannen mit Threads [Java-Trickkiste] http://jaxenter.de/Pleiten-Pech-Pannen-mit-Threads-Java-Trickkiste-176800 Früher bedeutete Multi-Threading, dass mehrere Threads auf den (potenziell) selben Daten arbeiteten. Das Betriebssystem konnte zu jedem Zeitpunkt den aktuell laufenden Thread unterbrechen und einen anderen aktivieren. Dabei konnte es Race Conditions geben, und nebenläufiger Code war schon damals kompliziert zu schreiben, zu verstehen und erst recht zu debuggen. Aber die Welt funktionierte so, wie man es erwartete. Wenn ein Thread einen Wert in den Speicher schrieb und ein anderer ihn las, dann war entweder der Schreibzugriff vor dem Lesezugriff oder umgekehrt. Und wenn eine Variable volatile… 176800 Mittwoch, 29. Oktober 2014 - 7:30 JAXenter | Artikel Pleiten, Pech und Pannen mit Threads [Java-Trickkiste] Pleiten, Pech und Pannen mit Threads [Java-Trickkiste] Knigge für Softwarearchitekten: Der Domäniker http://jaxenter.de/artikel/knigge-softwarearchitekten-domaeniker-176729 Abweichungen in der Praxis „Historisch gewachsen“ sieht jedoch oft komplett anders aus. Ein Kundenverwaltungsprogramm (Abb. 1) bearbeitet eine Domänenentität „Kunde“ mit den wichtigsten Attributen wie Name, Adresse und Geburtsdatum. Ein später entwickeltes unabhängiges Programm zur Vertragsverwaltung erstellt sich eine Kopie der Entity „Kunde“ und fügt weitere Attribute hinzu, erlaubt aber auch Updates der kopierten Attribute ohne Zusammenhang mit der Kundenverwaltung. Schon sind Inkonsistenzen vorprogrammiert. Ein drittes Programm zur VIP-Verwaltung wurde später geschrieben. Es regelt gemäß… 176729 Dienstag, 28. Oktober 2014 - 8:30 JAXenter | Artikel Knigge für Softwarearchitekten: Der Domäniker Knigge für Softwarearchitekten: Der Domäniker LocationTech Tour 2014 http://jaxenter.de/artikel/locationtech-tour-2014-177059 Was passt zu wegweisenden Technologiethemen besser als das futuristisch anmutende Gebäude der Nordakademie (s. Aufmacherbild), die freundlicherweise einen Veranstaltungsraum zu Verfügung stellte? Und der war mit den rund 35 Teilnehmern auch gut belegt. Beispiel Frühwarnsysteme  Andrew Ross von der Eclipse Foundation gab zu Beginn eine kurze Einführung in die Aufgaben und Ziele des Open-Source-Verbandes. Bei LocationTech handelt es sich um eine Arbeitsgruppe oder „Industry Working Group“ innerhalb der Eclipse Foundation. Wie man unschwer am Namen erkennen kann, beschäftigt sich dieser… 177059 Montag, 27. Oktober 2014 - 11:48 JAXenter | Artikel LocationTech Tour 2014 LocationTech Tour 2014 JavaScript für den Enterprise-Einsatz http://jaxenter.de/artikel/javascript-entwicklung-angularjs-176590 AngularJS ist ein JavaScript-Framework für die Entwicklung von modernen clientseitigen Webanwendungen. Erstmalig halten bewährte Konzepte wie Dependency Injection und konsequente testgetriebene Entwicklung Einzug in die JavaScript-Welt und machen diese somit attraktiv für den Enterprise-Einsatz. Das Framework bietet hier einige sehr intuitive APIs und achtet in hohem Maße auf das Einhalten und Bilden von Schnittstellen. In den beiden vorangegangenen Ausgaben haben wir bereits ein AngularJS-Projekt mit dem Namen Cube angelegt. Cube ist eine einfache Anwendung zur Visualisierung eines… 176590 Montag, 27. Oktober 2014 - 9:15 JAXenter | Artikel JavaScript für den Enterprise-Einsatz JavaScript für den Enterprise-Einsatz Nebenläufig – und auch schnell? Concurrency mit und ohne Locks [Java-Trickkiste] http://jaxenter.de/artikel/java-trickkiste-concurrency-176646 In einem meiner Projekte wollten wir Kennzahlen sammeln und aggregiert zur Auswertung bereitstellen. Stark vereinfacht gab es eine Klasse, bei der Anwendungscode Messwerte registrieren konnte und die Klasse sich intern die Zahl der Messwerte sowie ihre Summe gemerkt hat. Listing 1 zeigt eine einfache Implementierung. class CountAndSumSync { private int count = 1; private int sum; public CountAndSumSync(int initialValue) { sum = initialValue; } public synchronized void add(int value) { count += 1; sum += value; } public synchronized double getAverage() { if(… 176646 Freitag, 24. Oktober 2014 - 9:30 JAXenter | Artikel Nebenläufig – und auch schnell? Concurrency mit und ohne Locks [Java-Trickkiste] Nebenläufig – und auch schnell? Concurrency mit und ohne Locks [Java-Trickkiste] Android 5.0: Bewegte UIs dank Lollipop http://jaxenter.de/artikel/android-5-0-lollipop-animationen-176951 Parallel mit dem neuen Material Design [1] möchten die Macher von Android auch eine deutlich verbesserte User Experience ermöglichen. Ziel ist es, dem Nutzer von Android-Anwendungen direktes visuelles Feedback auf seine Interaktionen zu geben. Zu diesem Zweck wurden einige vordefinierte Animationen für Button und Activity-Übergänge in das neue Theme eingearbeitet: Touch Feedback Reveal Effect Activity Transitions View State Changes Zusätzliche Erweiterungen sind dank speziellem API natürlich ebenfalls möglich. Dazu später mehr. Android 5.0 Touch Feedback Berührt bzw. drückt man in dem neuen… 176951 Donnerstag, 23. Oktober 2014 - 9:00 JAXenter | Artikel Android 5.0: Bewegte UIs dank Lollipop Android 5.0: Bewegte UIs dank Lollipop Swift allein reicht noch nicht aus, um eine iOS-App zu entwickeln http://jaxenter.de/artikel/apple-swift-ios-176955 Apple hat auf der letzten WWDC mit Swift eine neue Programmiersprache vorgestellt – und damit eine ziemliche Bombe platzen lassen. Wie ist eure aktuelle Einschätzung, nachdem die Version 1.0 erschienen ist?Orlando Schäfer: Apple hat seit der WWDC die Sprache kontinuierlich verbessert und weiterentwickelt. Zum Beispiel hat sich die Syntax für Collection-Types verändert, und Sichtbarkeiten von Klassen, Methoden und Properties wurden ergänzt. Die Versionsnummer 1.0 ist jedoch auch etwas irreführend. Die Architektur, die Features und die Syntax sind zwar weitgehend final, was aus unserer Sicht… 176955 Mittwoch, 22. Oktober 2014 - 10:07 JAXenter | Artikel Swift allein reicht noch nicht aus, um eine iOS-App zu entwickeln Swift allein reicht noch nicht aus, um eine iOS-App zu entwickeln JavaFX-Tutorial: Von der Klasse zur EXE http://jaxenter.de/artikel/javafx-tutorial-klasse-exe-176720 Als Benutzer einer Software mögen wir es heutzutage gern bequem. Wir sind es gewohnt, durch einen Doppelklick auf eine Verknüpfung Anwendungen zu starten und wollen möglichst keine Einstellungen vornehmen, weder an der Anwendungen noch an unserem System. Wir wollen bitte auch keine zusätzliche Software installieren und konfigurieren müssen. Für uns Java-Entwickler stellt sich also nun die Frage, wie wir dem Wunsch unserer Kunden nachkommen können, schließlich sind wir sehr stolz auf die Plattformunabhängigkeit unserer Welt. Wir sind jedoch gezwungen, mit jar-Dateien zu arbeiten, anstatt mit… 176720 Dienstag, 21. Oktober 2014 - 10:00 JAXenter | Artikel JavaFX-Tutorial: Von der Klasse zur EXE JavaFX-Tutorial: Von der Klasse zur EXE M2M Summit 2014: Machine-to-Machine in Reinkultur http://jaxenter.de/artikel/m2m-summit-2014-176916 Man mag die berechtigte Frage stellen, weshalb in Zeiten des maximalen Hypes um das Internet of Things (IoT) der M2M Summit noch nicht „IoT Summit“ heißt. Hat „M2M“, kurz für „Machine to Machine“, nicht ausgedient? Mitnichten, meint Eric Schneider, Vorsitzender der M2M Alliance. In einer Pressekonferenz auf dem Summit trennte er die Begriffe sauber voneinander ab: M2M sei die reine Konnektivität, die Infrastruktur, aus der das IoT Wert schöpfe. Da das ältere Kürzel unter den alteingesessenen Telekommunikationsunternehmen noch durchaus gebräuchlich ist, wundert es außerdem nicht, dass die M2M… 176916 Dienstag, 21. Oktober 2014 - 9:37 JAXenter | Artikel M2M Summit 2014: Machine-to-Machine in Reinkultur M2M Summit 2014: Machine-to-Machine in Reinkultur Spring heute – wo liegen die Unterschiede zu Java EE? http://jaxenter.de/artikel/spring-java-ee-176902 JAXenter: Das Spring Framework hat ja bei Pivotal unter der Spring.IO-Plattform sein Zuhause gefunden. Würdest du sagen, dass sich damit auch der Fokus verändert hat? Oder anders gefragt: Spring vor 5 Jahren, Spring heute – wo liegen die Unterschiede?Mike Wiesner: Meiner Meinung nach ist das Ziel des Spring Frameworks, die Enterprise-Java-Entwicklung zu vereinfachen, stets gleich geblieben. Das Themenspektrum hat sich aber verändert. Vor 5 Jahren waren die großen Themen bei Spring, ein effektives Komponentenmodell durch Dependency Injection und AOP auf Basis von Annotationen bereit zustellen… 176902 Montag, 20. Oktober 2014 - 12:17 JAXenter | Artikel Spring heute – wo liegen die Unterschiede zu Java EE? Spring heute – wo liegen die Unterschiede zu Java EE? Zeitgemäße Softwarearchitektur: Förderung von und Umgang mit Überraschungen http://jaxenter.de/artikel/zeitgemaesse-softwarearchitektur-ueberraschungen-176533 Ein Freund von mir lädt öfter Mal Filme aus dem Netz (ich kenne ihn eigentlich kaum). Liegen die Kinoneuheiten nicht im AVI- oder MP4-Format vor, kann sein am Fernseher angeschlossener Mediaplayer sie nicht abspielen – er muss nach dem Download rekodieren, die Datei dann auf seine externe Festplatte kopieren und kann schließlich von dieser streamen. Der Prozess kann einige Stunden in Anspruch nehmen. Natürlich kann man diese Kette optimieren und modernisieren, aber mein Punkt ist ein anderer: Wann würden Sie herausfinden wollen, ob die Video- und Audioqualität annehmbar ist, ob die Sprache… 176533 Montag, 20. Oktober 2014 - 9:30 JAXenter | Artikel Zeitgemäße Softwarearchitektur: Förderung von und Umgang mit Überraschungen Zeitgemäße Softwarearchitektur: Förderung von und Umgang mit Überraschungen JBoss OptaPlanner: Optimierung 2.0 http://jaxenter.de/artikel/jboss-optaplanner-optimierung-2-0-176855 Automatisierte Planung des Ressourceneinsatzes Unternehmen stehen regelmäßig vor der Herausforderung, ihren Ressourceneinsatz optimieren zu müssen, um durch Effizienzsteigerungen im Wettbewerb bestehen zu können. In der Produktion müssen Maschinenbelegungspläne, in der Logistik Tourenpläne und im Workforce-Management Dienstpläne erstellt werden. Häufig entstehen komplexe Planungsprobleme aus einer Vielzahl möglicher Optionen und der damit verbundenen Schwierigkeit, die beste Lösung zu finden. In Forschung und Wirtschaft existieren mathematische Optimierungsverfahren zur Lösung solcher… 176855 Freitag, 17. Oktober 2014 - 7:19 JAXenter | Artikel JBoss OptaPlanner: Optimierung 2.0 JBoss OptaPlanner: Optimierung 2.0 Die Systematischverbesserin [Knigge für Softwarearchitekten] http://jaxenter.de/artikel/knigge-softwarearchitekten-systematischverbesserin-176641 Hier kommt die Systematischverbesserin ins Spiel: Ihr gelingt es, systematisch die (wirtschaftlichen) Ziele von Auftraggebern mit der Verbesserung der (inneren) Qualität zu verbinden – und dabei noch alle Beteiligten bei Laune zu halten. Falls Sie das für schwierig halten – willkommen in der Realität. Die Realität: degenerierte Systeme Obwohl wir anfänglich alles sauber entwickelt und entworfen haben, degeneriert unser System mit der Zeit: Das Phänomen der „verfaulenden Software“ schlägt zu. Änderungen werden schwieriger, riskanter und dauern immer länger. In Entwicklung und Betrieb treten… 176641 Donnerstag, 16. Oktober 2014 - 10:50 JAXenter | Artikel Die Systematischverbesserin [Knigge für Softwarearchitekten] Die Systematischverbesserin [Knigge für Softwarearchitekten] Wer REST will, muss mit HATEOAS ernst machen http://jaxenter.de/artikel/rest-hateoas-fielding-176645 Bereits jetzt, zu Lebzeiten Roy T. Fieldings, ist sicher, dass seine Arbeit zu REST kommende Generationen beeinflussen wird. Mit dem Titel des Artikels ist also ein „Vermächtnis in spe“ gemeint. Fielding formulierte es im Jahr 2000 erstmals in seiner Doktorarbeit und hat es seitdem oft wiederholt: „REST APIs must be hypertext-driven“ scheint er uns anschreien zu wollen in dem berühmten Blog-Post aus dem Jahr 2008, in dem es weiter heißt: „I am getting frustrated by the number of people calling any HTTP-based interface a REST API. Today’s example is the SocialSite REST API. That is RPC. It… 176645 Mittwoch, 15. Oktober 2014 - 11:15 JAXenter | Artikel Wer REST will, muss mit HATEOAS ernst machen Wer REST will, muss mit HATEOAS ernst machen Multi-Browser-Tab-Support in Java EE 7 http://jaxenter.de/artikel/multi-browser-tab-support-java-ee-7-176819 Die erste Lösungsmöglichkeit für das Problem, Daten zwar über mehrere Seiten hinweg vorzuhalten, aber sie dennoch nicht in die Session zu legen, kam mit Java EE 6 und CDI, und zwar mit dem Conversation Scope. Die Idee ist einfach: Über ein Objekt namens Conversation, das man sich injizieren lassen kann, kann gesteuert werden, wann der Lebenszyklus der @ConversationScoped Beans beginnt und wann er endet (Listing 1). Daten in @ConversationScoped Beans können dann mehrere Requests überleben, müssen aber nicht die gesamte Session vorgehalten werden. Es handelt sich also um einen Scope, der länger… 176819 Mittwoch, 15. Oktober 2014 - 9:48 JAXenter | Artikel Multi-Browser-Tab-Support in Java EE 7 Multi-Browser-Tab-Support in Java EE 7 Wie Sie effektive Webarchitekturen bauen http://jaxenter.de/artikel/skalierbare-webarchitekturen-176782 Das iSAQB-Modul zu Webarchitekturen (WEB) ist eines der Advanced-Level-Lehrplanmodule, mit dem Teilnehmer an lehrplankonformen Schulungen Credit-Points im Bereich technische Kompetenz erwerben können. In diesem Artikel beschreiben wir die Inhalte einer solchen Schulung und deren Nutzen für den Projektalltag näher. Motivation Noch vor einigen Jahren wurden die wirklich großen Systeme nicht für das Web gebaut, sondern für die Verwendung innerhalb von Unternehmen, und es war durchaus kontrovers, Enterprise-Anwendungen mit Weboberflächen ausstatten zu wollen. Anders gesagt: Als Architekt… 176782 Dienstag, 14. Oktober 2014 - 11:40 JAXenter | Artikel Wie Sie effektive Webarchitekturen bauen Wie Sie effektive Webarchitekturen bauen Spring Cloud – Das Microservices-Framework http://jaxenter.de/artikel/spring-cloud-microservices-176766 Der erste Meilenstein von Spring Cloud ist gerade erschienen. Es ist nicht eine einzige Technologie, sondern eine Sammlung verschiedener Ansätze, um die Herausforderungen von verteilten Systemen, wie sie bei der Entwicklung von Microservices entstehen, besser zu meistern. Microservices teilen Systeme in eine Vielzahl von Services auf, die typischerweise über REST kommunizieren. Dadurch werden Anwendungen zu verteilten Systemen, die wesentliche schwieriger zu handhaben sind. Schließlich muss eine Vielzahl von Prozessen auf verschiedenen Servern konfiguriert und überwacht werden. Die… 176766 Dienstag, 14. Oktober 2014 - 7:24 JAXenter | Artikel Spring Cloud – Das Microservices-Framework Spring Cloud – Das Microservices-Framework 'Softwarearchitektur wird immer mehr zum Entwickler-Skill' http://jaxenter.de/artikel/softwarearchitektur-entwickler-skill-176654 JAXenter: Der Software-Architekt gibt die Architektur vor – die Entwickler setzen sie um. Was ist schief an diesem Bild?Stefan Zörner: Das Bild muss gar nicht falsch sein. Das hängt von vielen Faktoren ab: Wie risikoreich ist das Projekt? In welcher Phase ist es? Welche Skills haben die Mitarbeiter? Gleichzeitig sieht die Realität in vielen Projekten heute anders aus: Die Architektur wird im Team entwickelt und gemeinsam umgesetzt. Den einen Architekten gibt es dort nicht mehr. Wohl aber eine Softwarearchitektur, also grundlegende Prinzipien, Lösungsansätze, Struktur- und… 176654 Montag, 13. Oktober 2014 - 10:30 JAXenter | Artikel 'Softwarearchitektur wird immer mehr zum Entwickler-Skill' 'Softwarearchitektur wird immer mehr zum Entwickler-Skill' Aus der Java-Trickkiste: Referenzen mit Sonderstatus http://jaxenter.de/artikel/java-trickkiste-referenzen-176593 WeakReference Eine WeakReference speichert eine Referenz auf ein Objekt, ohne dessen Garbage Collection zu verhindern. Eine „normale“ Referenz auf ein Objekt verhindert, dass es abgeräumt wird, WeakReferences nicht. Wenn man eine WeakReference erzeugt, muss man ihr im Konstruktor das referenzierte Objekt übergeben (Listing 1). Der Code dort ruft anschließend System.gc() auf, um eine Garbage Collection auszulösen. Das ist in produktivem Code eine schlechte Idee, weil es fast immer die Performance ruiniert, aber zur Illustration ist es in diesem Beispiel nützlich. Das Objekt in der… 176593 Freitag, 10. Oktober 2014 - 9:30 JAXenter | Artikel Aus der Java-Trickkiste: Referenzen mit Sonderstatus Aus der Java-Trickkiste: Referenzen mit Sonderstatus Java 8 und Enterprise – Teil 4: Repeatable Annotations in Java EE http://jaxenter.de/artikel/java-8-enterprise-repeatable-annotations-java-ee-176175 Bis Java 7 war es nicht möglich, ein und dieselbe Annotation mehrfach an eine Klasse zu setzen, selbst wenn die Annotation mit verschiedenen Parametern gefüttert wurde. Seit Java 8 hat sich das geändert. Gewisse Annotationen lassen sich mehrfach an Klassen, Felder oder Methoden setzen. Möglich macht das die Annotation @Repeatable und ein kleiner Compiler-Trick, der in Java 8 eingebaut wurde. Mit diesem Trick übernimmt in Java 8 der Compiler das, was in Java 7 der Entwickler von Hand machen muss, wie wir später sehen werden. Mehrfach-Annotationen in Java EE Wenn man in Java 7 oder früheren… 176175 Mittwoch, 8. Oktober 2014 - 9:45 JAXenter | Artikel Java 8 und Enterprise – Teil 4: Repeatable Annotations in Java EE Java 8 und Enterprise – Teil 4: Repeatable Annotations in Java EE 'Wenn meine Entwickler Schätzungen machen, schlage ich immer 100% drauf… http://jaxenter.de/artikel/entwickler-schaetzungen-176527 JAXenter: Woran liegt es, dass Entwickler immer wieder von Architektur-Vorgaben abweichen?Carola Lilienthal: Eine Antwort auf diese Frage kennen wir alle nur zu gut: Entwickler weichen bei der Implementierung vom Architekturentwurf ab, weil sie aus Zeitmangel und Projektdruck Abkürzungen gehen oder keine Zeit für Refactorings haben, die sie wieder zurück zur geplanten Architektur bringen würden. Meistens sind sich die Entwickler all dieser Probleme bewusst, kommen aber nicht dagegen an, weil die Software fertig werden muss. Darüber hinaus beobachte ich, dass die Entwicklungsteams oft nicht in… 176527 Dienstag, 7. Oktober 2014 - 8:30 JAXenter | Artikel 'Wenn meine Entwickler Schätzungen machen, schlage ich immer 100% drauf… 'Wenn meine Entwickler Schätzungen machen, schlage ich immer 100% drauf… Oracle präsentiert Avatar 2.0: Wohin geht die Reise? http://jaxenter.de/artikel/avatar-2-0-176628 Avatar startete ursprünglich als reines HTML5-/JavaScript-Framework. Seither ist es auf der Serverseite mit einer Node.js-Implementierung für die JVM (namens Avatar.js) sowie Java-EE-spezifischen Erweiterungen angereichert worden. „Project Avatar“, wie das Open-Source-Projekt hieß, ist aber nie über die Version 1.0-ea (für „early access“) hinausgekommen. In den letzten sechs Monaten ist kein einziger Commit im produktiven Code mehr im öffentlichen Repository erschienen – lediglich Tests und Kommentare wurden hinzugefügt oder geändert. Jetzt hat John Clingan, der Principal Product Manager des… 176628 Dienstag, 7. Oktober 2014 - 7:44 JAXenter | Artikel Oracle präsentiert Avatar 2.0: Wohin geht die Reise? Oracle präsentiert Avatar 2.0: Wohin geht die Reise? Knigge für Softwarearchitekten: Die Meisterin der kleinen Schritte http://jaxenter.de/artikel/knigge-meisterin-kleine-schritte-76592 Verstehen ist schwierig, dokumentieren einfach Für Nachdokumentation hat man Beate weder ein Budget noch die notwendige Zeit zugestanden. Alle drei Monate verlangen die Kunden und auch die Projektleitung ein neues Release. Beate weiß aber aus Erfahrung: Wenn man zehn Prozent des Programmcodes wegen Änderungen oder Erweiterungen anfassen muss, dann muss man mindestens 15 bis 20 Prozent verstanden haben – das, was man anpackt und ein bisschen darum herum. Und wenn ihr Team diese 15 bis 20 Prozent verstanden hat, ist es ein Leichtes, wenigstens diese Teile des Systems ordentlich… 176592 Montag, 6. Oktober 2014 - 9:30 JAXenter | Artikel Knigge für Softwarearchitekten: Die Meisterin der kleinen Schritte Knigge für Softwarearchitekten: Die Meisterin der kleinen Schritte Professionelle Entwicklungsumgebung: Besser und entspannter entwickeln http://jaxenter.de/artikel/professionelle-entwicklungsumgebung-176538 Eine gute Entwicklungsumgebung ist weit mehr als eine IDE. Vielmehr setzt sie sich aus einer ganzen Reihe von Werkzeugen, aber auch Prozessen und Architekturentscheidungen zusammen, die alle das Ziel verfolgen, den einzelnen Entwickler bzw. das Entwicklungsteam in die Lage zu versetzen, schnell und einfach neue Features auf einer Codebasis zu entwickeln. In der Praxis ist häufig ein wiederkehrendes Verhalten beim Aufsetzen von Entwicklungsprojekten zu beobachten: Nach den ersten Kundengesprächen passiert eine Weile zunächst relativ wenig, da zuerst die finanziellen und organisatorischen… 176538 Donnerstag, 2. Oktober 2014 - 9:30 JAXenter | Artikel Professionelle Entwicklungsumgebung: Besser und entspannter entwickeln Professionelle Entwicklungsumgebung: Besser und entspannter entwickeln AngularJS ganz einfach http://jaxenter.de/artikel/angularjs-ganz-einfach-176470 Das JIRA Rest API wurde mit dem Ziel entworfen, Entwicklern und Administratoren folgende Möglichkeiten zu bieten: • Atlassian- oder andere Anwendungen mit JIRA zu integrieren• Prozesse/Features von JIRA zu automatisieren• Gadgets für JIRA zu entwickelnDas API erlaubt den Zugriff auf eine Reihe von Ressourcen via URI. http://hostname/rest/<api-name>/<api-version>/<resource-name> • <api-name> ist der Name des JIRA REST API. Sein Wert ist api.• <api-version> bezeichnet die Version des REST-API. Um die letzte Version des JIRA REST API zu nutzen, kann man einfach… 176470 Mittwoch, 1. Oktober 2014 - 10:30 JAXenter | Artikel AngularJS ganz einfach AngularJS ganz einfach Zeitgemäße Softwarearchitektur: Der Umgang mit beschränkten Mitteln http://jaxenter.de/artikel/zeitgemaesse-softwarearchitektur-176532 Die Zeit von Weihnachtsgebäck liegt schon etwas zurück und trotzdem möchte ich zum Einstieg darüber sprechen. Weihnachten kommt schließlich wieder. Haben Sie sich schon einmal überlegt, was Sie tun müssten, um aus einem ausgerollten Teig, Kekse so exakt auszustechen, dass Sie nur eine einzige Iteration benötigen, um die ganze Keksladung zu produzieren? Sicher eine Planungsphase, wahrscheinlich neue, aufeinander abgestimmte Ausstechformen (Tools), mehr Disziplin bei der Arbeit und einen größeren Backofen. Ganz ehrlich: Ich werde nichts davon im nächsten Advent haben. Ich werde mit den Formen… 176532 Dienstag, 30. September 2014 - 13:57 JAXenter | Artikel Zeitgemäße Softwarearchitektur: Der Umgang mit beschränkten Mitteln Zeitgemäße Softwarearchitektur: Der Umgang mit beschränkten Mitteln Der Kunde hat immer (Un)Recht http://jaxenter.de/artikel/kunde-hat-immer-unrecht-176516 JAXenter: Während Generationen von Marketing-Experten mit dem Spruch "Der Kunde ist König" hausieren gingen, sagst du in deiner W-JAX-Session: "Der Kunde hat immer Unrecht." Lagen vorher also alle falsch? David Tanzer: Der Kunde ist natürlich König: Unser Ziel sollte immer sein, unsere Kunden zufriedenzustellen. Wenn wir aber immer genau das machen, was der Kunde verlangt, können wir dieses Ziel oft nicht erreichen. Unsere Kunden sind z.B. meistens keine UX-Design-Experten, haben aber ganz genaue Vorstellungen, wie eine Anwendung auszusehen und zu funktionieren hat. Das führt im schlimmsten… 176516 Montag, 29. September 2014 - 17:46 JAXenter | Artikel Der Kunde hat immer (Un)Recht Der Kunde hat immer (Un)Recht JavaOne 2014 mit zaghaftem Auftakt http://jaxenter.de/artikel/javaone-2014-auftakt-176487 JavaOne Keynote ohne Statement Im Endeffekt hat es das jeweils hinter Java stehende Unternehmen – die ersten Jahre Sun Microsystems, inzwischen nun Oracle – verstanden, die JavaOne als eine Mischung aus Selbstdarstellung und Community-Building zu nutzen. Jedenfalls transportierte die Konferenz, und insbesondere ihre Eröffnungszeremonie, stets ein weltweit beachtetes Statement. Was wir zur Eröffnung der JavaOne 2014 erleben durften, war hingegen alles andere als ein Statement. Es schient fast so, als sei der Dampf aus dem Java-Kessel entwichen und man habe sich ein paar Geschichten aus den… 176487 Montag, 29. September 2014 - 9:32 JAXenter | Artikel JavaOne 2014 mit zaghaftem Auftakt JavaOne 2014 mit zaghaftem Auftakt Warum Vert.x mehr ist als ein Node.js für die JVM http://jaxenter.de/artikel/vertx-nodejs-jvm-176441 JAXenter: Dein Thema auf der W-JAX ist die Application Platform Vert.x. Kannst du zu Beginn kurz einige Merkmale aufzählen, was Vert.x ausmacht?Jochen Mader: Vert.x gehört zu einer Gruppe von Frameworks, die stark vom Erlang-Aktorenkonzept beeinflusst sind. Seine wichtigsten Merkmale sind das eventbasierte Programmiermodel, der verteilte EventBus und eine konsequent polyglotte API.JAXenter: Für welchen Typ von Anwendungen würdest du den Einsatz von Vert.x empfehlen? Kannst du mal ein konkretes Beispielszenario nennen?Jochen Mader: Vert.x ist ein verteiltes Serverframework und bietet sich vor… 176441 Freitag, 26. September 2014 - 8:30 JAXenter | Artikel Warum Vert.x mehr ist als ein Node.js für die JVM Warum Vert.x mehr ist als ein Node.js für die JVM Eclipse Orion meets SAP HANA http://jaxenter.de/artikel/orion-meets-hana-176410 Developers are the new kingmakers – das gilt insbesondere für den Erfolg einer Plattform. iOS und Android sind auch deshalb so erfolgreich, weil sie es geschafft haben, eine große App-Entwicklercommunity für sich zu gewinnen, die für diese Plattformen Applikationen entwickeln. Ein ähnlicher Trend wird auch im Enterprise-Software- und Datenbankbereich immer sichtbarer: Es geht nicht allein um eine vom Hersteller fertig gelieferte Software, sondern auch um Plattformen, auf denen die interne IT und unabhängige Softwareproduzenten ihre Lösungen entwickeln, anbieten und betreiben können. SAP HANA… 176410 Donnerstag, 25. September 2014 - 7:26 JAXenter | Artikel Eclipse Orion meets SAP HANA Eclipse Orion meets SAP HANA Eclipse Flux: Zwischen Desktop und Cloud http://jaxenter.de/artikel/eclipse-flux-cloud-ide-176373 Wer könnte sich heute noch vorstellen, ohne eine umfangreiche IDE schnell und effizient Software zu entwickeln? Ich nicht. Die umfangreiche Unterstützung beispielsweise für die Entwicklung mit Java ist einfach viel zu nützlich, um auf sie verzichten zu können oder zu wollen. Allein Content Assist, Auto Completion und automatisierte Refactorings sind aus dem Alltag eines Entwicklers nicht mehr hinwegzudenken – ganz zu schweigen von der direkten Integration von Unit Testing in die Entwicklungsumgebung, um nur einige wenige Features zu nennen, die eine gute IDE unentbehrlich machen. Und was… 176373 Mittwoch, 24. September 2014 - 8:55 JAXenter | Artikel Eclipse Flux: Zwischen Desktop und Cloud Eclipse Flux: Zwischen Desktop und Cloud AngularJS: Über Konzepte und die Zukunft von Web-Apps http://jaxenter.de/artikel/angularjs-web-apps-interview-176381 Auch wenn das Team hinter dem Framework mittlerweile mit den  Arbeiten an Angular 2.0 begonnen hat, lohnt sich ein Blick auf den aktuellen Stand. Wie funktionieren die Konzepte von AngularJS, wo liegen die Stärken des Frameworks und warum setzt Google eigentlich nicht auf Web Components? Das alles und noch einiges mehr haben wir Norbert Schmidt gefragt, der uns ausführlich Rede und Antwort stand. AngularJS ist nicht einfach gestrickt PHP Magazin: Norbert, du beschäftigst dich sehr intensiv mit AngularJS – warum ist Googles Framework deiner Meinung nach so erfolgreich? Norbert Schmidt: Für… 176381 Dienstag, 23. September 2014 - 13:26 JAXenter | Artikel AngularJS: Über Konzepte und die Zukunft von Web-Apps AngularJS: Über Konzepte und die Zukunft von Web-Apps Neo4j und Eclipse: Relationships are cool! http://jaxenter.de/artikel/relationships-are-cool-176369 Mit dem nachfolgenden Artikel möchte ich dem Leser in Form eines Anwenderberichts einen Einblick in ein aktuelles Projekt geben, in dem wir seit einigen Monaten sehr intensiv eine Graphdatenbank im Einsatz haben – im konkreten Fall ist das Neo4j. Vielleicht führt dieser Artikel bei dem einen oder anderen Leser ja auch dazu, mal darüber nachzudenken, ob eine Graphdatenbank in seinem Projekt möglicherweise ein besseres Speichermedium ist als die relationalen Pendants, die oftmals noch verwendet werden. Sollte das der Fall sein, freue ich mich über eine kurze Nachricht dazu. Eine Einschätzung… 176369 Dienstag, 23. September 2014 - 10:14 JAXenter | Artikel Neo4j und Eclipse: Relationships are cool! Neo4j und Eclipse: Relationships are cool! Docker – wir stehen erst am Anfang! http://jaxenter.de/artikel/docker-interview-176320 JAXenter: Docker hat in den letzten Monaten für viel Wirbel gesorgt. Was genau ist das disruptive Element, das dafür sorgt, dass Docker für viele eine Revolution darstellt?Matthias Lübken: Docker hat es geschafft, die Idee und Technologie von Containern einem breiten Publikum zugänglich zu machen. Leichtgewichtige “Virtualisierung” in Form von Containern gibt es schon lange. Diese waren jedoch entweder nur auf wenig verbreiteten Betriebssystemen, wie beispielsweise Solaris, verfügbar oder für den normalen Entwickler äußerst umständlich wie bei Linux in Form von LXC. Mit Docker kann man über… 176320 Freitag, 19. September 2014 - 7:45 JAXenter | Artikel Docker – wir stehen erst am Anfang! Docker – wir stehen erst am Anfang! ALM im Wandel http://jaxenter.de/artikel/alm-im-wandel-176256 Stefan, du hast jetzt schon einige Jahre Erfahrung mit ALM-Projekten beim Kunden, was hat sich da im Laufe der Zeit für dich verändert? Stefan Mieth: Grundsätzlich sehe ich zwei – durchaus positive – Entwicklungen. Zum einen wird inzwischen das Thema ALM auch in vielen kleineren Unternehmen als Disziplin wahrgenommen. In Unternehmensgrößen, in den vor einigen Jahren noch ohne Prozesse und Werkzeugketten gearbeitet wurde, in denen der berüchtigte „Bus-Faktor“ Eins betrug, können wir heute eine klare ALM-Struktur erkennen. Aber auch bei den Großen ist ein Wandel sichtbar. Schwere Tanker werden… 176256 Mittwoch, 17. September 2014 - 10:17 JAXenter | Artikel ALM im Wandel ALM im Wandel Auf dem Weg zur Next-Generation-IT: PaaS, DevOps, Continuous Delivery, Docker,… http://jaxenter.de/artikel/cloudbees-interview-sacha-labourey-176222 Hallo Sacha! CloudBees wird sich fortan voll auf Jenkins konzentrieren und den Service RUN@cloud einstellen. Wie kam es zu dieser Entscheidung? Sacha Labourey: Von Beginn an bestand die Vision von CloudBees darin, eine Umgebung für Unternehmen und DevOps-Spezialisten bereitzustellen, um sofort neue Produkte zu entwickeln und Anwendungen kontinuierlich ausliefern zu können. Wir hatten deshalb einerseits DEV@cloud im Portfolio, um Continuous Integration in der Cloud vorzunehmen. Und andererseits RUN@cloud und WEAVE@cloud für Deployment und Integration. Nun hat Jenkins im Laufe des vergangenen… 176222 Dienstag, 16. September 2014 - 11:57 JAXenter | Artikel Auf dem Weg zur Next-Generation-IT: PaaS, DevOps, Continuous Delivery, Docker,… Auf dem Weg zur Next-Generation-IT: PaaS, DevOps, Continuous Delivery, Docker,… Mensch, Cyborg, Data: Schlaglichter unserer digitalen Zukunft http://jaxenter.de/artikel/webinale-visions-2014-176198 Im Rahmen der ersten Ausgabe des Symposiums ging es im Offenbacher Capitol einen Tag lang um das Thema Datability, ein Begriff, der eine Vielzahl von Digitalisierungsaspekten einschließt – von Big und Smart Data über Privatsphäre und Post Privacy bis hin zu Whistleblowing, Wearables, Self-Tracking und dem Internet der Dinge. Erklärtes Ziel des Events, das von Software & Support Media in Kooperation mit der Offenbacher Wirtschaftsförderung und dem Designstudio Sensory-Minds veranstaltet wurde, war es, den Teilnehmern mit den zahlreichen Vorträgen einen Einstieg in die wichtigen Aspekte… 176198 Montag, 15. September 2014 - 16:11 JAXenter | Artikel Mensch, Cyborg, Data: Schlaglichter unserer digitalen Zukunft Mensch, Cyborg, Data: Schlaglichter unserer digitalen Zukunft