JAXenter | Artikel Das Portal für Java, Architektur, Cloud & Agile http://jaxenter.de/ AngularJS-Core-Entwickler gibt auf http://jaxenter.de/artikel/angularjs-core-abschied-177643 Jetzt verlässt einer der Core-Entwickler das Team; offenbar aus persönlichen Gründen ebenso wie aus Unbehagen über die Entwicklung, die AngularJS 2.0 durchläuft. Dabei handelt es sich um keinen geringeren als Rob Eisenberg, der vor kurzem noch mit einem mehr als ausführlichen Artikel wichtige Design-Entscheidungen in AngularJS 2 erklären wollte. Core-Entwickler zieht sich zurück Wie bereits erwähnt, kam es nach der Sneak Preview von AngularJS 2.0 auf der ng-europe Ende Oktober zu einigem Unbehagen in der Angular-Community. Rob Eisenberg, der einem Teil der Community vor allem wegen seines… 177643 Freitag, 21. November 2014 - 13:53 JAXenter | Artikel AngularJS-Core-Entwickler gibt auf AngularJS-Core-Entwickler gibt auf Design Thinking als Prozess zur Innovationsfindung http://jaxenter.de/artikel/design-thinking-als-prozess-zur-innovationsfindung-177384 Was ist also das grundlegend Neue (oder Wiederentdeckte), das Unternehmen von unterschiedlicher Größe und in verschiedensten Branchen (von SAP, Deutscher Bank bis zu Rapp Germany und Dark Horse oder Partake) auf das Thema Design Thinking aufmerksam gemacht hat? Im Kern geht es darum, einen neuen Blick für Innovationen zu entwickeln und diese mit interdisziplinären Teams in einem eigenen Prozess zu bearbeiten. Bisher konnte die Wahrscheinlichkeit zur Umsetzung einer Innovation in einem Unternehmen am besten an der „Höhe“ abgelesen werden, auf der sie in der Managementhierarchie verankert war… 177384 Freitag, 21. November 2014 - 11:10 JAXenter | Artikel Design Thinking als Prozess zur Innovationsfindung Design Thinking als Prozess zur Innovationsfindung Maximale Flexibilität und Kontrolle in Softwareprojekten http://jaxenter.de/artikel/sla-basiertes-zusammenarbeitsmodell-177380 Seit Anfang des Jahrtausends hat hierzulande eine rasante Zunahme der Software-Offshoreentwicklung stattgefunden. Das zuerst wohl meistgenannte Argument dafür sind die tieferen Lohnkosten in typischen Offshoreländern, also eine taktische Kostensenkung im Projekt. Auch der hiesige Fachkräftemangel gilt als wichtige Motivation für Offshoreprojekte – es ist zum Teil schlicht nicht möglich, im lokalen Markt ausreichend gut qualifizierte Mitarbeiter für Softwareprojekte zu finden. Versuchung Outsourcing und Offshoreoutsourcing Zunehmend stehen jedoch neben diesen klassischen Argumenten… 177380 Mittwoch, 19. November 2014 - 12:00 JAXenter | Artikel Maximale Flexibilität und Kontrolle in Softwareprojekten Maximale Flexibilität und Kontrolle in Softwareprojekten GXT oder Vaadin? Zwei Web-Frameworks im Vergleich http://jaxenter.de/artikel/gxt-vaadin-vergleich-177517 Das Prinzip des Google Web Toolkits ist es, dass neben dem Servercode auch der komplette Client-Code in Java geschrieben werden kann. Bevor die Anwendung gestartet werden kann, wird dieser Code mithilfe des GWT Compilers in Java Scripts übersetzt. Natürlich muss der GWT Compiler den jeweils verwendeten Befehlssatz kennen. Das hat zur Folge, dass nicht beliebige Bibliotheken für den Client verwendet werden können, sondern nur diejenigen, die der Compiler übersetzen kann. Eine genaue Aufstellung der unterstützten Klassen findet man in der GWT-Dokumentation. Die Firma Sencha aus den USA hat mit… 177517 Dienstag, 18. November 2014 - 7:40 JAXenter | Artikel GXT oder Vaadin? Zwei Web-Frameworks im Vergleich GXT oder Vaadin? Zwei Web-Frameworks im Vergleich Mut zur Offenheit: Microsoft, Open Source und die Java-Welt http://jaxenter.de/artikel/microsoft-open-source-java-welt-177498 Seit einigen Tagen steht also der neue .NET Core, sozusagen die JVM der Microsoft-Welt, auf GitHub für alle im Quellcode zur Verfügung. Weitere zentrale Libraries gehören ebenfalls dazu, sodass ein vollwertiges .NET-Server-Framework für die Betriebssysteme Windows, Linux und Mac OSX vorliegt. Es gibt dabei übrigens auch Teile, die bei der jüngsten Open-Source-Initiative Microsofts ausgenommen wurden – das sind die Windows-spezifischen UI-Libraries WPF und Windows Forms, die ja ohnehin für eine serverseitige Programmierplattform nicht benötigt werden. Der Schritt ist konsequent und löste in… 177498 Montag, 17. November 2014 - 9:12 JAXenter | Artikel Mut zur Offenheit: Microsoft, Open Source und die Java-Welt Mut zur Offenheit: Microsoft, Open Source und die Java-Welt Agile: Auf dem Weg in die Zukunft http://jaxenter.de/artikel/weg-in-die-zukunft-169439 Um geschäftlichen Erfolg nicht nur kurzfristig zu erreichen, sondern nachhaltig sichern zu können, genügt es nicht, sich nur auf den Umsatz zu fokussieren. Durch das Internet hat sich die Lebensdauer eines Geschäftsmodells drastisch reduziert: Was heute noch einen großen Umsatzanteil ausmacht, kann morgen durch neue Tools oder kostenfreie Alternativen zu einem Nischendasein verkommen. Nachhaltigen Erfolg erreicht nur, wer permanent innovativ ist. Es gilt, immer schon die nächste Idee auszuprobieren, um nicht plötzlich den Anschluss zu verlieren. Ein innovatives Klima schafft man aber nicht… 169439 Freitag, 14. November 2014 - 8:34 JAXenter | Artikel Agile: Auf dem Weg in die Zukunft Agile: Auf dem Weg in die Zukunft Wie skaliert man Agilität in großen Organisationen? http://jaxenter.de/artikel/skalierung-agilitaet-grosse-organisationen-169433 Der Product Owner als Bottleneck? Um uns den Herausforderungen bei der Arbeit mit Scrum in einer großen Organisation anzunähern, stellen wir uns die Arbeit in und die Zusammenarbeit zwischen einer großen Zahl von Scrum-Teams vor. In der Praxis ist häufig jedem Team ein eigener Product Owner zugeordnet. Steigt die Anzahl der Teams, die gemeinsam an einem Produkt arbeiten, entsteht Abstimmungsbedarf zwischen den Product Ownern. Hier liegt ein zentrales Problem bei der Skalierung von Scrum: Die Rolle des Product Owners und damit die Anforderungsseite bzw. die Beziehung zum Kunden, skaliert nicht… 169433 Donnerstag, 13. November 2014 - 11:24 JAXenter | Artikel Wie skaliert man Agilität in großen Organisationen? Wie skaliert man Agilität in großen Organisationen? AngularJS 2.0: die ganze Story http://jaxenter.de/artikel/angularjs-2-0-details-177422 Denn nichts ist schlimmer, als eine verunsicherte Community, die nicht so recht weiß, wie ihr geschieht. Daher fasst Eisenberg die seiner Meinung nach wichtigsten Features und Bereiche der aktuellen AngularJS-2.0-Entwicklung zusammen, gibt Einblicke in die Motivation und die Prozesse dahinter und geizt dabei auch nicht mit seiner persönlichen Meinung und Einschätzung. AngularJS – der Stand der Dinge Mit dem Release von AngularJS 1.3 gab sich das Team selbstbewusst – nichts anderes als der Maßstab für JavaScript-Entwickler sollte das Framework sein. Wenn es nach Eisenberg geht, ist es das… 177422 Mittwoch, 12. November 2014 - 16:05 JAXenter | Artikel AngularJS 2.0: die ganze Story AngularJS 2.0: die ganze Story Die Kunst des Logging: Production ready? http://jaxenter.de/artikel/logging-production-ready-176454 Innerhalb dieser Miniserie wollen wir die hierdurch entstehenden Anforderungen an Entwickler, als auch an die eingesetzten Tools selbst genauer unter die Lupe nehmen. Zum Ende eines jeden Artikels versuchen wir uns an einer möglichst objektiven Bewertung der Werkzeuge im jeweiligen Einsatzszenario. Da aber viele miteinander interagierende Tools vorgestellt werden, müssen wir uns auf eine Beschreibung und eine Bewertung beschränken und wollen mit den Artikeln das Zusammenspiel und die Funktionsweise beschreiben (Abb. 1). Für konkretere Einblicke in die Tools wollen wir gern auf speziellere… 176454 Mittwoch, 12. November 2014 - 12:00 JAXenter | Artikel Die Kunst des Logging: Production ready? Die Kunst des Logging: Production ready? Ein Tag für die Sicherheit von IT-Anwendungen http://jaxenter.de/artikel/security-day-w-jax-177343 Die Sicht eines Angreifers Als lockerer Einstieg (und auch etwas zur Motivation für das Thema Security) wurde der Tag mit einer Live-Hacking Demo begonnen, in welcher die Teilnehmer diverse Angriffe live auf eine Java-Web-Anwendung mitverfolgen konnten. In meiner Session "Live-Hacking und Data Exfiltration - Erleben Sie die Sicht eines Angreifers an Praxisbeispielen" wurde eine Demo-Anwendung mit einem mehrstufigen Berechtigungssystem zuerst mittels Cross-Site Scripting (XSS) und danach mittels SQL-Injection angegriffen. Der Schwerpunkt bei den Demonstrationen lag auf den realen… 177343 Montag, 10. November 2014 - 14:54 JAXenter | Artikel Ein Tag für die Sicherheit von IT-Anwendungen Ein Tag für die Sicherheit von IT-Anwendungen Silicon Valley – The Promised Land? http://jaxenter.de/artikel/silicon-valley-177067 Es war im Jahre 1848, als der Zimmermann James Wilson Marshall beim Bau einer Sägemühle am Südarm des American River im Cullomah Valley ein Goldnugget im Wert von fünf Dollar fand. Daraufhin setzte ein wahrer Goldrausch ein, der Tausende dazu bewegte, umgehend alles stehen und liegen zu lassen, um per Schiff, mit dem Wagen oder zu Fuß nach Kalifornien zu gelangen, um dort das große Glück zu finden. Der Sonnenstaat im Westen der USA erhielt in dieser Zeit den Beinamen „Golden State“ und galt ab sofort für viele als Land der Träume. Innerhalb eines Jahres verfünffachte sich die Bevölkerungszahl… 177067 Montag, 10. November 2014 - 11:30 JAXenter | Artikel Silicon Valley – The Promised Land? Silicon Valley – The Promised Land? Oberflächen mit Tiefgang - Oder: Wie man einen Finnen zum Lachen bringt http://jaxenter.de/artikel/web-ui-day-w-jax-2014-177299 Hervorgegangen ist der Tag aus den sehr technologiespezifischen Tagen des JSF-Days, des GWT-Days und anderer. Ziel der Veranstalter ist es, an einem dezidierten Tag möglichst viele Informationen zu Möglichkeiten des UI-Baus im Web zu übermitteln – ohne religiös an einzelnen Technologien zu hängen. Vielmehr sollen Architekturen, Konzepte und Best Practices vorgestellt, sowie ein breites Spektrum von möglichen Umsetzungen gezeigt werden. So war die Palette der angebotenen Sessions sehr breit. Den Anfang machte ich selbst mit einem Talk zu WebSockets, SSE und JSF. Es wurde demonstriert, wie mit… 177299 Freitag, 7. November 2014 - 9:03 JAXenter | Artikel Oberflächen mit Tiefgang - Oder: Wie man einen Finnen zum Lachen bringt Oberflächen mit Tiefgang - Oder: Wie man einen Finnen zum Lachen bringt W-JAX Blog: Bis zum nächsten Mal … wenn es wieder so guten Kaffee gibt :-) http://jaxenter.de/artikel/W-JAX-Blog-Bis-zum-naechsten-Mal-wenn-wieder-so-guten-Kaffee-gibt-177298 Natürlich wollte ich die Keynote von Michael T. Nygard auf keinen Fall verpassen, der Mann hat mich mit seinem Buch "Release-IT!" schwer beeinflusst. Wie zu erwarten ging es nicht um technische Finessen, sondern um unsere wirklichen Probleme, die Produktion von Software und deren Kosten, wenn man zur falschen Zeit falsche Entscheidungen trifft :-) Danach ging es direkt mit „Next Generation Business Architectures“ von Eberhard Wolff weiter. Der Talk nahm überraschenderweise eine andere Wendung, als ich dachte: Es ging weniger um den derzeitigen Klassiker Micro Services, denn viel mehr um die… 177298 Freitag, 7. November 2014 - 8:49 JAXenter | Artikel W-JAX Blog: Bis zum nächsten Mal … wenn es wieder so guten Kaffee gibt :-) W-JAX Blog: Bis zum nächsten Mal … wenn es wieder so guten Kaffee gibt :-) Von Agile zum Business Enterprise Architect - oder dem "Businessversteher… http://jaxenter.de/artikel/Von-Agile-zum-Business-Enterprise-Architect-oder-Businessversteher-177290 Dabei wurde zum einen intensiv diskutiert, wie man objektiv Messgrößen definiert. Dabei vertrete ich klar den Standpunkt, dass eine Messgröße nicht objektiv sein muss, sondern nur zwischen den Beteiligten abgestimmt sein sollte und für sie die entsprechende Transparenz liefern muss. Es gibt hierbei sicher keine allgemeingültige Lösung. Aber wenn die direkt Betroffenen sich auf eine oder mehrere Messgrößen verständigt haben, so ist dies der Schritt in die richtige Richtung. Zum anderen wurde sehr kontrovers diskutiert, ob und wie stark eine Architektur designed und dokumentiert werden muss,… 177290 Donnerstag, 6. November 2014 - 14:55 JAXenter | Artikel Von Agile zum Business Enterprise Architect - oder dem "Businessversteher… Von Agile zum Business Enterprise Architect - oder dem "Businessversteher… Vert.x for World Domination [W-JAX Blog] http://jaxenter.de/artikel/Vertx-for-World-Domination-W-JAX-Blog-177285 Ich kenne die anfänglichen Hürden bei Vert.x nur zu gut und habe bei einigen Ausführungen sehr schmunzeln müssen, da ich über exakt die gleichen Probleme gestolpert bin. Die kurzweilige und unterhaltsame Art des Vortrags fand ich dem Thema sehr angemessen. Darüber hinaus war die Demonstration mit den Robotern hilfreich, um das Clustering mit Hilfe von Hazelcast zu visualisieren. Ich muss ja zur meiner Schande gestehen, dass ich das Projekt “Crashub” bislang noch nicht kannte und die Möglichkeit, sich einfach den den Eventbus zu hängen und über dieses Module Events an die Verticles zu schicken… 177285 Donnerstag, 6. November 2014 - 14:26 JAXenter | Artikel Vert.x for World Domination [W-JAX Blog] Vert.x for World Domination [W-JAX Blog] "Stellen Sie sich vor, Sie könnten JEDES Projekt in 5 Tagen fertigstellen… http://jaxenter.de/artikel/Stellen-Sie-sich-vor-Sie-koennten-JEDES-Projekt-in-5-Tagen-fertigstellen-177278 Er präsentierte aber auch Visionen. Für eine Keynote ist das völlig ok. Das Publikum soll sich Gedanken machen und zum Mitdenken angeregt werden. Einige Visionen basierten aber auf der Prämisse "Stellen Sie sich vor, Sie könnten JEDES Projekt in 5 Tagen fertigstellen". Das ist ganz analog zu "Stellen Sie sich vor, Sie könnten aus Stroh Gold machen". Es ist klar, dass aus derartigen Prämissen beliebige Schlussfolgerungen gezogen werden. Schlussfolgerungen, die sich eventuell tatsächlich einmal einstellen werden, aber sicher nicht, so lange sich die Zuhörer des Vortrags noch im Arbeitsleben… 177278 Donnerstag, 6. November 2014 - 11:22 JAXenter | Artikel "Stellen Sie sich vor, Sie könnten JEDES Projekt in 5 Tagen fertigstellen… "Stellen Sie sich vor, Sie könnten JEDES Projekt in 5 Tagen fertigstellen… Wer testet in Scrum? [W-JAX-Blog] http://jaxenter.de/artikel/wer-testet-in-scrum-177272 Dass von diesen knapp 100 Teilnehmern nur ca. 6  „wirkliche“ Tester sind und fast der gesamte Rest „reine“ Entwickler, war für mich so nicht zu erwarten. Ganz im Gegenteil, ich bin davon ausgegangen, dass das Verhältnis sehr viel ausgewogener ist. Also eher so, wie in „wirklichen Teams“: 1 Tester auf 3 oder 4 Entwickler. Anscheinend war meine Annahme falsch. Aber vielleicht war auch nur der Teil falsch, dass in „wirklichen Teams“ überhaupt Menschen vorhanden sind, die das Thema der Qualitätssicherung im Fokus haben. Meine Erfahrung aus den unterschiedlichen Kundenumfeldern, die ich berate,… 177272 Donnerstag, 6. November 2014 - 10:53 JAXenter | Artikel Wer testet in Scrum? [W-JAX-Blog] Wer testet in Scrum? [W-JAX-Blog] Reactive Systems - Brauchen wir ein neues IT-Paradigma? http://jaxenter.de/artikel/reactive-day-w-jax-177267 Die Definition für "Reactive" liefert das "Reactive Manifesto". Es fordert von IT-Systemen die Eigenschaften "Responsive" (Antwortbereitschaft), "Resilient" (Robustheit), "Elastic" (Elastizität) und "Message-driven" (Nachrichten-basiert). Das kurze Papier ist nachzulesen unter http://www.reactivemanifesto.org. If it needs to respond in failure case, that's resilient (Dr. Roland Kuhn) Reactive Streams Nach kurzer Begrüßung durch Heiko Seeberger startete Dr. Roland Kuhn den Reactive Day mit einem Vortrag über "Akka Streams". Diese sind eine Implementierung der "Reactive Streams": Verschiedene… 177267 Donnerstag, 6. November 2014 - 10:11 JAXenter | Artikel Reactive Systems - Brauchen wir ein neues IT-Paradigma? Reactive Systems - Brauchen wir ein neues IT-Paradigma? Android: Ein Blick auf die fünfte Version der Play Services http://jaxenter.de/artikel/ein-blick-auf-fuenfte-version-play-services-176856 Android leidet seit jeher darunter, dass Hardwarehersteller ihre Telefone nur sehr zögerlich mit Updates versorgen. Aus kommerzieller Sicht ist eine Aktualisierung reine Zeitverschwendung: Sie bringt keine Zusatzeinnahmen und hält Nutzer vom Kauf eines Nachfolgemodells ab. Zur Behebung dieses Problems beschloss Google im Jahr 2012, dass das Betriebssystem fortan in mehrere Komponenten zerlegt wird. Eine als Play Services bezeichnete Komponente kommt in Form einer aus dem Play Store herunterladbaren App aufs Smartphone. Dadurch kann Google die dort enthaltenen Funktionen aktualisieren, ohne… 176856 Donnerstag, 6. November 2014 - 9:00 JAXenter | Artikel Android: Ein Blick auf die fünfte Version der Play Services Android: Ein Blick auf die fünfte Version der Play Services Flexible Unternehmens-IT http://jaxenter.de/artikel/flexible-unternehmens-it-176794 Derzeitige Unternehmensorganisationen verhindern meist die notwendige Geschwindigkeit bei der Entwicklung von Software. Jeder Bereich arbeitet in einer Art Silo, Zusammenarbeit ist geprägt durch gewachsene, vielleicht auch unnötig komplizierte Prozesse. Jedoch hat jedes Unternehmen das Ziel, Funktionalitäten schneller an den Markt zu bringen, Qualität und Wartbarkeit zu steigern und Feedback der Kunden möglichst sofort umzusetzen. Dazu ist ein Wandel in der Organisation notwendig, der die unterschiedlichen Unternehmensbereiche zum Zusammenrücken und zum Aufbrechen der Silos zwingt. Ein Trend… 176794 Donnerstag, 6. November 2014 - 9:00 JAXenter | Artikel Flexible Unternehmens-IT Flexible Unternehmens-IT Agiler durch erfolgreiche Kommunikation http://jaxenter.de/artikel/agiler-erfolgreiche-kommunikation-177256 Kommunikation steht im Vordergrund Auch wenn agile Methoden wie Scrum oder Pair Programming für die Entwickler inzwischen zum Alltag gehören, haben „traditionelle“ Manager noch immer Mühe mit diesen Vorstellungen. Johann-Peter Hartmann, CTO von Mayflower, präsentierte in seiner Session einige Positionen, die das Vorstellungsvermögen und die Planungswut des Managements vor Herausforderungen stellen. Wie zum Beispiel macht man jemandem klar, dass zwei Programmierer, die eine Aufgabe zugleich erledigen, effektiver sind als zwei, die zwei Aufgaben parallel machen? Warum sind Planungen, die nicht… 177256 Donnerstag, 6. November 2014 - 7:54 JAXenter | Artikel Agiler durch erfolgreiche Kommunikation Agiler durch erfolgreiche Kommunikation Kontinuierliche Architekturvalidierung: Auf die inneren Werte kommt es an http://jaxenter.de/Kontinuierliche-Architekturvalidierung-Auf-inneren-Werte-kommt-an-176851 In vielen Projekten sieht die Architektur im Pflichtenheft durchdacht und manchmal sogar elegant aus. Doch entscheidend ist die tatsächliche Architektur, die später in der Codebasis vorliegt. Das Problem ist, dass die ursprünglich geplante und zu Beginn der Entwicklung auch realisierte Architektur im weiteren Verlauf der Entwicklung erodieren kann, falls keine entsprechenden Maßnahmen ergriffen werden, um dies gezielt zu verhindern. Dieses Phänomen ist allgemein bekannt als „Softwareerosion“. Mit diesem Begriff erhält der schleichende Verfall eines Softwaresystems durch zunehmende Entropie… 176851 Mittwoch, 5. November 2014 - 9:00 JAXenter | Artikel Kontinuierliche Architekturvalidierung: Auf die inneren Werte kommt es an Kontinuierliche Architekturvalidierung: Auf die inneren Werte kommt es an Java-Trickkiste: Patterns zum Instanziieren von Klassen http://jaxenter.de/Java-Trickkiste-Patterns-zum-Instanziieren-von-Klassen-176842 Initialisierung im Konstruktor Nicht alle Felder einer Klasse brauchen Setter-Methoden, auch wenn IDEs anbieten, sie zu generieren. Wenn man Felder in einem Konstruktor initialisiert, kann man sie final machen, und der Code ist klarer und bietet weniger Möglichkeiten zur falschen Benutzung. Die Initialisierung per Konstruktor funktioniert unter dem Namen Constructor Injection übrigens auch mit gängigen DI-Frameworks (Listing 1). Spring und CDI unterstützen das schon lange, EJBs inzwischen auch – die Spec erzwingt allerdings, dass zusätzlich ein No-Args-Konstruktor vorhanden ist. public class… 176842 Mittwoch, 5. November 2014 - 7:00 JAXenter | Artikel Java-Trickkiste: Patterns zum Instanziieren von Klassen Java-Trickkiste: Patterns zum Instanziieren von Klassen 'IT builds the platform, not the apps' http://jaxenter.de/artikel/it-builds-the-platform-not-the-apps-177226 „Die Software, die wir schreiben, hat im Laufe der Geschichte eine Wirtschaftsbranche nach der anderen aufgewirbelt...Wir sind nun an dem Punkt angelangt, wo sie unseren eigene Branche aufwirbelt.“ So begann Nyard, seines Zeichens langjähriger Software-Entwickler und –Architekt und Autor des Bestsellers „Release It!“, seine Ausführungen. In der IT habe längst ein großes Umdenken eingesetzt, konstatiert er: weg von zentralisierten hin zu dezentralisierten Systemen, vom traditionellen Wasserfallmodell hin zu agilen Ansätzen. Dazu komme die Tendenz zu kleineren Entwicklerteams und zu… 177226 Dienstag, 4. November 2014 - 12:11 JAXenter | Artikel 'IT builds the platform, not the apps' 'IT builds the platform, not the apps' Codeanalyse: Ein Vergleich zwischen Open Source und kommerzieller Software http://jaxenter.de/artikel/Codeanalyse-Ein-Vergleich-zwischen-Open-Source-kommerzieller-Software-176847 Java-Entwickler haben es nicht leicht: Millionen von Nutzern erwarten von ihnen sichere, qualitativ einwandfreie Software – schnell geliefert, stets auf dem neuesten Stand und maximal zugänglich. Als moderne, erwachsene Plattform bietet Java eine Reihe an Vorteilen, mit denen Entwickler diese Forderungen erfüllen können. Das beginnt bereits mit Funktionen, die die Sprache robuster und Entwickler effizienter werden lassen; das umgebende System hat sich ebenfalls weiterentwickelt und umfasst eine große Zahl von Drittsoftware, die ebenfalls auf diese Ziele hinarbeitet. Die Beliebtheit ihrer… 176847 Dienstag, 4. November 2014 - 9:00 JAXenter | Artikel Codeanalyse: Ein Vergleich zwischen Open Source und kommerzieller Software Codeanalyse: Ein Vergleich zwischen Open Source und kommerzieller Software Knigge für Softwarearchitekten: Die Gegner http://jaxenter.de/artikel/Knigge-fuer-Softwarearchitekten-Gegner-176803 Ausgangspunkt: Ein Review Vor Änderungen oder Verbesserungen an Software hilft es ungemein, wenn Sie sich zuerst einen Überblick über vorhandene Risiken, Probleme und deren Ursachen verschaffen. Sie können diese Probleme systematisch aufdecken, und dazu passende Lösungs- oder Abhilfemaßnahmen entwerfen.Sie haben mit einem kleinen Team erfahrener Softwerker einen gründlichen Review eines Softwaresystems und der damit verbundenen Entwicklungsprozesse durchgeführt. Qualitative Analyse (nach ATAM), statische Codeanalyse, Laufzeitmessungen (Profiling) sowie die Analyse der beteiligten Daten,… 176803 Dienstag, 4. November 2014 - 7:30 JAXenter | Artikel Knigge für Softwarearchitekten: Die Gegner Knigge für Softwarearchitekten: Die Gegner Micro Services in der Praxis: Nie wieder Monolithen! http://jaxenter.de/artikel/nie-wieder-monolithen-176652 Im Jahr 2010 kannten wir noch keine Micro Services und wollten dennoch alles richtig machen: Nie wieder ein Monolith! Ein Greenfield-Projekt bot viele Möglichkeiten, die Architektur zu gestalten. Die angestrebte (eine) Webanwendung haben wir mit dem Product Owner gemeinsam fachlich in acht grobgranulare Module zerlegt. Jedes Modul wurde als Web-App mit eigenständiger NoSQL-Datenbank umgesetzt und alle Web-Apps wurden gemeinsam durch eine Deployment Pipeline kontinuierlich auf das Produktionssystem verteilt. Die Welt war in Ordnung. Zweieinhalb Jahre und 3 000 Klassen später war jede Web-App… 176652 Montag, 3. November 2014 - 8:30 JAXenter | Artikel Micro Services in der Praxis: Nie wieder Monolithen! Micro Services in der Praxis: Nie wieder Monolithen! 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?