top of page
  • freelancermap_small
  • LinkedIn
  • Xing
IT-Technologien

IT-Beratung

Um alle Anforderungen und gewünschte Funktionalitäten 

einer Applikation implementieren zu können, ist ein ständiger Austausch und Dialog mit dem Product Owner, den Business Analysten und anderen Stakeholdern erforderlich. Es ist wichtig genau zu verstehen, WAS entwickelt werden soll, bevor das WIE angegangen wird.

Während des gesamten Softwareentstehungsprozesses stehe ich immer beratend an ihrer Seite und werde gemeinsam mit Ihnen versuchen, komplexe Geschäftslogiken runterzubrechen und gegebenenfalls zu optimieren.

Dabei behalte ich das Gesamtsystem, bereits implementierte Logiken sowie andere Abhängigkeiten im Auge und mache Sie auf eventuell auftretende große Änderungsaufwände aufmerksam, um auch die Wirtschaftlichkeit im Blick zu behalten.   

Persistenz

In meinen vergangenen Projekten wurden ausschließlich relationale Datenbanksysteme genutzt.

Der Einsatz von SQL in verschiedenen Dialekten war also ein ständiger Begleiter, wobei der Löwenanteil der Datenbankzugriffe mithilfe eines ORM-Tools wie Hibernate realisiert wurde.

Mit Spring Data konnte ich in der Vergangenheit gefühlt ca. 80% der Datenbankabfragen relativ komfortabel mittels entsprechender Methodendeklaration implementieren. Nichtsdestotrotz musste ich für die restlichen Abfragen unter Umständen komplexe JPQL/HQL-Queries oder dynamische QueryDSL-Abfragen formulieren.

Auch das performante Persistieren oder Auslesen von Massendaten ohne lange Query-Zeiten, war ein Thema. 

Durch den Einsatz der richtigen Techniken und Best Practices (JDBC Batch-Insert/Update, DTO-Projection innerhalb der JPQL, FetchType.LAZY statt EAGER) konnte ich der Hibernate Hell entfliehen und die gewünschten Query-Zeiten erreichen.

Back End

Meine Steckenpferddisziplin und das Herz einer jeden Applikation oder besser gesagt, das Gehirn. In den letzten Projekten verbrachte ich gut 60% meiner Tätigeitszeit im Back End und implementierte durch alle Schichten der Architektur hindurch, alle notwendigen Logiken mit Java. Von Entities, Repositories und Services zu DTOs, DTO-Mappern und REST-Controllern, zeitbasierten Batch-Prozessen und Messaging-Event-Systemen: mithilfe des Spring Frameworks konnte ich in vergangenen Projekten alle notwendigen Funktionalitäten realisieren.

 

Dabei lege ich beim Klassendesign besonderes Augenmerk auf Paradigmen wie Keep It Simple Stupid sowie Low Coupling & High Cohesion. Des Weiteren schreibe ich für alle wichtigen Geschäftslogiken Unit Tests und wenn die Zeit es zulässt, auch für weniger wichtige. On top wird mittels SonarQube auf qualitätsgesicherten SourceCode geachtet.   

 

Auf diese Weise versuche ich leicht les-, erweiter- und änderbare Software zu implementieren, die ihren Zweck so lange und so gut wie möglich erfüllt.

Front End

Seit ein paar Jahren mittlerweile geht der Trend Richtung Single Page Applications. Die Nutzer möchten eine flüssige User Experience ohne lästige Ajax-Ladebalken nach jeder kleinen UI Interaktion, so wie sie es von ihren Smartphone Apps gewohnt sind. Vor einem Jahrzehnt hingegen war es noch Gang und Gebe den kompletten HTML-Code im Back End zu rendern und den Zustand einer Checkbox innerhalb einer Managed Bean, ebenfalls im Back End zu hinterlegen (JSF2 /Primefaces).

 

Die ganzen Ajax-Requests waren nicht benutzerfreundlich was zusammen mit dem Erscheinen von neuen JavaScript-Frameworks und Ökosystemen zur Verlagerung von Front End Logik in den Browser geführt hat.

 

Mit Angular2 bin ich das erste Mal 2016 in Berührung gekommen.

Mir sind sofort die großen Parallelen zu Spring Paradigmen wie Separation of Concerns, Dependency Injection etc. aufgefallen. Im Zusammenspiel mit TypeScript war Angular2 relativ einfach zu erlernen und kurz darauf konnte ich das Framework bereits erfolgreich bei der GFI einsetzen.

Vue.js / Vuetifiy habe ich 2020 bei der BASF erstmalig eingesetzt und festgestellt, dass es ein wenig "leichtgewichtiger" im Vergleich zu Angular ist. Beide Frameworks haben ihre Daseinsberechtigung.

 

IT-Beratung
IT-Dienstleistungen
Cloud Management-Service
Betreuung

Back End

  • Java 8+

  • Spring Boot

  • Spring Batch

  • Spring Integration

  • REST

  • Microservices

  • Kafka/RabbitMQ

  • Camunda BPM

  • MapStruct

  • DDD

Persistenz

  • SQL

  • JPA/Hibernate

  • Spring Data

  • QueryDSL

  • Liquibase

  • Oracle

  • Postgres

  • MSSQL

Front End

  • Angular 2+

  • Vue.js/Vuetifiy

  • HTML5/CSS3

  • TypeScript/JS

  • Redux

  • echarts.js

  • Material Design

  • JSF2

  • Primefaces

Tooling

  • Jira

  • Confluence

  • Bitbucket/Git

  • Maven

  • Bamboo

  • Jenkins

  • SonarQube

  • IntelliJ

  • Eclipse

Cloud /

Container

  • Azure Cloud

  • Kubernetes

  • OpenShift

  • Docker

© 2023 Softwareentwicklung Gmyrek

bottom of page