Dipl.-Ing. Gerhard Radatz
IT – Consulting
Dipl.-Ing. Gerhard Radatz
IT – Consulting

Konzeption und Planung

Der erste Schritt zu einer gelungenen App­li­ka­tion besteht in der sorgfältigen Erstellung eines Konzepts. Die Wünsche und Bedürfnisse des Kunden müssen so genau wie möglich erfasst und zusammen diskutiert werden. Häufig wer­den im Zuge dieses Prozesses dem Kunden viele Details der Aufgabenstellung erst richtig bewußt.

User Interface Design

Das User Interface einer Applikation ist ent­schei­dend für die Akzeptanz durch den Be­nutzer. Deswegen ist es in Abstimmung mit dem Kunden immens wichtig, sowohl die Prä­sen­tation der Daten als auch die Ein­gabe­möglich­keiten so intuitiv wie möglich zu ge­stalten.

Software Architektur

Für gute Qualität einer Software sind viele Aspekte zu beachten. Dazu zählen unter anderem:
  • Auswahl von etablierten Standardkomponenten
  • Einhalten von Clean Code Standards
  • Präzise Dokumentation
  • Einhalten des Prinzips „Separation of Concerns“ (einzelne Komponenten einer Software sollen möglichst nur ein Teilproblem behandeln
  • Nachweis der ordnungsgemäßen Funktionalität mittels Unit-Testing
  • etc...

Full Stack Software Development

Als Full Stack Developer interessieren mich so­wohl optimale Lö­sun­gen und tech­nische Fein­heiten der Datenbank und Middleware einer Applikation, als auch die Gestaltung und Realisierung eines praktischen und leicht verständlichen User Interface.

User Interface

Moderne Applikationen haben häufig ein User Interface, das in einem Web-Browser dargestellt wird.
Eingesetzte Technologien:
  • HTML5 & CSS3
  • jQuery
  • ReactJS
  • Responsive Design
  • LESS
  • Stylus

Backend service layer

Für Backend Services hat sich in den letzten Jahren meiner Arbeit Java mit der Spring Boot Plattform als meine bevorzugte Arbeitsgrundlage etabliert. Je nach Anwendungsfall kann ein Backend als Single-Container Applikation (Webserver mit MVC und serverseitigem Rendering), oder aber auch als Microservice mit REST-API realisiert werden.
Eingesetzte Technologien u.a. (Auf­zähl­ung natur­gemäß unvollständig):
  • Java 11+
  • Spring Boot
  • Spring Data JPA, MVC, REST
  • Thymeleaf
  • Feign Clients
  • Reactive Programming (Project Reactor)
  • JWT / OpenId

DB / Persistence

Für eine gelungene Applikation ist sowohl die Wahl der richtigen Datenbank als auch eine sorgfältige Planung des Daten-Layouts von Bedeutung. So kann vermieden werden, daß die Anwendung wegen ineffizienter Abfragen für den Benutzer langsam erscheint.
Verwendete Datenbanken je nach An­wen­dungs­fall:
  • Oracle
  • PostgreSQL
  • Microsoft SQL
  • MySQL
  • Greenplum
  • Elasticsearch

Testen und Qualitätssicherung

Unit-Tests stellen sicher, daß kritische Teile der Applikation so funktionieren, wie vom Kun­den gewünscht. Durch automatisierte Tests wird gewährleistet, daß auch bei Än­der­ungen am Code (z.B. Bugfixes oder Er­wei­ter­ungen) die Funk­tionalität wie zuvor erhalten bleibt.
  • JUnit 5, Mockito, Spring Boot Test Support
  • Datenbank-Tests mit Testcontainer
  • IntelliJ IDEA Code Inspections
  • Sonarqube

IDE, CI/CD & sonstige Tools

  • IntelliJ IDEA
  • Gradle
  • Maven
  • Nexus
  • Jenkins

Operating Systems und Virtualisierung

  • Docker & Kubernetes
  • Linux
  • Windows 10

Weitere Kenntnisse

zusätzliche Sprachen

  • Groovy
  • Kotlin
  • Python
  • PHP
  • Shell Scripting

Website-Entwicklung

Websites mit PHP
Responsive Layout mit materializecss.com oder ähnlichen Frameworks

Mobile Development

Android Apps

Teamwork

  • Agiles Projektmanagement – Scrum
  • JIRA
  • Confluence