Konzeption und Planung
Der erste Schritt zu einer gelungenen Applikation 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 werden im Zuge dieses Prozesses dem Kunden viele Details der Aufgabenstellung
erst richtig bewußt.
User Interface Design
Das User Interface einer Applikation ist entscheidend für die Akzeptanz durch den Benutzer. Deswegen ist es in Abstimmung mit dem Kunden
immens wichtig, sowohl die Präsentation der Daten als auch die Eingabemöglichkeiten so intuitiv wie möglich zu gestalten.
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 sowohl optimale Lösungen und technische Feinheiten 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 u.a.:
- HTML5 & CSS3
- jQuery
- Angular
- ReactJS
- Responsive Design
- Typescript
- LESS / SCSS / 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. (Aufzählung naturgemäß unvollständig):
- Java 11+
- Kotlin
- Spring Boot
- Spring Data / 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 Anwendungsfall:
- Oracle
- PostgreSQL
- Microsoft SQL
- MySQL
- Greenplum
- Elasticsearch
- MongoDB
Testen und Qualitätssicherung
Unit-Tests stellen sicher, daß kritische Teile der Applikation so funktionieren, wie vom Kunden gewünscht.
Durch automatisierte Tests wird gewährleistet, daß auch bei Änderungen am Code (z.B. Bugfixes oder Erweiterungen) die
Funktionalitä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
- Python
- PHP
- Shell Scripting
Website-Entwicklung
Websites mit PHP
Responsive Layout mit materializecss.com oder ähnlichen Frameworks
Responsive Layout mit materializecss.com oder ähnlichen Frameworks
Mobile Development
Android Apps
Teamwork
- Agiles Projektmanagement – Scrum
- JIRA
- Confluence