JAX 2016, Buzzwords zum Mitreden

jax2016

Wer kennt sie nicht die alljährliche Java Konferenz im schönen Mainz zum Thema Java & Co? Selbst wenn man das Glück hat die Woche vor Ort zu sein und von Session zu Session flitzen zu dürfen, so bleiben einfach einige Themen links liegen zu denen man es nicht schafft. Im Nachhinein bleibt dann nur der Blick ins Programmheft was die Trends und Tendenzen in der Java-Welt sind. Für alle die wie ich nicht jede Session besuchen konnten die sie gerne gesehen hätten oder das Büro hüten mussten hier ein Versuch die diesjährigen Themen Zusammenzufassen.

Microservices

Wahrscheinlich das Thema schlechthin in diesem Jahr. Microservices sind ein Architekturansatz der vorsieht, dass die Entwicklung einer Software nicht in einem monolithischen Deployment endet, sondern, dass unsere Anwendung in viele kleine Komponenten geteilt ist. Diese Komponenten sollten völlig unabhängig voneinander betrieben und gewartet werden können. Ziel des Ganzen ist es eine besser Wartbarkeit zu erreichen da die unterschiedlichen Microservices autonom von unterschiedlichen Team bearbeitet werden können und nur über Schnittstellen kommunizieren.

https://jax.de/session/microservices-workshop-architektur-und-praxis/
https://jax.de/session/java-ee-meets-microservices/
https://jax.de/session/wie-microservices-ansaetze-scheitern-fuenf-anti-patterns/

AngularJS

Eines der vielen JavaScript Frameworks zur Entwicklung von Clientseitiger Webanwendungen. Entwickelt von Google erfreut sich Angular größter Beliebtheit und steht derzeit mit Angular2 (noch Beta) auch in einer brandneuen Version zur Verfügung. Bei Angular handelt es sich um ein Framework für klassische Single Page Anwendungen und basiert auf dem Model View Controller Prinzip.

HelloWorld

<input type="text" ng-model="yourName" />
<button ngClick="sayHello())>SayHello</button>
<h1 ng-show="yourName">Hello {{ yourName }}</h1>

https://jax.de/session/angularjs-2-0/
https://jax.de/session/angular-2-0-und-typescript-verliebt-verlobt-verheiratet/
https://jax.de/session/wiederverwendbare-komponenten-mit-angular-2-0-deep-dive/

Ionic

Ionic ist ein Framework welches eine Möglichkeit schafft mobile Hybrid-Anwendungen mit Web-Technologien zu schreiben. Dabei kümmert sich Ionic um das Look&Feel und die eigentliche Benutzeroberfläche die später in mobilen Endgeräten angezeigt werden. Zur Erzeugung der Anwendung wird Apache Cordova eingesetzt und zur Implementierung kommt sehr häufig Angular zum Einsatz

HelloWorld

<ion-header-bar class="bar-stable">
<h1 class="title">Hello World!</h1>
</ion-header-bar>
<ion-content>

 Hello {{yourName}} 

</ion-content>

https://jax.de/session/mobile-apps-mit-typescript-erster-blick-auf-ionic-2/

React

Eine JavaScript Bibliothek aus dem Hause Facebook um JavaScript Anwendungen zu entwickeln. Ein Schwerpunkt ist dabei ist die Performance bei großen Webseiten, so wird mit einem virtuellen DOM gearbeitet um nur Elemente zu aktualisieren die auch verändert wurden. Anders als z.B. Angular wird bei React nicht HTML mit Java Script angereichert, sondern ist JavaScript zentriert.

Hello World

var HelloWorld = React.createClass({
   render: function () {
    return <h1>Hello {this.props.name}!</h1>;
   }
});

ReactDOM.render(<HelloWorld name="YourName" />, document.getElementById('root'));

https://jax.de/session/komponentenentwicklung-mit-react/https://jax.de/session/isomorphic-javascript-webapps-auf-der-jvm-mit-react-js-und-java-ee-mvc/

TypeScript

TypeScript stammt aus dem Hause Microsoft und ist schon einige Jahre auf dem Markt und findet auch Verwendung bei der Entwicklung mit Angular 2.Bei Typescript handelt es sich um eine Obermenge von JavaScript, was bedeutet das jeder JavaScript Code auch gültiget TypeScript Code ist. Darüber hinaus fügt TypeScript „lesbare“ Klassen-Konstruktore, statische Typisierung und ECMA6 Syntax ein, das alles dank Umwandlung in reines JavaScript auch in älteren Browser funktioniert

import {Customer}     from './Models';
import {ServiceInterface, BasicRepository}     from './ServiceUtils';

class CustomerService
       extends BasicRepository&amp;amp;lt;Customer&amp;amp;gt;
       implements ServiceInterface{

   constructor() {
      super();
   }
}

Docker

