IBAN und BIC Validator (3)
Nachdem im vorherigen Beitrag zum Thema, die Prüfung der deutschen IBAN und BIC verbessert wurde, rundet dieser Beitrag die Validierung ab.
Thoughts on agile software development
Nachdem im vorherigen Beitrag zum Thema, die Prüfung der deutschen IBAN und BIC verbessert wurde, rundet dieser Beitrag die Validierung ab.
Im ersten Teil zu der IBAN und BIC Validierung wurden erste Implementierungen vorgestellt um die syntaktische Korrektheit von IBAN und BIC zu prüfen und bei der IBAN zusätzlich die Prüfsumme zu nutzen. In diesem Beitrag sollen zusätzliche landesspezifische Eigenschaften genutzt werden. Insbesondere die Informationen der Deutschen Bundesbank zu den deutschen Geldinstituten.
Nach den Beiträgen zu der eher unbekannten Leitweg-ID und den geläufigen Telefonnummern wird sich dieser Beitrag mit den beiden bekanntesten IDs aus dem Zahlungswesen beschäftigen, der IBAN und dem BIC.
Ahnendaten haben ihre ganz speziellen Eigenschaften und Beschränkungen. Daher ist die Wahl der richtigen Persistenz nicht trivial. Eine interessante Wahl um Ahnendaten zu speichern ist die NoSQL Datenbank OrientDB.
Hat man eine Idee implementiert, dann ist die nächste oft nicht weit. Die Telephone Bibliothek kann nun schon mit Telefonnummern und Rufnummernblöcken umgehen und bietet Unterstützung für Bean Validation und Jackson. In diesem Beitrag kommt der Support der Template-Engine FreshMarker hinzu.
Nachdem in den letzten Beiträgen zur Bibliothek Telephone, die Bean Validierung und der Jackson Support hinzugefügt wurden, geht es in diesem Beitrag um eine fachliche Ergänzung. Bisher behandelt die Bibliothek nur nationale und internationale Telefonnummern. In diesem Beitrag kommen Rufnummernblöcke hinzu. Ein Rufnummernblock ist eine Liste von aufeinanderfolgende Rufnummern. Im folgenden Beispiel sind 10 Rufnummern dargestellt, die alle die gemeinsame Basisrufnummer 1122 besitzen und die Durchwahlen 0 bis 9.
Im ersten Teil des Beitrags wurde gezeigt, wie man die Klasse InternationalPhoneNumber aus dem Telephone Projekt mit der Jackson Bibliothek verwenden kann. Im zweiten Teil soll die erste Implementierung noch etwas anwendungsfreundlicher werden.
Im letzten Beitrag wurde für die Klasse InternationalTelephoneNumber aus dem Projekt Telephone ein Serialisierer und ein Deserialisierer für Jackson erstellt. Damit ist es möglich diese Klasse direkt in REST Request einzusetzen. Zusätzlich wäre eine Validierung der Telefonnummern wünschenswert. Auf diese Weise könnten Telefonnummern mit speziellen Vorwahlen oder Durchwahlen abgelehnt werden.
Immer wieder kommt es vor, dass man im eigenen Spring Boot REST-Controller Klassen verwenden möchte, die nicht dafür konstruiert wurden. In der Regel trifft dies auf Klassen zu, die aus Dritt-Bibliotheken stammen.
Bei der Arbeit mit Legacy Anwendungen ist es einem Entwickler selten vergönnt, Ideen für eine neue Software zu finden. Hin und wieder zeigt sich aber ein Problem, das auch in anderen Konstellationen auftreten kann. Bei der Arbeit mit der Template Engine FreshMarker müssen bisher alle notwendigen Daten für die Verarbeitung in einer Map an das Template übergeben werden. Müssen diese Daten aufwendig bereitgestellt werden und werden dann nicht genutzt, ist dies eine Verschwendung teurer Resourcen.