kexxs.at ist nun https

Ab heute ist die Seite mit HTTPS verschlüsselt. Diese Seite verarbeitet zwar keine kritischen Daten trotzdem werden in Zukunft wohl alle Seiten nur noch mittels HTTPS erreichbar sein, weil Google Seiten bestraft die nicht verschlüsselt sind.

Glücklicherweise ist es bei world4you kostenlos möglich HTTPS zu beantragen, deswegen habe ich es sofort gemacht.

In WordPress musste die URL der Seite dann nur noch auf HTTPS geändert werden und in der htaccess musste noch ein redirect eingrichtet werden und Voila fertig war meine verschlüsselte Seite.  =)

F.I.R.S.T

Unit Tests sollten sich immer an folgende 5 Regeln halten:

Fast (Schnell)

Tests sollten schnell sein, den langsame Tests werden nicht oft ausgeführt. Dies führt dazu das Fehler spät oder gar nicht entdeckt werden. Beziehungsweise werden sie erst entdeckt wenn es nicht mehr so einfach ist sie zu beheben.

Independet (Unabhängig)

Tests sollten unabhängig voneinander und in beliebiger Reihenfolge durchgeführt werden können. Wenn Tests untereinander Abhängigkeiten haben, kann es dazu führen, das ein Fehler im vorigen Tests Auswirkungen auf den nächsten hat, dies erschwert eine Analyse.

Repeatable (Wiederholbar)

Tests sollten jederzeit wiederholbar sein und auf jeden System. Egal ob am Test oder am Produktionssystem. Ansonsten hat man immer einen Ausrede warum ein Test gerade failed.

Self-Validating (Selbstvalidierung)

Tests sollten ein Boolean Ergebnis liefern. Entweder wurde der Test bestanden oder eben nicht. Das lesen von Log Files und selbständiges kontrollieren des Ergebnisses ist zu vermeiden.

Timely (Rechtzeitig)

Tests sollten ummittelbar vor den Produktionscode geschrieben werden. Wenn die Tests erst danach geschrieben werden, kann dies dazu führen das bestimmte Passagen des Codes nicht oder nur sehr schwer testbar sind.

 

 

 

 

 

Die 3 Regeln des Test Driven Development

Jeder weiß das wir für TDD Unit Test schreiben müssen bevor wir mit dem Produkton Code anfangen. Aber das ist nur die Spitze des Eisberges. Für TDD muss man folgende 3 Regeln beachten:

Regel Nummer 1

Es darf erst mit den Produktionscode angefangen werden wenn es einen fehlerhaften Unit Test dazu gibt.

Regel Nummer 2

Der Unit Test darf nur soviel erweitert werden, bis er nicht mehr erfolgreich abgeschlossen werden wird.

Regel Nummer 3 

Der Produktionscode darf nur um soviel erweitert werden damit der Unit Test erfolgreich abgeschlossen werden kann.

Somit schließt sich der Kreis. Ein Durchlauf dauert ungefähr 30 Sekunden, Test und Produktionscode wachsen gemeinsam. Wobei der Test Code immer knapp die Nase vorne hat.

Somit ist immer gewährleistet das jeglicher Produktionscode von einen Unit Test abgedeckt ist.

 

 

 

Unterschied Java EE und Java SE

Java SE

Standard Edition. This is the core Java programming platform. It contains all of the libraries and APIs that any Java programmer should learn (java.lang, java.io, java.math, java.net, java.util, etc…).

Java SE ist die Standard Edition. Es handelt sich hierbei um die Kernplattform von Java. Es beinhaltet alle Libraries und APIs die ein Java Entwickler kennen sollte wie java.lang, java.io, java.math ,java.net und java.util)

Java EE

Java EE ist die Enterprise Edition der Unterschied laut Wikipedia:

The Java platform (Enterprise Edition) differs from the Java Standard Edition Platform (Java SE) in that it adds libraries which provide functionality to deploy fault-tolerant, distributed, multi-tier Java software, based largely on modular components running on an application server.

In anderen Worten falls es sich um eine große Applikation die auf verteilten Systemen läuft sollte die Java EE verwendet werden. Diese setzt auf die JAVA SE auf und erweitet sie um eineige Funktionen. Wie zum Beispiel Database Access(JDBC, JPA, Remote Method Invocation (RMI), Messaging (JMS), Web Services und XML Processing. Es definiert auch die STandard APIs für Enterprise JavaBeans, SErvlets, Portlets und Java Server Pages.

Java EE arbeite grundsätzlich auf BAsis eines Applikation-Servers (z.B. JBoss). Für diesen werden spezielle Enterprise Java Beans (EJB) geschrieben. Diese sind auch nur auf den Applikationsserver lauffähig. Einer der Vorteile dabei ist, dass der Server für die Instanzerzeugung verantwortlich ist (Dependency Injection).

Einige Teile der EE waren so erfolgreich, das sie auch für SE zugänglich gemacht wurden, ein gutes Beispiel hierfür ist Hibernate.

 

Die Vier Säulen der Objektorientierung

Unter den 4 Säulen der Objektorientierung versteht man folgende Paradigmen:

Beziehungen

Objekte und Klassen existieren nicht für sich alleine, sondern stehen in Beziehungen zueinander

  • sie haben Gemeinsamkeiten (Generalisierung/Spezialisierung)
  • sie enhalten einander (Aggregation/Komposition)

Kapselung

Unter Kapselung versteht man den Schutz von Klassen und Variablen. Jedes Objekt ist von einer Kapsel umgeben und von außen sind nur die erwünschten Methoden und Variablen ersichtlich.

Vererbung

Eine Klasse kann auf eine Unterklasse vererbt werden. Die Unterklasse übernimmt die Eigenschaften der Elternklasse und kann diese erweitern oder auch einschränken. Ein Beispiel wäre die Elternklasse Fahrzeug mit der Unterklasse Auto. Jedes Auto ist ein Fahrzeug, aber nicht jedes Fahrzeug ein Auto.

Polymorphie

Dank Polymorphie ist es möglich, dass mehrere Unterklassen die selbe Botschaft verstehen aber unterschiedlich damit umgehen. So ist sowohl das Fahrrad sowie das Auto ein Fahrzeug und besitzen beide die Methode bremsen() auch sind die Resultate die selben, das Fahrzeug wird langsamer, jedoch können beide Methoden komplett unterschiedlich implementiert sein.