Archiv der Kategorie: Java

„Migration nach Java 8“ im JavaSPEKTRUM 4/2014 erschienen

In der Juli-Ausgabe des JavaSPEKTRUM erschien mein Beitrag Des Kaisers neue Kleider – Migration nach Java 8. Der Artikel wird freundlicherweise von meinem Arbeitgeber unter dem Link bereitgestellt, siehe auch unter https://www.iteratec.de/publikationen/.

Worum geht es? Lambdas, das neue Date-Time-API und ein Nashorn bringen frischen Schwung in die Entwicklung mit Java. Wie schwierig ist aber die Migration zu Java 8? Wie gut unterstützen die IDEs mich als Entwickler bereits, und wird die Anwendung gar langsamer? Sind die Build-Werkzeuge bereits vorbereitet, kann ich jetzt produktiv mit Java 8 sein?

Diese Fragestellung wurde anhand der Spring-Anwendung Pet Clinic angegangen, und ja, sie läuft jetzt auf Java 8. Inzwischen bereitet es mit Eclipse Luna sogar mehr Spaß, und FindBugs hat auch nachgezogen.

Aus dem Leben eines Entwicklers

Neulich durfte ich mal wieder bestehenden Code auf einer neuen Plattform zum Laufen bekommen. Der Code war natürlich gewachsen, hieß es, es haben sich schon viele daran versucht, teure Kräfte, aber meistens doch eher die billigeren Entwickler. Und deshalb komme ich nicht umhin, heute eine der Stilblüten zu veröffentlichen, über die ich im gesamten Code gestolpert bin.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public ArrayList<KryptischesDO> holeLesebestaetigungenZuNr(String vsnr, boolean inklusiveUngelesene)
  throws RemoteException, KryptischesBackendException
{
  if (LOG.isTraceEnabled()) {
    LOG.trace("Begin: KryptischesWebBackendImpl.holeLesebestaetigungenZuNr");
  }
  if (true) {
    throw this.kryptischesBackendExceptionFactory
        .createNotImplementedException("holeLesebestaetigungenZuNr not implemented");
  }
  if (LOG.isTraceEnabled()) {
    LOG.trace("End: KryptischesWebBackendImpl.holeLesebestaetigungenZuNr");
  }
  return null;
}

Weiterlesen

W-JAX: Golden Rules for Better Architectures

Taken from the presentation of Alexander von Zitzewitz.

  1. Apply a consistent packing naming convention.
  2. No cycles in your logical architecture, no cycles in your layers.
  3. No cyclic dependencies between different packages.
  4. Keep coupling low.
  5. Limit lines of code per file, 700 lines should be the maximum value.
  6. Limit cyclomatic complexity of methods, e.g. 15, at least less than 25.
  7. Limit the size of packages, e.g. less than 50 types.

Weiterlesen