Domain-driven Design
Domain-driven Design ist ein Softwareentwicklungsansatz, der die Fachdomäne in den Mittelpunkt stellt und durch die enge Zusammenarbeit von Fachexperten und Entwicklern eine präzise Modellierung der Geschäftslogik ermöglicht.
Mit Domain-driven Design (DDD) können Unternehmen sicherstellen, dass Softwarelösungen optimal auf die geschäftlichen Anforderungen abgestimmt sind. Es fördert ein tiefes Verständnis der Domäne, verbessert die Kommunikation und reduziert Risiken bei der Umsetzung komplexer Anforderungen.
Die Anwendung von Domain-driven Design führt zu wartbaren und flexiblen Softwaresystemen, die das Geschäftsmodell optimal unterstützen. Durch die Entwicklung einer gemeinsamen Sprache zwischen Fachexperten und Entwicklern werden Missverständnisse minimiert und die Kommunikation verbessert. Die strategische Aufteilung komplexer Domänen in Bounded Contexts ermöglicht die Entwicklung kohärenter Teilsysteme und unterstützt die Skalierung großer Anwendungen. DDD wird häufig mit Microservices-Architekturen kombiniert, um klare Verantwortlichkeiten und lose Kopplung zwischen Diensten zu gewährleisten.
Das Konzept der Ubiquitous Language bildet die Basis für ein einheitliches Domänenverständnis im gesamten Entwicklungsprozess. Die Implementierung von Aggregates, Entities und Value Objects strukturiert die Domänenlogik und gewährleistet die Konsistenz der Geschäftsregeln. Die Definition von Bounded Contexts und Context Maps unterstützt die Integration verschiedener Teilsysteme. Die Verwendung von Domain Events ermöglicht eine lose Kopplung zwischen Systemkomponenten. Die Patterns wie Repositories und Factories kapseln technische Details und fokussieren den Code auf die Geschäftslogik.
Domain-driven Design Projekte
Entwicklung einer cloud-nativen Incentive-Anwendung mit AWS
Versicherungskonzern
07/2018 - 04/2019 · Remote
Entwicklung und Betrieb einer cloud-nativen Anwendung für die dezentrale unternehmensinterne Erfassung, zentrale Verwaltung und steuerliche Behandlung von vertrieblichen Incentives und geldwerten Vorteilen einschließlich CI/CD auf Basis von Kubernetes und Diensten in Amazon Web Services
Tätigkeiten
- Planung und Einrichtung der Umgebungen für Entwicklung, Integration, Test, Schulung und Produktion auf Basis von Docker, Kubernetes und verschiedenen AWS-Diensten
- Entwicklung der CI/CD-Pipelines für Frontend und Backend-Dienste
- Erweiterung des API Gateways um Authentifizierung und Autorisierung auf Basis von Tokens
- Mitwirkung an der Entwicklung der Geschäftslogik im Backend und der RESTful API einschließlich Test und Dokumentation
- Mitwirkung an der Entwicklung des Datenmodells für die PostgreSQL-Datenbank
- Mitwirkung an Planung und Entwicklung von Schnittstellen und Batch-Prozessen zum Austausch von Daten mit SAP Gateway, PostgreSQL, Redis und S3 mit Testdaten zum Zweck der lokalen Frontend- und Backend-Entwicklung
- Dokumentation der Softwarearchitektur einschließlich Betrieb, Schnittstellen und Prozessen
- Einarbeitung der Betriebsveranwortlichen bei der Übergabe der Anwendung in den dauerhaften Betrieb
- Projektsprachen: Deutsch, Englisch
Software-Typ
Web-Anwendung · Backend-Service · API · Datenbank-LösungTechnologien
Java · Spring · PostgreSQL · SQL · Redis · Docker · REST · SAML · Single Sign-On · SSO · JWT · JSON · CSV · Spring Boot · Spring Framework · Spring MVC · Spring Security · Spring Session · Spring Batch · Spring Data · Spring Data JPA · Spring Data REST · Spring REST Docs · Spring Testing · Spring Actuator · Spring Cloud · Spring Cloud Netflix · Spring Cloud Gateway · Spring WebFlux · Thymeleaf · JPA · JPQL · Hibernate · JavaMail · Jackson · Lombok · JUnit · AssertJ · Mockito · CI/CD · Jenkins · Groovy · Maven · SonarQube · Flyway · Nexus · Bash · GitHub · Amazon S3 · Amazon RDS · Amazon ElastiCache · Amazon Route 53 · Amazon SES · AWS Certificate Manager · Elastic Load Balancing · Nginx · HTML · JavaScript · Node.js · Npm · Kubectl · Jira · Confluence · Mac · IntelliJ IDEA · Domain-driven Design · Datenmodellierung · Serviceorientierte Architektur · API-Gateway · Backend for Frontend · Load Balancing · Microservices · Service-Discovery · Authentifizierung · Autorisierung · E-Mail · CloudEntwicklung eines E-Commerce-Marktplatz-Moduls
Logistikkonzern
10/2010 - 03/2011 · Bonn
Entwicklung eines integrierten Softwaremoduls für den E-Commerce-Marktplatz eines globalen Logistik-Konzerns, das Händlern die automatisierte bidirektionale Synchronisation ihrer Produktkataloge, Warenbestände, Preise und Verkaufsprozesse mit dem cloud-basierten Verwaltungssystem Afterbuy ermöglicht.
Tätigkeiten
- Automatisierte bidirektionale Synchronisation von Produktkatalogen, Preisen, Warenbeständen, Bestellungen, Versand- und Zahlungsinformationen sowie Stornierungen bei gleichzeitiger Gewährleistung von Datenkonsistenz
- Benutzerschnittstelle und Werkzeuge zur Konfiguration und Überwachung der Synchronisation
- Anforderungsanalyse (Business Manager, Online-Händler), Entwicklung (Konzeption und Implementierung), Dokumentation, Schulung der Test- und Support-Teams
Software-Typ
Web-Anwendung · Backend-Service · API · Datenbank-LösungTechnologien
Java · JAX-RS · Jersey · REST · XML · Afterbuy · SAP Commerce Cloud (ehemals Hybris) · Oracle · Datenmodellierung · HTML · CSS · Subversion · Jira · Confluence · Mac · Serviceorientierte Architektur · Domain-driven DesignAnwaltsverzeichnis mit Kundenportal und CRM-Integration
Informationsdienstleistungen, Fachverlag
09/2001 - 05/2006 · Remote
Konzeption und Entwicklung einer umfassenden Online-Plattform für Anwälte und Rechtsuchende mit Anwaltsverzeichnis, Kundenportal, E-Mail-Newsletter und juristischen Kostenrechnern.
Tätigkeiten
- Konzeption und Entwicklung eines öffentlich zugänglichen Anwaltsverzeichnisses mit mehr als 110.000 Einträgen
- Entwicklung einer skalierbaren Datenbank und eines Datenmodells mit Kontaktdaten, Qualifikationen, Spezialisierungen, Fremdsprachen und Zulassungen
- Entwicklung ausgefeilter Suchalgorithmen mit Rotationsprinzip zur fairen Verteilung der Sichtbarkeit
- Integration von Map- und Routing-Diensten von Drittanbietern mit interaktiver Kartensuche
- Entwicklung eines Glossar-Moduls zur kontextuellen Anzeige juristischer Fachbegriffe innerhalb der Suchergebnisse
- Implementierung einer automatisierten Synchronisation von Daten mit dem vorhandenen Oracle-basierten Kundenverwaltungssystem
- Konzeption und Entwicklung eines personalisierten Kundenportals für registrierte Anwältinnen und Anwälte mit Self-Service-Funktionen
- Implementierung einer Erfolgsmessung mit detaillierten Berichten über Profilaufrufe und Kontaktanfragen
- Integration einer Foren-Software für den fachlichen Austausch zwischen Kolleginnen und Kollegen
- Integration eines umfassenden Behörden- und Gerichtsverzeichnisses mit Kontaktdaten und Zuständigkeiten
- Integration einer Datenbank mit Gerichtsentscheidungen für Recherchezwecke
- Entwicklung und Implementierung eines Single Sign-On-Systems für interne und externe Dienste
- Konzeption und Entwicklung eines E-Mail-Newsletter-Systems mit Abonnentenverwaltung, Double Opt-In und automatisierter Segmentierung
- Versand von personalisierten Inhalten an verschiedene Zielgruppen per SMTP unter Berücksichtigung aller datenschutzrechtlichen Vorgaben
- Konzeption und Entwicklung von juristischen Kostenrechnern für mehrere Websites im Bereich Recht und Finanzen
- Integration mit dem vorhandenen Content Management System zur Aggregation und Personalisierung von Inhalten
- Entwicklung einer administrativen Benutzeroberfläche für Mitarbeiter zur grafischen Darstellung statistischer Berichte und zur Konfiguration der Anwendungen
- Kontinuierliche Modernisierung der Architektur und Anpassung der Funktionen an geänderte Rechtsvorschriften
- Regelmäßige Code-Updates bei umfangreichen Änderungen an Struktur und Design der Website
Software-Typ
Web-Anwendung · Backend-Service · Datenbank-LösungTechnologien
Java · Spring · Hibernate · PostgreSQL · Oracle · SQL · Datenmodellierung · Maven · HTML · CSS · JavaScript · XML · XML-RPC · JUnit · Servlet · JSP · FreeMarker · Struts · JDBC · Tomcat · Eclipse · Content Management · E-Mail · Authentifizierung · Autorisierung · Single Sign-On · Serviceorientierte Architektur · Domain-driven Design