Articles

Article

Ruby on Rails wird zehn Jahre alt

Zum Geburtstag: Queueing, Performance und Fremdschlüssel

Article

Scalable Software Systems

From developer laptops to server farms

Article

Grenzenlose Freiheit?

„Die Grenzen meiner Sprache bedeuten die Grenzen meiner Welt“, stellte schon Ludwig Wittgenstein fest. Auch wenn zwei Programmiersprachen Turing-vollständig sind und somit die gleichen Probleme lösen können, beeinflussen ihre Eigenschaften dennoch die Art und Qualität der Problemlösung. Mit der JVM steht uns heute eine Plattform zur Verfügung, bei der wir für jedes Problem die am besten geeignete Sprache wählen können. Auch wenn sich prinzipiell jede JVM-Sprache mit jeder anderen kombinieren lässt, gibt es einige Stolpersteine. In diesem Artikel wollen wir analysieren, wie gut sich Clojure mit Java verträgt.

Article

Kanonische Architektur-Evolution

Stereotypen, Konzepte und Konstruktionsregeln

Article

Wissen, was läuft

Mit Laufzeitmetriken den Überblick behalten

Article

Welten verbinden

Auch wenn inzwischen viele Voraussetzungen dafür geschaffen sind, dass sich der Smart Home Markt zum Massenmarkt entwickeln kann, sind noch längst nicht alle Probleme gelöst. Im Gegenteil, aufgrund der großen Fragmentierung haben die Nutzer häufig mehr Fragen als Antworten. Dieser Artikel soll dazu dienen, einige dieser Fragen zu klären und dabei eine Lösung an einem durchgängigen Beispiel vorzustellen.

Article

Durchbruch

Offene Plattformen verhelfen Smart Home zum Erfolg

Article

Firmenkultur bei innoQ

Ein Jahr nach dem Kulturschock

Article

Micro-Services in Java realisieren – Teil 2: Web-Apps in Docker-Umgebungen

In dem ersten Teil dieser zweiteiligen Reihe haben wir uns mit der Realisierung von Web-Apps mit dem leichtgewichtigen Framework DropWizard beschäftigt. In diesem Teil beschäftigen wir uns mit der offenen Plattform Docker. Damit lassen sich Umgebungen definieren und voneinander isolieren. Wie sich Docker von virtuellen Maschinen unterscheidet und was das für unsere Anwendungen bringt, stellt dieser Artikel vor.

Article

Attribut-basiertes Testen mit Scala

Wo hilft funktionale Programmierung bei der Automatisierung von Testaufgaben

Article

Programmieren macht Spaß!

Wie Rails Girls, Devoxx4Kids und andere Initiativen mit Vorurteilen aufräumen und Neulinge zum Coden bringen

Article

Ceylon auf der JVM und node.js

Kaum zu glauben, Gavin King und die Entwickler Community rund um Ceylon haben ihr Vorhaben durchgezogen und sind mit einem produktionsreifen Release der neuen Programmiersprache Ceylon an den Start gegangen. In diesem Artikel werden die Sprache und das Ökosystem von Ceylon dargestellt.

Article

Hystrix – damit Ihnen rechtzeitig die Sicherung durchbrennt

Article

Micro-Services in Java realisieren – Teil 1: Leichtgewichtige Web-Apps mit DropWizard

Micro-Services wider Monolithen

Article

Hystrix – Wider den Totalausfall

Michael T. Nygard hat in seinem Buch „Release It!” sehr anschaulich die Folgen von sich fortpflanzenden Fehlern beschrieben. Seine klare Empfehlung lautete, Isolationsmuster wie zum Beispiel Leistungsschutzschalter – engl. Circuit Breaker – in die Software zu integrieren, um Totalausfälle zu vermeiden. Mit Hystrix hat Netflix ein Framework bereitgestellt, das den Einbau von solchen Schaltern vereinfacht. Dieser Beitrag stellt das Framework vor.

Article

Software systematisch verbessern

Evolution, Änderung und Wartung – aber richtig!

Article

Die Renaissance von Erlang

99,9999999% Verfügbarkeit über 20 Jahre

Article

Skalierbare Softwaresysteme

Skalierbarkeit ist eines der klassischen Qualitätsmerkmale von IT-Systemen. Wenn wir diesen Begriff hören, denken wir üblicherweise sofort an die Skalierung des Systems “nach oben”. Es scheint also meistens darum zu gehen, inwieweit unser System durch das Hinzufügen von mehr RAM, CPU oder zusätzlichen Maschinen auch entsprechend mehr Durchsatz erreicht oder mehr Last vertragen kann. Oft ist aber auch die Skalierbarkeit “nach unten” interessant, also die Lauffähigkeit des Systems bei sehr wenig verfügbaren Ressourcen. Eine solche Flexibilität ist zum Beispiel sehr hilfreich, wenn ein komplexes System automatisiert durch viele unterschiedlich dimensionierte Entwicklungs-, Test- und Abnahmeumgebungen wandern muss, bevor es in der Produktivumgebung ankommt.

Article

Domain-Driven Design in Clojure

Gut bewertet

Article

Endlich viel erben?

Default-Methoden in Java-Interfaces

Article

GOTO 2013 Berlin

Im Rahmen eines unserer Firmenevents hat innoQ dieses Jahr geschlossen die GOTO-Konferenz in Berlin besucht. Dieser Artikel beinhaltet sieben Beiträge von verschiedenen Mitarbeitern zu einigen Highlights der Konferenz. Die Beiträge sind chronologisch nach den jeweiligen Talks sortiert.

Article

Versionsmanagement auf dem Tanker

Typische SCM-Szenarien großer Projekte mit festem Releasetakt

Article

ROCA: Keine Angst vor HTML und JavaScript

Web-Apps zum Wohlfühlen

Article

Use-Case-Puzzeln für Fortgeschrittene

Das aktuelle Umfeld in vielen Unternehmen ist sehr dynamisch und herausfordernd. Dieser Trend wird sich aufgrund des wirtschaftlichen Rahmens eher verstärken denn abnehmen. Dies merken auch die Softwareprojekte, die oftmals bestehende Geschäftsprozesse durch Softwarelösungen unterstützen müssen, wobei die notwendigen Umgestaltungen im Geschäftsprozess oftmals noch nicht bekannt sind. Dabei reicht die Bandbreite von punktueller Unterstützung durch „einfache“ Anwendungssysteme bis hin zu einer End-to- End-Automatisierung mittels BPMN2 oder BPEL. Unabhängig vom Scope und der Implementierungstechnik müssen Requirements Engineers in solchen Projekten jedoch auch Geschäftsprozesse verstehen und modellieren, um Anforderungen für die Software formulieren zu können.

Article

Hypermedia as the Engine of Application State – Spring Hateoas

RESTlos glücklich