Bei Docker handelt es sich einfach gesagt um das Image einer ganzen Laufzeitumgebung. Applikation Server, Storages, Datenbank etc. einmal konfiguriert und als Docker-Container in einer entsprechenden Laufzeitumgebung auf einem beliebigen System zum Ausführen gebracht.

jax2016-docker

(by https://www.docker.com/what-docker )

https://jax.de/session/docker-eine-einfuehrung/
https://jax.de/session/container-as-a-service-with-docker/
https://jax.de/session/start-your-rugged-devops-journey-with-nexus-jenkins-docker/

Java 9

Der Sprung auf die Version 8 wurde von vielen Entwicklern freudig erwartet, so brachte Java 8 doch einige neue Sprachfeatures mit. Mit der Version 9 steht eher ein „leises“ Update bevor, das eher die JVM verbessert (z.B. mittels Modulkonzept / Jigsaw) und sich weniger darauf konzentriert neue Features für den Anwendungsentwickler zu bieten

https://jax.de/session/was-wird-java-9-bringen-ein-ausblick-auf-die-naechste-version-von-java/

Elasticsearch

Bei Elasticsearch handelt es sich um eine auf Lucene basierende Suchmaschine. Diese Application kann genutzt werden um REST-basierte Suchanfragen auf der eigenen Webseite zu verarbeiten

https://jax.de/session/integration-von-elasticsearch-in-moderne-java-ee-webanwendungen/
https://jax.de/session/elasticsearch-performance-best-practices/
https://jax.de/session/ueberblick-zu-apache-lucene-und-den-darauf-basierenden-suchservern-apache-solr-und-elasticsearch/

MVC

Bei MVC handelt es sich in diesem Fall nicht um das Konzept (Model View Controller) sondern um ein Action basiertes Webframework das für Java EE 8 mit in den Standard fließt. Im Gegensatz zu JSF (Komponentenbasiert, abstrahiert von HTML/CSS/JavaScript) liegt ein Fokus auf darauf im Frontend alle Freiheiten zu haben die uns die Technik bietet.

HelloWorld

@Controller
@Path("hello")
public class HelloWorldController {
@Inject
Models models;

@GET
public String helloWorld() {
   this.models.put("text", "Hello World");
   return "/hello.jsp";
}

https://jax.de/session/eine-mvc-anwendung-in-60-minuten/
https://jax.de/session/isomorphic-javascript-webapps-auf-der-jvm-mit-react-js-und-java-ee-mvc/

HTTP2

Die neue Version der http/2 Protokolle ist unbemerkt schon seit langem auf dem Vormarsch. Viele Webseiten haben bereits umgestellt ohne das die Benutzer es gemerkt haben. http/2 verspricht schnelle Webseiten durch ein binäres Übertragungsformat, Komprimierung und Multiplexing (eine einzelne TCP-Verbindung für alle Ressourcen), siehe auch unseren Blog-Eintrag

https://jax.de/session/http2-and-java-9/

JavaFX

Java Framwork zum Schreiben von Desktop Anwendungen ähnlich wie Swing

HelloWorld

public class HelloWorld extends Application {
	public static void main(String[] args) {

	}

	@Override
	public void start(Stage primaryStage) {
		primaryStage.setTitle("Hello World!");
		final Label label = new Label("Hello World");
		StackPane root = new StackPane();
		root.getChildren().add(label);
		primaryStage.setScene(new Scene(root, 300, 250));
		primaryStage.show();
	}
}

https://jax.de/session/von-swing-nach-javafx/
https://jax.de/session/javafx-einstieg-am-lebenden-beispiel/
https://jax.de/session/javafx-im-ui-technologiedschungel/

Weitere Buzzwords

Spring Boot, Standalone Anwendungen auf inkl. Application Server auf Basis von Spring
Nexus, Maven Repository Manager
ECMAScript 2015, neue JavaScript Version
MQTT, Protokoll für Maschine zu Maschine Kommunikation, Internet der Dinge
JCache, Java Standard Caching API (JSR 107)
Checker, Framework zu Code Überprüfung
Jigsaw, Modulsystem Java 9
Gatling, Stress-Test Tool
Neo4j, Graph-Datenbank
…und noch viele mehr

Advertisements

Über Dominik Mathmann
Dominik Mathmann arbeitet als Berater, Entwickler und Trainer bei der GEDOPLAN GmbH. Auf Basis seiner langjährigen Erfahrung in der Implementierung von Java-EE-Anwendungen leitet er Seminare, hält Vorträge und unterstützt Kunden bei der Konzeption und Realisierung von Webanwendungen vom Backend bis zum Frontend. Sein derzeitiger Schwerpunkt liegt dabei auf der Entwicklung von JSF-Anwendungen. Er sieht die stärker werdende Position von JavaScript-Frameworks jedoch positiv und beschäftigt sich darüber hinaus mit Webframeworks wie AngularJS.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: