<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Chris Schäfer, Autor bei CGS IT Solutions GmbH</title>
	<atom:link href="https://cgs.at/author/wp_admin/feed/" rel="self" type="application/rss+xml" />
	<link>https://cgs.at/author/wp_admin/</link>
	<description></description>
	<lastBuildDate>Sat, 21 Mar 2026 14:37:34 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://cgs.at/wp-b59e3-content/uploads/2018/01/cropped-Webisite_ICON-32x32.jpg</url>
	<title>Chris Schäfer, Autor bei CGS IT Solutions GmbH</title>
	<link>https://cgs.at/author/wp_admin/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>AWS Cloud Migration: Strategie vor Technik</title>
		<link>https://cgs.at/aws-cloud-migration-strategie-vor-technik/</link>
					<comments>https://cgs.at/aws-cloud-migration-strategie-vor-technik/#comments</comments>
		
		<dc:creator><![CDATA[Chris Schäfer]]></dc:creator>
		<pubDate>Sat, 11 Apr 2026 07:00:00 +0000</pubDate>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Docker]]></category>
		<guid isPermaLink="false">https://cgs.at/?p=1095</guid>

					<description><![CDATA[<p>Eine erfolgreiche Cloud-Migration beginnt nicht mit Terraform — sondern mit der richtigen Strategie. Die 6 Rs und worauf es wirklich ankommt.</p>
<p>Der Beitrag <a href="https://cgs.at/aws-cloud-migration-strategie-vor-technik/">AWS Cloud Migration: Strategie vor Technik</a> erschien zuerst auf <a href="https://cgs.at">CGS IT Solutions GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Cloud Migration ist kein Lift &#038; Shift</h2>
<p>Die häufigste Falle bei Cloud-Migrationen: Man nimmt die bestehenden Server und schiebt sie 1:1 in die Cloud. Das Ergebnis sind dieselben Probleme wie vorher — nur mit einer höheren Rechnung.</p>
<p>Eine erfolgreiche Migration zu AWS erfordert eine klare Strategie, die <strong>vor</strong> der ersten technischen Entscheidung steht.</p>
<h2>Die 6 Rs der Cloud Migration</h2>
<p>Amazon definiert sechs Migrationsstrategien, die sogenannten <strong>6 Rs</strong>:</p>
<h3>1. Rehost (Lift &#038; Shift)</h3>
<p>Anwendungen werden unverändert in die Cloud verschoben. Schnell, aber ohne Cloud-Vorteile.<br />
&#8211; <strong>Wann sinnvoll</strong>: Zeitdruck, Rechenzentrum-Exit, erste Migrationserfahrung sammeln</p>
<h3>2. Replatform (Lift &#038; Optimize)</h3>
<p>Kleine Anpassungen für Cloud-Dienste: z.B. eigene Datenbank durch Amazon RDS ersetzen.<br />
&#8211; <strong>Wann sinnvoll</strong>: Quick Wins ohne großen Umbau</p>
<h3>3. Refactor (Re-Architect)</h3>
<p>Anwendungen werden für die Cloud neu gestaltet — Microservices, Serverless, Managed Services.<br />
&#8211; <strong>Wann sinnvoll</strong>: Langfristiger Betrieb, Skalierbarkeit, Kostenoptimierung</p>
<h3>4. Repurchase</h3>
<p>Ablösung durch SaaS-Lösung (z.B. eigener Mailserver → Amazon WorkMail).</p>
<h3>5. Retire</h3>
<p>Anwendungen, die nicht mehr benötigt werden, abschalten.</p>
<h3>6. Retain</h3>
<p>Anwendungen, die vorerst on-premises bleiben — z.B. aus regulatorischen Gründen.</p>
<h2>Der Elefant im Raum: Kosten</h2>
<p>AWS-Kosten sind der häufigste Grund für Enttäuschung nach der Migration. Typische Kostentreiber:</p>
<p>&#8211; <strong>Überdimensionierte Instanzen</strong>: EC2 m5.xlarge für eine Anwendung, die auf t3.small läuft<br />
&#8211; <strong>Fehlende Auto-Scaling-Strategie</strong>: 24/7 maximale Kapazität statt bedarfsgerechter Skalierung<br />
&#8211; <strong>Vergessene Ressourcen</strong>: EBS-Volumes, Elastic IPs, ungenutzte Load Balancer<br />
&#8211; <strong>Datenübertragung</strong>: Egress-Kosten werden regelmäßig unterschätzt</p>
<p><strong>Empfehlung</strong>: Beginnen Sie mit einem <strong>AWS Well-Architected Review</strong> und nutzen Sie den <strong>AWS Cost Explorer</strong> ab Tag 1.</p>
<h2>Praxis-Checkliste für den Start</h2>
<p>1. <strong>Application Portfolio Assessment</strong>: Welche Anwendungen haben Sie? Welche Abhängigkeiten bestehen?<br />
2. <strong>Strategie pro Anwendung</strong>: Nicht alles muss refactored werden — die richtige R-Strategie pro Workload wählen<br />
3. <strong>Landing Zone einrichten</strong>: Multi-Account-Strategie, Netzwerk, IAM, Logging — bevor die erste Anwendung migriert wird<br />
4. <strong>Pilot-Workload</strong>: Eine unkritische Anwendung als Pilotprojekt migrieren, Erfahrungen sammeln<br />
5. <strong>FinOps von Anfang an</strong>: Kostenmonitoring und Budgets einrichten</p>
<h2>Typische AWS-Services für Java-Anwendungen</h2>
<table>
<tr>
<th>Use Case</th>
<th>AWS Service</th>
</tr>
<tr>
<td>Container-Orchestrierung</td>
<td>ECS / EKS</td>
</tr>
<tr>
<td>Serverless</td>
<td>Lambda + API Gateway</td>
</tr>
<tr>
<td>Datenbank</td>
<td>RDS (PostgreSQL) / Aurora</td>
</tr>
<tr>
<td>Messaging</td>
<td>SQS / SNS / EventBridge</td>
</tr>
<tr>
<td>Monitoring</td>
<td>CloudWatch + X-Ray</td>
</tr>
<tr>
<td>CI/CD</td>
<td>CodePipeline / CodeBuild</td>
</tr>
</table>
<h2>Fazit</h2>
<p>Cloud-Migration ist ein Organisationsprojekt, kein reines IT-Projekt. Die Technik ist das Einfachste daran — die Herausforderung liegt in Strategie, Kostensteuerung und Organisationsveränderung.</p>
<p><strong>CGS IT Solutions</strong> unterstützt Sie bei der Planung und Durchführung Ihrer AWS-Migration — von der Strategie bis zum produktiven Betrieb. <a href="/kontakt/">Kontaktieren Sie uns</a> für ein unverbindliches Erstgespräch.</p>
<p>Der Beitrag <a href="https://cgs.at/aws-cloud-migration-strategie-vor-technik/">AWS Cloud Migration: Strategie vor Technik</a> erschien zuerst auf <a href="https://cgs.at">CGS IT Solutions GmbH</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cgs.at/aws-cloud-migration-strategie-vor-technik/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>JPA &#038; Hibernate: 5 Performance-Fehler, die fast jedes Projekt macht</title>
		<link>https://cgs.at/jpa-hibernate-5-performance-fehler-die-fast-jedes-projekt-macht/</link>
					<comments>https://cgs.at/jpa-hibernate-5-performance-fehler-die-fast-jedes-projekt-macht/#respond</comments>
		
		<dc:creator><![CDATA[Chris Schäfer]]></dc:creator>
		<pubDate>Sat, 04 Apr 2026 07:00:00 +0000</pubDate>
				<category><![CDATA[JPA]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[Java]]></category>
		<guid isPermaLink="false">https://cgs.at/?p=1097</guid>

					<description><![CDATA[<p>N+1 Queries, Eager Loading, fehlende Projektionen — die häufigsten JPA-Performance-Killer und wie Sie sie vermeiden.</p>
<p>Der Beitrag <a href="https://cgs.at/jpa-hibernate-5-performance-fehler-die-fast-jedes-projekt-macht/">JPA &#038; Hibernate: 5 Performance-Fehler, die fast jedes Projekt macht</a> erschien zuerst auf <a href="https://cgs.at">CGS IT Solutions GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>JPA ist nicht langsam — falscher Einsatz schon</h2>
<p>Hibernate und JPA haben einen schlechten Ruf in Sachen Performance. Aber in den meisten Fällen liegt das Problem nicht beim Framework, sondern bei typischen Anwendungsfehlern, die sich leicht vermeiden lassen.</p>
<p>Hier sind die fünf häufigsten Performance-Killer — und ihre Lösung.</p>
<h2>1. Das N+1 Query Problem</h2>
<p>Der Klassiker. Sie laden eine Liste von Bestellungen, und für jede Bestellung wird eine separate Query für den Kunden ausgeführt.</p>
<p><strong>Das Problem:</strong></p>
<pre><code class="language-java">// 1 Query für Bestellungen + N Queries für Kunden
List&lt;Bestellung&gt; bestellungen = em.createQuery(
    &quot;SELECT b FROM Bestellung b&quot;, Bestellung.class)
    .getResultList();

<p>for (Bestellung b : bestellungen) {
    System.out.println(b.getKunde().getName()); // Lazy Load!
}
</code></pre>
</p>
<p><strong>Die Lösung: JOIN FETCH</strong></p>
<pre><code class="language-java">List&lt;Bestellung&gt; bestellungen = em.createQuery(
    &quot;SELECT b FROM Bestellung b JOIN FETCH b.kunde&quot;,
    Bestellung.class)
    .getResultList();
</code></pre>
<p>Eine Query statt N+1. Bei 1.000 Bestellungen ist das der Unterschied zwischen 1 und 1.001 Datenbankaufrufen.</p>
<h2>2. Eager Loading als Default</h2>
<p><code>@ManyToOne</code> ist standardmäßig <code>EAGER</code> — das bedeutet, jede Relation wird sofort mitgeladen, auch wenn Sie die Daten gar nicht brauchen.</p>
<p><strong>Die Lösung:</strong></p>
<pre><code class="language-java">@ManyToOne(fetch = FetchType.LAZY)
private Kunde kunde;
</code></pre>
<p><strong>Faustregel</strong>: Setzen Sie <strong>alles</strong> auf <code>LAZY</code> und laden Sie gezielt per <code>JOIN FETCH</code> oder <code>EntityGraph</code>, wenn Sie die Daten brauchen.</p>
<h2>3. Fehlende Projektionen</h2>
<p>Sie brauchen nur Name und E-Mail, laden aber die komplette Entity mit 30 Feldern, LOBs und Relationen.</p>
<p><strong>Das Problem:</strong></p>
<pre><code class="language-java">// Lädt ALLES — auch Felder, die Sie nicht brauchen
List&lt;Kunde&gt; kunden = em.createQuery(
    &quot;SELECT k FROM Kunde k&quot;, Kunde.class)
    .getResultList();
</code></pre>
<p><strong>Die Lösung: DTO-Projektionen</strong></p>
<pre><code class="language-java">record KundeDto(String name, String email) {}

<p>List&lt;KundeDto&gt; kunden = em.createQuery(
    &quot;SELECT new at.cgs.dto.KundeDto(k.name, k.email) FROM Kunde k&quot;,
    KundeDto.class)
    .getResultList();
</code></pre>
</p>
<p>Weniger Daten über die Leitung, kein Dirty Checking, kein Managed State — deutlich schneller.</p>
<h2>4. Batch-Operationen ohne Batching</h2>
<p>1.000 Entities einzeln persistieren erzeugt 1.000 INSERT-Statements.</p>
<p><strong>Die Lösung:</strong></p>
<pre><code class="language-properties"># application.properties (Quarkus/Spring)
hibernate.jdbc.batch_size=25
hibernate.order_inserts=true
hibernate.order_updates=true
</code></pre>
<pre><code class="language-java">for (int i = 0; i &lt; entities.size(); i++) {
    em.persist(entities.get(i));
    if (i % 25 == 0) {
        em.flush();
        em.clear(); // First-Level Cache leeren!
    }
}
</code></pre>
<h2>5. Kein Query-Monitoring</h2>
<p>Der gefährlichste Fehler: Sie wissen gar nicht, welche Queries Hibernate generiert.</p>
<p><strong>Aktivieren Sie SQL-Logging in der Entwicklung:</strong></p>
<pre><code class="language-properties"># Quarkus
quarkus.hibernate-orm.log.sql=true

<p># Spring Boot
spring.jpa.show-sql=true
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql=TRACE
</code></pre>
</p>
<p><strong>Für Produktion</strong>: Nutzen Sie Hibernate Statistics oder ein APM-Tool (z.B. OpenTelemetry) um langsame Queries zu identifizieren.</p>
<h2>Bonus: EntityGraph statt JOIN FETCH</h2>
<p>Für flexible Ladingstrategien ohne Query-Anpassung:</p>
<pre><code class="language-java">@NamedEntityGraph(
    name = &quot;Bestellung.mitKunde&quot;,
    attributeNodes = @NamedAttributeNode(&quot;kunde&quot;)
)
@Entity
public class Bestellung { ... }

<p>// Verwendung
EntityGraph&lt;?&gt; graph = em.getEntityGraph(&quot;Bestellung.mitKunde&quot;);
List&lt;Bestellung&gt; result = em.createQuery(&quot;SELECT b FROM Bestellung b&quot;)
    .setHint(&quot;jakarta.persistence.fetchgraph&quot;, graph)
    .getResultList();
</code></pre>
</p>
<h2>Fazit</h2>
<p>JPA und Hibernate sind mächtige Werkzeuge — aber sie verzeihen Unwissenheit nicht. Die gute Nachricht: Die fünf häufigsten Fehler sind leicht zu erkennen und zu beheben. Aktivieren Sie SQL-Logging, prüfen Sie Ihre Fetch-Strategien, und nutzen Sie Projektionen wo möglich.</p>
<p>In unseren <a href="/schulungen-trainings/">Training-Angeboten</a> behandeln wir JPA-Performance als festen Bestandteil der Java-Entwickler-Ausbildung.</p>
<p>Der Beitrag <a href="https://cgs.at/jpa-hibernate-5-performance-fehler-die-fast-jedes-projekt-macht/">JPA &#038; Hibernate: 5 Performance-Fehler, die fast jedes Projekt macht</a> erschien zuerst auf <a href="https://cgs.at">CGS IT Solutions GmbH</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cgs.at/jpa-hibernate-5-performance-fehler-die-fast-jedes-projekt-macht/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Microservices oder Monolith? Die ehrliche Antwort</title>
		<link>https://cgs.at/microservices-oder-monolith-die-ehrliche-antwort/</link>
					<comments>https://cgs.at/microservices-oder-monolith-die-ehrliche-antwort/#respond</comments>
		
		<dc:creator><![CDATA[Chris Schäfer]]></dc:creator>
		<pubDate>Sat, 28 Mar 2026 07:00:00 +0000</pubDate>
				<category><![CDATA[Microservices]]></category>
		<category><![CDATA[Software Architektur]]></category>
		<category><![CDATA[Clean Architecture]]></category>
		<category><![CDATA[Java]]></category>
		<guid isPermaLink="false">https://cgs.at/?p=1096</guid>

					<description><![CDATA[<p>Nicht jedes System braucht Microservices. Wann sich der Aufwand lohnt — und wann ein gut strukturierter Monolith die bessere Wahl ist.</p>
<p>Der Beitrag <a href="https://cgs.at/microservices-oder-monolith-die-ehrliche-antwort/">Microservices oder Monolith? Die ehrliche Antwort</a> erschien zuerst auf <a href="https://cgs.at">CGS IT Solutions GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Die Microservices-Falle</h2>
<p>Microservices sind seit Jahren der Architektur-Trend schlechthin. Und ja — für die richtige Problemstellung sind sie hervorragend. Aber die Realität zeigt: Viele Teams führen Microservices ein, ohne die Voraussetzungen dafür zu haben.</p>
<p>Das Ergebnis ist kein verteiltes System — sondern ein <strong>verteilter Monolith</strong>: alle Nachteile beider Welten, keine der Vorteile.</p>
<h2>Wann Microservices Sinn machen</h2>
<p>Microservices lösen <strong>organisatorische</strong> Probleme, nicht primär technische:</p>
<p>&#8211; <strong>Mehrere Teams</strong> arbeiten unabhängig an verschiedenen Geschäftsbereichen<br />
&#8211; <strong>Unterschiedliche Release-Zyklen</strong> pro Domäne sind notwendig<br />
&#8211; <strong>Unterschiedliche Skalierungsanforderungen</strong> pro Service<br />
&#8211; <strong>Technologievielfalt</strong> ist gewünscht (ein Service in Java, ein anderer in Python)</p>
<p>Wenn Ihr Team aus 3–5 Entwicklern besteht und eine Anwendung betreut: Microservices sind sehr wahrscheinlich der falsche Ansatz.</p>
<h2>Der gut strukturierte Monolith</h2>
<p>Ein Monolith ist kein Anti-Pattern. Ein <strong>schlecht strukturierter</strong> Monolith ist das Problem. Die Lösung ist nicht automatisch eine Microservice-Architektur, sondern oft ein <strong>Modularer Monolith</strong>:</p>
<p>&#8211; Klare Modul-Grenzen mit definierten APIs<br />
&#8211; Eigene Datenhaltung pro Modul (kein Shared Database)<br />
&#8211; Module können unabhängig getestet werden<br />
&#8211; Spätere Extraktion in Services ist möglich, wenn nötig</p>
<h3>Das Beste aus beiden Welten</h3>
<pre><code class="language-">Monolith mit klaren Modulen
┌──────────────────────────────────┐
│  ┌──────────┐  ┌──────────┐     │
│  │  Bestell- │  │  Kunden- │     │
│  │  wesen    │  │  verw.   │     │
│  │           │  │          │     │
│  └────┬──────┘  └────┬─────┘    │
│       │  definierte   │          │
│       │  Schnittstelle│          │
│  ┌────┴──────┐  ┌────┴─────┐    │
│  │  Lager    │  │  Billing │    │
│  └───────────┘  └──────────┘    │
│                 Ein Deployment   │
└──────────────────────────────────┘
</code></pre>
<h2>Die Kosten von Microservices</h2>
<p>Was selten erwähnt wird — Microservices erfordern erhebliche Infrastruktur:</p>
<table>
<tr>
<th>Thema</th>
<th>Aufwand</th>
</tr>
<tr>
<td><strong>Service Discovery</strong></td>
<td>Consul, Eureka oder Kubernetes DNS</td>
</tr>
<tr>
<td><strong>API Gateway</strong></td>
<td>Routing, Rate Limiting, Auth</td>
</tr>
<tr>
<td><strong>Distributed Tracing</strong></td>
<td>Jaeger, Zipkin oder OpenTelemetry</td>
</tr>
<tr>
<td><strong>Zentrales Logging</strong></td>
<td>ELK Stack oder CloudWatch</td>
</tr>
<tr>
<td><strong>CI/CD pro Service</strong></td>
<td>Eigene Pipeline, eigenes Deployment</td>
</tr>
<tr>
<td><strong>Datenkonsistenz</strong></td>
<td>Saga Pattern, Eventual Consistency</td>
</tr>
<tr>
<td><strong>Netzwerk-Latenz</strong></td>
<td>Jeder Service-Call ist ein Netzwerk-Call</td>
</tr>
</table>
<p>Wenn Sie diese Infrastruktur nicht haben oder nicht betreiben können, werden Microservices zum Bremsklotz statt zum Beschleuniger.</p>
<h2>Entscheidungshilfe</h2>
<p><strong>Starten Sie mit einem Monolith, wenn:</strong><br />
&#8211; Ein Team, ein Produkt<br />
&#8211; Domäne noch nicht vollständig verstanden<br />
&#8211; Schnelle Time-to-Market wichtiger als Skalierbarkeit</p>
<p><strong>Wechseln Sie zu Microservices, wenn:</strong><br />
&#8211; Team-Autonomie das Hauptziel ist<br />
&#8211; Einzelne Domänen unabhängig skaliert werden müssen<br />
&#8211; Sie die Infrastruktur betreiben können (oder wollen)</p>
<h2>Fazit</h2>
<p>Die beste Architektur ist die, die Ihr Team produktiv macht. Für die meisten mittelständischen Unternehmen ist ein modularer Monolith der pragmatischere Weg — mit der Option, gezielt Services zu extrahieren, wenn der Bedarf entsteht.</p>
<p>Bei <strong>CGS IT Solutions</strong> beraten wir technologieneutral: Wir empfehlen die Architektur, die zu Ihrer Organisation passt — nicht die, die gerade im Trend liegt. Mehr dazu unter <a href="/software-architektur/">Software Architektur</a>.</p>
<p>Der Beitrag <a href="https://cgs.at/microservices-oder-monolith-die-ehrliche-antwort/">Microservices oder Monolith? Die ehrliche Antwort</a> erschien zuerst auf <a href="https://cgs.at">CGS IT Solutions GmbH</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cgs.at/microservices-oder-monolith-die-ehrliche-antwort/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>CGS Fragenkatalog: 540+ Quizfragen zu Java und Software Engineering</title>
		<link>https://cgs.at/cgs-fragenkatalog-540-quizfragen-zu-java-und-software-engineering/</link>
					<comments>https://cgs.at/cgs-fragenkatalog-540-quizfragen-zu-java-und-software-engineering/#respond</comments>
		
		<dc:creator><![CDATA[Chris Schäfer]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 14:37:34 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Software Entwicklung]]></category>
		<category><![CDATA[Java]]></category>
		<guid isPermaLink="false">https://cgs.at/?p=1211</guid>

					<description><![CDATA[<p>Kostenloser, browser-basierter Fragenkatalog mit über 540 Fragen zu Java 25 und Software Engineering — mit Sofort-Auswertung, Schwierigkeitsgraden und Fortschritts-Tracking.</p>
<p>Der Beitrag <a href="https://cgs.at/cgs-fragenkatalog-540-quizfragen-zu-java-und-software-engineering/">CGS Fragenkatalog: 540+ Quizfragen zu Java und Software Engineering</a> erschien zuerst auf <a href="https://cgs.at">CGS IT Solutions GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Wer Java lernt oder sein Wissen auffrischen will, kennt das Problem: <strong>Wie gut bin ich wirklich?</strong> Bücher lesen ist das eine — aber gezielt prüfen, ob die Konzepte sitzen, ist etwas anderes.</p>



<p class="wp-block-paragraph">Genau dafür haben wir den <strong>CGS Fragenkatalog</strong> entwickelt: ein kostenloses, browser-basiertes Quiz-Tool mit über <strong>540 Fragen</strong> zu Java und Software Engineering.</p>



<h2 class="wp-block-heading">Was steckt drin?</h2>



<p class="wp-block-paragraph">Der Fragenkatalog besteht aus zwei Teilen:</p>



<ul class="wp-block-list">
<li><strong>Java 25 Fragenkatalog</strong> — 24 Kapitel, 428 Fragen: Von Grundlagen (JVM, Datentypen, Kontrollstrukturen) über Collections, Streams und Generics bis hin zu modernen Features wie Virtual Threads, Pattern Matching und Sealed Classes.</li>
<li><strong>Software Engineering Fragenkatalog</strong> — 12 Kapitel, 115 Fragen: Projektmanagement, Vorgehensmodelle, Qualitätssicherung, Versionskontrolle, UML, Datenbanken und mehr.</li>
</ul>



<h2 class="wp-block-heading">Für wen ist das gedacht?</h2>



<ul class="wp-block-list">
<li><strong>Java-Entwickler:innen</strong>, die ihr Wissen testen und Lücken finden wollen</li>
<li><strong>Studierende</strong>, die sich auf Prüfungen vorbereiten</li>
<li><strong>Workshop-Teilnehmer:innen</strong> unserer Quarkus- und Java-Trainings</li>
<li><strong>Trainer:innen und Lehrende</strong>, die ein fertiges Prüfungstool brauchen</li>
</ul>



<h2 class="wp-block-heading">Features</h2>



<ul class="wp-block-list">
<li><strong>Sofort-Auswertung</strong> — Jede Antwort wird direkt geprüft, mit Erklärung bei falscher Antwort</li>
<li><strong>Schwierigkeitsgrade</strong> — Easy, Medium und Advanced, filterbar</li>
<li><strong>Fortschritt wird gespeichert</strong> — Dank Browser-Speicher geht nichts verloren</li>
<li><strong>Dark/Light Mode</strong> — Augenschonend zu jeder Tageszeit</li>
<li><strong>Syntax-Highlighting</strong> — Java-Code in den Fragen wird korrekt formatiert</li>
<li><strong>Scoreboard</strong> — Live-Übersicht über richtige/falsche Antworten, mit Sprung zu Fehlern</li>
<li><strong>100% im Browser</strong> — Kein Login, kein Server, keine Installation nötig</li>
</ul>



<h2 class="wp-block-heading">Jetzt ausprobieren</h2>



<p class="wp-block-paragraph">Der Fragenkatalog ist kostenlos verfügbar unter <a href="https://quiz.cgs.at/" target="_blank" rel="noopener"><strong>quiz.cgs.at</strong></a> — einfach öffnen und loslegen. Kein Account, keine Registrierung.</p>



<p class="wp-block-paragraph">Sie möchten den Fragenkatalog in Ihrem Unternehmen oder Ihrer Lehrveranstaltung einsetzen? Wir bieten auch <strong>maßgeschneiderte Versionen</strong> mit eigenen Fragen und Auswertung. <a href="/kontakt/">Kontaktieren Sie uns</a> für ein individuelles Angebot.</p>
<p>Der Beitrag <a href="https://cgs.at/cgs-fragenkatalog-540-quizfragen-zu-java-und-software-engineering/">CGS Fragenkatalog: 540+ Quizfragen zu Java und Software Engineering</a> erschien zuerst auf <a href="https://cgs.at">CGS IT Solutions GmbH</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cgs.at/cgs-fragenkatalog-540-quizfragen-zu-java-und-software-engineering/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Java 21 in der Praxis: Die Features, die Ihren Code verändern</title>
		<link>https://cgs.at/java-21-in-der-praxis-die-features-die-ihren-code-veraendern/</link>
					<comments>https://cgs.at/java-21-in-der-praxis-die-features-die-ihren-code-veraendern/#respond</comments>
		
		<dc:creator><![CDATA[Chris Schäfer]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 07:00:00 +0000</pubDate>
				<category><![CDATA[Software Entwicklung]]></category>
		<category><![CDATA[Java]]></category>
		<guid isPermaLink="false">https://cgs.at/?p=1099</guid>

					<description><![CDATA[<p>Virtual Threads, Pattern Matching, Records und Sealed Classes — welche Java-21-Features sich im Projektalltag wirklich lohnen.</p>
<p>Der Beitrag <a href="https://cgs.at/java-21-in-der-praxis-die-features-die-ihren-code-veraendern/">Java 21 in der Praxis: Die Features, die Ihren Code verändern</a> erschien zuerst auf <a href="https://cgs.at">CGS IT Solutions GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Java 21: Das wichtigste LTS-Release seit Jahren</h2>
<p>Java 21 ist nicht einfach ein weiteres Update — es ist das umfangreichste LTS-Release seit Java 11. Mit Virtual Threads, ausgereiftem Pattern Matching und Records wird Java zu einer deutlich moderneren Sprache. Hier sind die Features, die im Projektalltag den größten Unterschied machen.</p>
<h2>1. Virtual Threads (Project Loom)</h2>
<p>Das wahrscheinlich wichtigste Feature: Leichtgewichtige Threads, die von der JVM verwaltet werden.</p>
<p><strong>Vorher: Platform Threads</strong></p>
<pre><code class="language-java">// Jeder Thread = ein OS-Thread (~1 MB Stack)
// Bei 10.000 gleichzeitigen Requests: 10 GB RAM nur für Threads
ExecutorService executor = Executors.newFixedThreadPool(200);
</code></pre>
<p><strong>Nachher: Virtual Threads</strong></p>
<pre><code class="language-java">// Millionen gleichzeitiger Threads möglich
ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor();

<p>// Oder direkt
Thread.startVirtualThread(() -&gt; {
    var result = httpClient.send(request, BodyHandlers.ofString());
    // Blocking ist OK — der Virtual Thread wird geparkt, nicht der OS-Thread
});
</code></pre>
</p>
<p><strong>Wann einsetzen</strong>: Bei I/O-lastigen Anwendungen (REST-APIs, Datenbankzugriffe, HTTP-Clients). Nicht relevant für CPU-intensive Berechnungen.</p>
<p><strong>Quarkus und Spring Boot</strong> unterstützen Virtual Threads bereits — oft reicht eine Konfigurationsänderung.</p>
<h2>2. Pattern Matching for switch</h2>
<p>Typprüfungen und Casts in einem Schritt — deutlich lesbarer als verschachtelte <code>instanceof</code>-Ketten.</p>
<p><strong>Vorher:</strong></p>
<pre><code class="language-java">if (shape instanceof Circle c) {
    return c.radius() <em> c.radius() </em> Math.PI;
} else if (shape instanceof Rectangle r) {
    return r.width() * r.height();
} else {
    throw new IllegalArgumentException(&quot;Unknown shape&quot;);
}
</code></pre>
<p><strong>Nachher:</strong></p>
<pre><code class="language-java">return switch (shape) {
    case Circle c    -&gt; c.radius() <em> c.radius() </em> Math.PI;
    case Rectangle r -&gt; r.width() * r.height();
    default          -&gt; throw new IllegalArgumentException(&quot;Unknown shape&quot;);
};
</code></pre>
<p>In Kombination mit <strong>Sealed Classes</strong> prüft der Compiler Vollständigkeit — kein <code>default</code> nötig:</p>
<pre><code class="language-java">sealed interface Shape permits Circle, Rectangle {}
record Circle(double radius) implements Shape {}
record Rectangle(double width, double height) implements Shape {}

<p>// Compiler weiß: alle Fälle abgedeckt
double area = switch (shape) {
    case Circle c    -&gt; c.radius() <em> c.radius() </em> Math.PI;
    case Rectangle r -&gt; r.width() * r.height();
};
</code></pre>
</p>
<h2>3. Records für DTOs und Value Objects</h2>
<p>Records eliminieren Boilerplate für unveränderliche Datenobjekte:</p>
<pre><code class="language-java">// Statt 50 Zeilen mit Konstruktor, Getter, equals, hashCode, toString:
record KundeDto(String name, String email, LocalDate registriert) {}

<p>// Verwendung
var kunde = new KundeDto(&quot;Max Mustermann&quot;, &quot;max@example.com&quot;, LocalDate.now());
System.out.println(kunde.name()); // Accessor ohne &quot;get&quot;
</code></pre>
</p>
<p><strong>Ideal für</strong>: JPA-Projektionen, REST-Request/Response-Objekte, Event-Payloads.</p>
<h2>4. Sequenced Collections</h2>
<p>Endlich eine einheitliche API für den Zugriff auf erstes und letztes Element:</p>
<pre><code class="language-java">// Vorher: Inkonsistent
list.get(0);                    // List
set.iterator().next();          // SortedSet
deque.getFirst();               // Deque

<p>// Nachher: Einheitlich
collection.getFirst();
collection.getLast();
collection.reversed();
</code></pre>
</p>
<h2>5. String Templates (Preview)</h2>
<p>Interpolation direkt in Java — kein <code>String.format</code> oder <code>+</code>-Verkettung mehr:</p>
<pre><code class="language-java">// Preview in Java 21, stabil erwartet in Java 23+
String html = STR.&quot;&quot;&quot;
    &lt;h1&gt;\{kunde.name()}&lt;/h1&gt;
    &lt;p&gt;Registriert seit \{kunde.registriert()}&lt;/p&gt;
    &quot;&quot;&quot;;
</code></pre>
<h2>Migration von Java 11/17 auf 21</h2>
<p>Die Migration ist in den meisten Fällen unkompliziert:</p>
<p>1. <strong>Build-Tool aktualisieren</strong>: Maven Compiler Plugin auf Java 21<br />
2. <strong>Dependencies prüfen</strong>: Die meisten Libraries unterstützen Java 21<br />
3. <strong>Deprecated APIs ersetzen</strong>: <code>SecurityManager</code> ist deprecated<br />
4. <strong>Schrittweise Features einführen</strong>: Records und Pattern Matching zuerst, Virtual Threads nach Lasttests</p>
<pre><code class="language-xml">&lt;properties&gt;
    &lt;maven.compiler.source&gt;21&lt;/maven.compiler.source&gt;
    &lt;maven.compiler.target&gt;21&lt;/maven.compiler.target&gt;
&lt;/properties&gt;
</code></pre>
<h2>Fazit</h2>
<p>Java 21 macht die Sprache kompakter, ausdrucksstärker und leistungsfähiger. Virtual Threads allein rechtfertigen die Migration — sie beseitigen das größte Skalierungsproblem von Java-Anwendungen ohne Code-Änderungen.</p>
<p>Wenn Sie noch auf Java 11 oder 17 sind: Die Migration auf 21 lohnt sich. In unseren <a href="/schulungen-trainings/">Schulungen</a> zeigen wir, wie Sie die neuen Features praxisnah in bestehende Projekte integrieren.</p>
<p>Der Beitrag <a href="https://cgs.at/java-21-in-der-praxis-die-features-die-ihren-code-veraendern/">Java 21 in der Praxis: Die Features, die Ihren Code verändern</a> erschien zuerst auf <a href="https://cgs.at">CGS IT Solutions GmbH</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cgs.at/java-21-in-der-praxis-die-features-die-ihren-code-veraendern/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Quarkus: Der moderne Weg zu Java-Microservices</title>
		<link>https://cgs.at/quarkus-der-moderne-weg-zu-java-microservices/</link>
					<comments>https://cgs.at/quarkus-der-moderne-weg-zu-java-microservices/#respond</comments>
		
		<dc:creator><![CDATA[Chris Schäfer]]></dc:creator>
		<pubDate>Sat, 14 Mar 2026 07:00:00 +0000</pubDate>
				<category><![CDATA[Quarkus]]></category>
		<category><![CDATA[CDI]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Java]]></category>
		<guid isPermaLink="false">https://cgs.at/?p=1094</guid>

					<description><![CDATA[<p>Warum Quarkus das Java-Ökosystem für Microservices revolutioniert – und wie Sie in 30 Minuten Ihren ersten Service deployen.</p>
<p>Der Beitrag <a href="https://cgs.at/quarkus-der-moderne-weg-zu-java-microservices/">Quarkus: Der moderne Weg zu Java-Microservices</a> erschien zuerst auf <a href="https://cgs.at">CGS IT Solutions GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Warum Quarkus?</h2>
<p>Java-Microservices galten lange als ressourcenhungrig: langsame Startzeiten, hoher Speicherverbrauch, schwerfällige Application Server. Quarkus ändert das grundlegend.</p>
<p>Als <strong>Kubernetes-natives Java-Framework</strong> kombiniert Quarkus das Beste aus dem Java-Enterprise-Ökosystem (CDI, JPA, JAX-RS) mit einer Build-Time-Optimierung, die Startzeiten im Millisekundenbereich und minimalen Speicherverbrauch ermöglicht.</p>
<h2>Die entscheidenden Vorteile</h2>
<h3>1. Build-Time statt Runtime</h3>
<p>Klassische Java-Frameworks wie Spring erledigen viel Arbeit beim Start: Classpath-Scanning, Reflection, Proxy-Generierung. Quarkus verlagert das alles in den Build-Prozess. Das Ergebnis:</p>
<p>&#8211; <strong>Startzeit</strong>: ~0,5 Sekunden (JVM) bzw. ~15 ms (Native)<br />
&#8211; <strong>Speicher</strong>: ~70 MB (JVM) vs. ~300 MB bei klassischen Frameworks<br />
&#8211; <strong>Ideal für Serverless</strong> und Auto-Scaling-Szenarien</p>
<h3>2. Vertraute Standards</h3>
<p>Quarkus setzt auf bewährte Java-Standards — keine neue API zu lernen:</p>
<p>&#8211; <strong>CDI</strong> für Dependency Injection<br />
&#8211; <strong>JAX-RS</strong> (RESTEasy) für REST-Endpoints<br />
&#8211; <strong>JPA</strong> (Hibernate ORM) mit Panache für vereinfachten Datenzugriff<br />
&#8211; <strong>MicroProfile</strong> für Health, Metrics, Config, Fault Tolerance</p>
<h3>3. Developer Experience</h3>
<p>Der Entwicklungsalltag mit Quarkus fühlt sich modern an:</p>
<p>&#8211; <strong>Live Reload</strong>: Code ändern, Browser refreshen — fertig<br />
&#8211; <strong>Dev Services</strong>: Testcontainers starten automatisch (PostgreSQL, Kafka, Redis)<br />
&#8211; <strong>Unified Config</strong>: Eine <code>application.properties</code> für alles</p>
<h2>Quickstart: REST-Service in 5 Minuten</h2>
<pre><code class="language-bash"># Projekt generieren
mvn io.quarkus.platform:quarkus-maven-plugin:create \
  -DprojectGroupId=at.cgs \
  -DprojectArtifactId=demo-service \
  -Dextensions=&quot;resteasy-reactive-jackson,hibernate-orm-panache,jdbc-postgresql&quot;

<p>cd demo-service
./mvnw quarkus:dev
</code></pre>
</p>
<p>Damit haben Sie einen laufenden REST-Service mit Hot-Reload, Dev-UI unter <code>localhost:8080/q/dev/</code> und automatischer PostgreSQL-Testinstanz.</p>
<h2>Wann Quarkus die richtige Wahl ist</h2>
<p>Quarkus eignet sich besonders für:</p>
<p>&#8211; <strong>Neue Microservices</strong> in containerisierten Umgebungen (Kubernetes, OpenShift)<br />
&#8211; <strong>Serverless Functions</strong> (AWS Lambda, Azure Functions)<br />
&#8211; <strong>Event-Driven Architectures</strong> mit Kafka oder AMQP<br />
&#8211; <strong>Teams mit Java-EE-Erfahrung</strong>, die ohne Umlernen modern entwickeln wollen</p>
<p>Weniger geeignet ist es für monolithische Legacy-Anwendungen, die bereits auf Spring Boot aufgebaut sind — hier ist eine Migration selten wirtschaftlich sinnvoll.</p>
<h2>Fazit</h2>
<p>Quarkus ist kein Hype, sondern eine technisch fundierte Antwort auf die Anforderungen moderner Cloud-Architekturen. Wer Java-Microservices entwickelt, sollte Quarkus ernsthaft evaluieren.</p>
<p><strong>CGS IT Solutions</strong> bietet hierzu einen praxisorientierten <a href="/quarkus-microservice-workshop/">Quarkus Microservice Workshop</a> an — von den Grundlagen bis zum produktionsreifen Deployment.</p>
<p>Der Beitrag <a href="https://cgs.at/quarkus-der-moderne-weg-zu-java-microservices/">Quarkus: Der moderne Weg zu Java-Microservices</a> erschien zuerst auf <a href="https://cgs.at">CGS IT Solutions GmbH</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cgs.at/quarkus-der-moderne-weg-zu-java-microservices/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Software-Architektur: Die 5 Entscheidungen, die alles bestimmen</title>
		<link>https://cgs.at/software-architektur-die-5-entscheidungen-die-alles-bestimmen/</link>
					<comments>https://cgs.at/software-architektur-die-5-entscheidungen-die-alles-bestimmen/#respond</comments>
		
		<dc:creator><![CDATA[Chris Schäfer]]></dc:creator>
		<pubDate>Sat, 07 Mar 2026 07:00:00 +0000</pubDate>
				<category><![CDATA[Software Architektur]]></category>
		<category><![CDATA[Clean Architecture]]></category>
		<category><![CDATA[Java]]></category>
		<guid isPermaLink="false">https://cgs.at/?p=1098</guid>

					<description><![CDATA[<p>Architektur-Entscheidungen sind schwer rückgängig zu machen. Welche fünf Weichenstellungen den größten Einfluss auf Ihr Projekt haben.</p>
<p>Der Beitrag <a href="https://cgs.at/software-architektur-die-5-entscheidungen-die-alles-bestimmen/">Software-Architektur: Die 5 Entscheidungen, die alles bestimmen</a> erschien zuerst auf <a href="https://cgs.at">CGS IT Solutions GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Architektur ist kein Diagramm</h2>
<p>Software-Architektur wird oft mit Boxen und Pfeilen gleichgesetzt. Aber Architektur sind die <strong>Entscheidungen, die schwer rückgängig zu machen sind</strong> — und die den Rahmen für alles Weitere setzen.</p>
<p>Hier sind die fünf Entscheidungen, die den größten Einfluss auf den Erfolg eines Softwareprojekts haben.</p>
<h2>1. Synchron oder Asynchron?</h2>
<p>Die fundamentalste Entscheidung: Kommunizieren Ihre Komponenten synchron (Request/Response) oder asynchron (Events/Messages)?</p>
<p><strong>Synchron</strong> (REST, gRPC):<br />
&#8211; Einfacher zu verstehen und zu debuggen<br />
&#8211; Direkte Fehlermeldung an den Aufrufer<br />
&#8211; Enge Kopplung zwischen Sender und Empfänger</p>
<p><strong>Asynchron</strong> (Kafka, RabbitMQ, SQS):<br />
&#8211; Lose Kopplung, höhere Resilienz<br />
&#8211; Natürliche Skalierbarkeit durch Queues<br />
&#8211; Komplexeres Fehlerhandling, Eventual Consistency</p>
<p><strong>Empfehlung</strong>: Starten Sie synchron und führen Sie Asynchronität gezielt ein, wo sie Probleme löst — nicht als Grundsatzentscheidung.</p>
<h2>2. Datenhoheit: Shared Database oder Database per Service?</h2>
<p>Teilen sich Ihre Services eine Datenbank — oder hat jeder Service seine eigene?</p>
<table>
<tr>
<th>Aspekt</th>
<th>Shared DB</th>
<th>DB per Service</th>
</tr>
<tr>
<td>Konsistenz</td>
<td>Einfach (Transaktionen)</td>
<td>Komplex (Sagas)</td>
</tr>
<tr>
<td>Kopplung</td>
<td>Hoch (Schema-Änderungen betreffen alle)</td>
<td>Niedrig</td>
</tr>
<tr>
<td>Performance</td>
<td>Joins möglich</td>
<td>Kein Cross-Service-Join</td>
</tr>
<tr>
<td>Betrieb</td>
<td>Ein Cluster</td>
<td>Mehrere Cluster</td>
</tr>
</table>
<p><strong>Die Wahrheit</strong>: Die meisten Systeme brauchen einen Mittelweg. Logische Trennung (eigenes Schema pro Service) mit physisch geteilter Infrastruktur ist oft der pragmatische Start.</p>
<h2>3. Deployment-Einheit: Monolith, Modulith oder Microservices?</h2>
<p>Diese Entscheidung bestimmt Ihre gesamte Infrastruktur, CI/CD-Pipeline und Team-Organisation:</p>
<p>&#8211; <strong>Monolith</strong>: Ein Artefakt, einfaches Deployment, ein Team<br />
&#8211; <strong>Modulith</strong>: Ein Artefakt mit klaren internen Grenzen, mehrere Teams möglich<br />
&#8211; <strong>Microservices</strong>: Mehrere Artefakte, unabhängiges Deployment, Team-pro-Service</p>
<p>Die Entscheidung hängt weniger von der Technik ab als von der <strong>Teamgröße und -struktur</strong> (Conway&#8217;s Law).</p>
<h2>4. Frontend-Architektur: Server-Rendered oder SPA?</h2>
<p>Oft unterschätzt, aber schwer zu ändern:</p>
<p><strong>Server-Side Rendering</strong> (Thymeleaf, JSF, HTMX):<br />
&#8211; Weniger Komplexität, kein separater Build-Prozess<br />
&#8211; SEO-freundlich out of the box<br />
&#8211; Gut für content-lastige Anwendungen</p>
<p><strong>Single Page Application</strong> (React, Angular, Vue):<br />
&#8211; Reichere Interaktivität<br />
&#8211; Eigenes Team für Frontend möglich<br />
&#8211; API-first ermöglicht mehrere Clients (Web, Mobile)</p>
<p><strong>Trend</strong>: HTMX und Server Components (React) bringen die Welten zusammen.</p>
<h2>5. Fehlerbehandlungsstrategie</h2>
<p>Die am häufigsten vergessene Architekturentscheidung: Was passiert, wenn etwas schiefgeht?</p>
<p>Definieren Sie frühzeitig:<br />
&#8211; <strong>Circuit Breaker</strong>: Wann wird ein abhängiger Service als „down&#8220; betrachtet?<br />
&#8211; <strong>Retry-Strategie</strong>: Wie oft, mit welchem Backoff?<br />
&#8211; <strong>Fallback-Verhalten</strong>: Degraded Mode oder Fehlerseite?<br />
&#8211; <strong>Timeout-Budgets</strong>: Wie lange darf ein Request maximal dauern?</p>
<p>Ohne diese Entscheidungen wird Ihr System bei der ersten Störung kaskadierend ausfallen.</p>
<h2>Architektur-Entscheidungen dokumentieren</h2>
<p>Nutzen Sie <strong>Architecture Decision Records (ADRs)</strong> — kurze Dokumente, die festhalten:</p>
<p>1. <strong>Kontext</strong>: Welches Problem lösen wir?<br />
2. <strong>Entscheidung</strong>: Was haben wir entschieden?<br />
3. <strong>Konsequenzen</strong>: Was folgt daraus (positiv und negativ)?</p>
<pre><code class="language-markdown"># ADR-001: Asynchrone Kommunikation für Bestellprozess

<h2>Kontext</h2>
Der Bestellprozess muss 5 nachgelagerte Systeme benachrichtigen.
Synchrone Aufrufe führen zu Timeouts bei Last.

<h2>Entscheidung</h2>
Wir verwenden Apache Kafka für die Event-basierte
Kommunikation im Bestellprozess.

<h2>Konsequenzen</h2>
+ Lose Kopplung, keine kaskadierenden Fehler
+ Natürliche Skalierbarkeit
- Eventual Consistency, kein sofortiges Feedback
- Zusätzliche Infrastruktur (Kafka Cluster)
</code></pre>
<h2>Fazit</h2>
<p>Gute Architektur entsteht nicht durch die Wahl des richtigen Frameworks, sondern durch bewusste Entscheidungen an den richtigen Stellen. Nehmen Sie sich Zeit für diese fünf Weichenstellungen — sie bestimmen den Erfolg Ihres Projekts mehr als jede Technologiewahl.</p>
<p>Bei <strong>CGS IT Solutions</strong> unterstützen wir Sie als <a href="/software-architektur/">Software-Architekten</a> bei genau diesen Entscheidungen — pragmatisch, erfahrungsbasiert und technologieneutral.</p>
<p>Der Beitrag <a href="https://cgs.at/software-architektur-die-5-entscheidungen-die-alles-bestimmen/">Software-Architektur: Die 5 Entscheidungen, die alles bestimmen</a> erschien zuerst auf <a href="https://cgs.at">CGS IT Solutions GmbH</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cgs.at/software-architektur-die-5-entscheidungen-die-alles-bestimmen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>CGS AI Assistant: Unser KI-Chatbot für Ihre Fragen</title>
		<link>https://cgs.at/cgs-ai-assistant-unser-ki-chatbot-fuer-ihre-fragen/</link>
					<comments>https://cgs.at/cgs-ai-assistant-unser-ki-chatbot-fuer-ihre-fragen/#respond</comments>
		
		<dc:creator><![CDATA[Chris Schäfer]]></dc:creator>
		<pubDate>Sat, 21 Feb 2026 21:09:36 +0000</pubDate>
				<category><![CDATA[KI-Agents]]></category>
		<category><![CDATA[AI Assistant]]></category>
		<category><![CDATA[Ki]]></category>
		<category><![CDATA[Künstliche Intelligenz]]></category>
		<guid isPermaLink="false">https://cgs.at/?p=1101</guid>

					<description><![CDATA[<p>Der CGS AI Assistant beantwortet Ihre Fragen rund um Software-Architektur, Cloud Computing und Java-Entwicklung — direkt und kostenlos.</p>
<p>Der Beitrag <a href="https://cgs.at/cgs-ai-assistant-unser-ki-chatbot-fuer-ihre-fragen/">CGS AI Assistant: Unser KI-Chatbot für Ihre Fragen</a> erschien zuerst auf <a href="https://cgs.at">CGS IT Solutions GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Ihr persönlicher IT-Berater — rund um die Uhr</h2>
<p>Der <strong>CGS AI Assistant</strong> ist ein KI-gestützter Chatbot, der Ihnen sofort und kostenlos bei technischen Fragen weiterhilft. Ob Software-Architektur, Cloud-Migration, Java-Entwicklung oder DevOps — stellen Sie Ihre Frage und erhalten Sie eine fundierte Antwort.</p>
<h2>Was kann der CGS AI Assistant?</h2>
<p>Der Chatbot basiert auf moderner KI-Technologie (LangChain4j) und ist spezialisiert auf die Themengebiete von CGS IT Solutions:</p>
<ul>
<li><strong>Software-Architektur</strong>: Microservices vs. Monolith, Clean Architecture, Design Patterns</li>
<li><strong>Java-Entwicklung</strong>: Quarkus, Spring Boot, JPA/Hibernate, Java 21+</li>
<li><strong>Cloud Computing</strong>: AWS, Azure, Container, Kubernetes</li>
<li><strong>DevOps</strong>: CI/CD, Docker, Infrastructure as Code</li>
<li><strong>KI &amp; Automatisierung</strong>: LangChain, AI Agents, Workflow-Automatisierung</li>
</ul>
<h2>So funktioniert es</h2>
<ol>
<li>Öffnen Sie den <a href="https://cgsitchat.cgs-it.org/" target="_blank" rel="noopener">CGS AI Assistant</a></li>
<li>Stellen Sie Ihre Frage in natürlicher Sprache (Deutsch oder Englisch)</li>
<li>Erhalten Sie eine sofortige, fachlich fundierte Antwort</li>
</ol>
<p>Der Chatbot ist kostenlos und ohne Registrierung nutzbar.</p>
<h2>Die Technologie dahinter</h2>
<p>Der CGS AI Assistant wurde mit <strong>LangChain4j</strong> entwickelt — einem Java-Framework für die Integration von Large Language Models. Er demonstriert gleichzeitig unsere Kompetenz in der KI-Integration:</p>
<ul>
<li><strong>Backend</strong>: Java mit Quarkus und LangChain4j</li>
<li><strong>LLM-Integration</strong>: Angebunden an moderne Sprachmodelle</li>
<li><strong>Deployment</strong>: Containerisiert auf Cloud-Infrastruktur</li>
</ul>
<p>Mehr über KI-Agents und LangChain4j erfahren Sie in unserem Blogpost <a href="/ki-agents-langchain4j/">KI Agents mit LangChain4j</a>.</p>
<h2>Interesse an einem eigenen KI-Chatbot?</h2>
<p>Wir entwickeln maßgeschneiderte KI-Assistenten für Ihr Unternehmen — trainiert auf Ihre Daten, integriert in Ihre Systeme. <a href="/kontakt/">Kontaktieren Sie uns</a> für ein unverbindliches Gespräch.</p>
<p>Der Beitrag <a href="https://cgs.at/cgs-ai-assistant-unser-ki-chatbot-fuer-ihre-fragen/">CGS AI Assistant: Unser KI-Chatbot für Ihre Fragen</a> erschien zuerst auf <a href="https://cgs.at">CGS IT Solutions GmbH</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cgs.at/cgs-ai-assistant-unser-ki-chatbot-fuer-ihre-fragen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Claude Code bei CGS IT – KI-gestützte Softwareentwicklung in der Praxis</title>
		<link>https://cgs.at/claude-code-bei-cgs-it-ki-gestuetzte-softwareentwicklung-in-der-praxis/</link>
					<comments>https://cgs.at/claude-code-bei-cgs-it-ki-gestuetzte-softwareentwicklung-in-der-praxis/#respond</comments>
		
		<dc:creator><![CDATA[Chris Schäfer]]></dc:creator>
		<pubDate>Sat, 21 Feb 2026 19:37:43 +0000</pubDate>
				<category><![CDATA[KI-Agents]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Claude Code]]></category>
		<category><![CDATA[Ki]]></category>
		<category><![CDATA[Künstliche Intelligenz]]></category>
		<guid isPermaLink="false">https://cgs.at/?p=1051</guid>

					<description><![CDATA[<p>CGS IT Solutions setzt Claude Code von Anthropic als KI-Entwicklungsassistenten ein. Ein Überblick über das Tool und die wichtigsten Befehle.</p>
<p>Der Beitrag <a href="https://cgs.at/claude-code-bei-cgs-it-ki-gestuetzte-softwareentwicklung-in-der-praxis/">Claude Code bei CGS IT – KI-gestützte Softwareentwicklung in der Praxis</a> erschien zuerst auf <a href="https://cgs.at">CGS IT Solutions GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>Von Chris Schäfer | Februar 2026 | KI-Agents, News</strong></p>
<p>&#8212;</p>
<h2>Claude Code – Was ist das?</h2>
<p><strong>Claude Code</strong> ist ein KI-gestütztes Kommandozeilen-Tool von Anthropic, das direkt im Terminal arbeitet. Anders als klassische Chatbots ist Claude Code ein vollwertiger Entwicklungsassistent: Er liest Code, versteht Projektstrukturen, bearbeitet Dateien, führt Befehle aus und interagiert mit APIs – alles aus dem Terminal heraus.</p>
<p>Bei CGS IT Solutions setzen wir Claude Code aktiv in unserer täglichen Arbeit ein – von der Architekturanalyse über Content-Automatisierung bis hin zur Verwaltung unserer Webauftritte.</p>
<h2>Warum Claude Code?</h2>
<p>Als Software-Architekten und Entwickler arbeiten wir täglich mit komplexen Codebasen, Cloud-Infrastruktur und Automatisierungspipelines. Claude Code fügt sich nahtlos in diesen Workflow ein:</p>
<ul>
<li><strong>Direkte Terminal-Integration</strong> – kein Browser, kein Copy-Paste, arbeitet dort wo wir arbeiten</li>
<li><strong>Versteht den gesamten Projektkontext</strong> – liest Dateien, analysiert Abhängigkeiten, versteht Architektur</li>
<li><strong>Führt Aktionen aus</strong> – erstellt Dateien, führt Builds aus, interagiert mit Git und APIs</li>
<li><strong>Sicheres Arbeiten</strong> – jeder Befehl kann vor Ausführung geprüft und genehmigt werden</li>
</ul>
<h2>Die wichtigsten Claude Code Commands</h2>
<p>Hier ein Überblick über die Befehle, die wir im Alltag am häufigsten nutzen:</p>
<h3>Grundlegende Befehle</h3>
<ul>
<li><strong>/help</strong> – Hilfe und Übersicht aller verfügbaren Befehle</li>
<li><strong>/init</strong> – Projektanalyse und Erstellung einer CLAUDE.md Kontextdatei</li>
<li><strong>/clear</strong> – Konversation zurücksetzen und frisch starten</li>
<li><strong>/compact</strong> – Kontext komprimieren um Tokens zu sparen</li>
</ul>
<h3>Entwicklungs-Workflow</h3>
<ul>
<li><strong>/review</strong> – Code-Review des aktuellen Diffs oder einer Pull Request</li>
<li><strong>/pr-comments</strong> – GitHub PR-Kommentare abrufen und bearbeiten</li>
</ul>
<h3>Speicher und Kontext</h3>
<ul>
<li><strong>/memory</strong> – Projektnotizen und Präferenzen dauerhaft speichern</li>
<li><strong>CLAUDE.md</strong> – Die zentrale Kontextdatei, die Claude bei jedem Start liest</li>
</ul>
<h3>Terminal-Nutzung</h3>
<ul>
<li><strong>Shift+Tab</strong> – Zwischen Chat- und Terminal-Modus wechseln</li>
<li><strong>Esc</strong> – Laufende Aktion abbrechen</li>
<li><strong>Multi-Turn Conversations</strong> – Claude behält den Kontext über mehrere Interaktionen</li>
</ul>
<h2>Praxisbeispiel: Website-Management mit Claude Code</h2>
<p>Ein konkretes Beispiel aus unserem Alltag: Wir verwalten unsere WordPress-Websites (cgs.at und preisradar.cgs.at) direkt über Claude Code. Über die WordPress REST API können wir:</p>
<ul>
<li>Blog-Beiträge als Markdown schreiben und automatisch als Entwurf hochladen</li>
<li>Content-Backups aller Seiten und Beiträge erstellen</li>
<li>Inhalte über mehrere Websites hinweg verwalten</li>
<li>Wiederkehrende Aufgaben mit Shell-Scripts automatisieren</li>
</ul>
<p>Das Besondere: Claude Code versteht den Gesamtkontext unserer Projekte und kann so kontextbezogen arbeiten – von der API-Authentifizierung bis zur Content-Erstellung.</p>
<h2>CGS AI Assistant – Unser KI-Chatbot mit LangChain4j</h2>
<p>Neben Claude Code setzen wir auch auf selbst entwickelte KI-Lösungen: Der <strong><a href="https://cgsitchat.cgs-it.org/">CGS AI Assistant</a></strong> ist unser hauseigener KI-Chatbot, gebaut mit <strong>LangChain4j</strong> und <strong>Quarkus</strong>. Er beantwortet rund um die Uhr Fragen zu den Leistungen, Technologien und Lösungen von CGS IT Solutions.</p>
<p>Probieren Sie ihn aus: <strong><a href="https://cgsitchat.cgs-it.org/">cgsitchat.cgs-it.org</a></strong></p>
<h2>Fazit</h2>
<p>Claude Code ist für uns kein Spielzeug, sondern ein produktiver Bestandteil unseres Entwickler-Toolkits. Die Kombination aus Kontextverständnis, Terminal-Integration und der Fähigkeit, tatsächlich Aktionen auszuführen, macht es zu einem echten Produktivitäts-Multiplikator.</p>
<p>Mehr Informationen zu Claude Code: <strong><a href="https://claude.ai/code">claude.ai/code</a></strong></p>
<p>Sie möchten erfahren, wie KI-Tools Ihren Entwicklungsprozess unterstützen können? <strong><a href="https://cgs.at/kontakt/">Kontaktieren Sie uns</a></strong> – wir beraten Sie gerne.</p>
<p>Der Beitrag <a href="https://cgs.at/claude-code-bei-cgs-it-ki-gestuetzte-softwareentwicklung-in-der-praxis/">Claude Code bei CGS IT – KI-gestützte Softwareentwicklung in der Praxis</a> erschien zuerst auf <a href="https://cgs.at">CGS IT Solutions GmbH</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cgs.at/claude-code-bei-cgs-it-ki-gestuetzte-softwareentwicklung-in-der-praxis/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Neu: Der CGS AI Assistant – Unser KI-Chat für CGS IT Solutions</title>
		<link>https://cgs.at/cgs-ai-assistant/</link>
					<comments>https://cgs.at/cgs-ai-assistant/#respond</comments>
		
		<dc:creator><![CDATA[Chris Schäfer]]></dc:creator>
		<pubDate>Mon, 16 Feb 2026 23:44:26 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[AI Assistant]]></category>
		<category><![CDATA[Claude Code]]></category>
		<category><![CDATA[Ki]]></category>
		<category><![CDATA[Langchain]]></category>
		<guid isPermaLink="false">https://cgs.at/?p=1042</guid>

					<description><![CDATA[<p>Von Chris Schäfer &#124; Februar 2026 &#124; News, Technologien Ab sofort steht Ihnen der CGS AI Assistant unter https://cgsitchat.cgs-it.org/ zur Verfügung – unser neuer KI-gestützter Chat, der Ihnen rund um die Uhr Antworten zu den Leistungen, Technologien und Lösungen von CGS IT Solutions liefert. Warum ein KI-Chat für CGS IT? Als Unternehmen, das sich auf...</p>
<p>Der Beitrag <a href="https://cgs.at/cgs-ai-assistant/">Neu: Der CGS AI Assistant – Unser KI-Chat für CGS IT Solutions</a> erschien zuerst auf <a href="https://cgs.at">CGS IT Solutions GmbH</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>Von Chris Schäfer | Februar 2026 | News, Technologien</strong></p>
<hr />
<h4 style="text-align: center;">Ab sofort steht Ihnen der <strong>CGS AI Assistant</strong> unter</h4>
<p style="text-align: center;"><strong><a href="https://cgsitchat.cgs-it.org/">https://cgsitchat.cgs-it.org/</a></strong></p>
<p style="text-align: center;">zur Verfügung – unser neuer KI-gestützter Chat, der Ihnen rund um die Uhr Antworten zu den Leistungen, Technologien und Lösungen von CGS IT Solutions liefert.<br />
<strong><a href="https://cgsitchat.cgs-it.org/"><img decoding="async" class="aligncenter size-medium wp-image-1047" src="https://cgs.at/wp-b59e3-content/uploads/2026/02/CGS_IT_KI_small-300x123.png" alt="" width="300" height="123" srcset="https://cgs.at/wp-b59e3-content/uploads/2026/02/CGS_IT_KI_small-300x123.png 300w, https://cgs.at/wp-b59e3-content/uploads/2026/02/CGS_IT_KI_small.png 323w" sizes="(max-width: 300px) 100vw, 300px" /></a></strong></p>
<h2>Warum ein KI-Chat für CGS IT?</h2>
<p>Als Unternehmen, das sich auf Software- und Enterprise-Architektur, Cloud-Transformation und moderne Java-Entwicklung spezialisiert hat, setzen wir nicht nur bei unseren Kunden auf innovative Technologien – wir nutzen sie auch selbst. Der CGS AI Assistant ist ein konkretes Beispiel dafür, wie KI-Agents im Unternehmenskontext sinnvoll eingesetzt werden können.</p>
<p>Ob Sie sich über unsere Architekturberatung informieren möchten, Fragen zu Quarkus-Microservices haben oder wissen wollen, wie wir Cloud-Migrationen begleiten – der CGS AI Assistant hilft Ihnen, schnell die passende Antwort zu finden.</p>
<h2>Was kann der CGS AI Assistant?</h2>
<p>Der Chat ist darauf trainiert, Fragen rund um das Leistungsspektrum von CGS IT Solutions zu beantworten. Dazu gehören unter anderem:</p>
<ul>
<li><strong>Architektur &amp; Beratung</strong> – Enterprise Architektur, Software Architektur, Cloud &amp; DevOps Architektur sowie Architektur-Reviews</li>
<li><strong>Technologien &amp; Lösungen</strong> – Quarkus, Keycloak/Red Hat SSO, Cloud Computing, CI/CD mit GitHub und unsere Automatisierungslösungen</li>
<li><strong>Schulungen &amp; Workshops</strong> – Informationen zu unseren Trainings im Java- und Cloud-Umfeld</li>
<li><strong>Allgemeine Fragen</strong> – Kontaktmöglichkeiten, Firmendaten und aktuelle Projekte wie das CGS Preisradar</li>
</ul>
<p>Der Assistent ersetzt keine persönliche Beratung, bietet aber einen schnellen und unkomplizierten Einstieg, um sich einen ersten Überblick zu verschaffen.</p>
<h2>Ihr Chatbot für Inter- und Intranet</h2>
<p>Mit diesem Framework bieten wir einen sofortigen Einstieg für Ihre lösungen auch an. Dabei ist ein Chatbot der nur mit Ihren Daten arbeitet in wenigen Stunden einsatzbereit und trotzdem sicher und zuverlässig.</p>
<ol>
<li>Unser Chatbot kann mit statischen oder selbst leicht aktualisierbaren Dokumenten bestückt werden.</li>
<li>Aber auch für grössere Datenmengen via Vector Datenbank oder direkten Datenbank und API zugriffen im Hintergrund Datenquellen zur Verfügung stellen</li>
<li>In allen Fällen antwortet er nur auf der Basis der vorhandenen Informationen</li>
<li>Der LLM Provider kann flexibel ausgewählt werden. Wir unterstützten über 20 populäre LLM-Anbieter</li>
<li>Eine hausinterne installation steht jederzeit zur Verfügung</li>
<li>Das Paket ist aber auch als fixfertiges abgesichertes Produkt via Amazon Web Services (Europa) verfügbar in einer eigenen gesicherten VPC &#8211; Virtuellen private Cloud und Dokumenten und Daten nur in gesicherten Backens.</li>
</ol>
<h2>Jetzt ausprobieren</h2>
<p>Testen Sie den CGS AI Assistant direkt unter:</p>
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong><a href="https://cgsitchat.cgs-it.org/">cgsitchat.cgs-it.org</a></strong></p>
<p>Wir freuen uns auf Ihr Feedback! Wenn Sie Fragen haben oder eine ähnliche Lösung für Ihr Unternehmen umsetzen möchten, <a href="https://cgs.at/kontakt/">kontaktieren Sie uns</a> gerne.</p>
<hr />
<p><em>Sie möchten erfahren, wie KI-gestützte Assistenten und Automatisierung Ihre Geschäftsprozesse verbessern können? CGS IT Solutions berät Sie gerne – von der Architektur bis zur Umsetzung.</em></p>
<p>Der Beitrag <a href="https://cgs.at/cgs-ai-assistant/">Neu: Der CGS AI Assistant – Unser KI-Chat für CGS IT Solutions</a> erschien zuerst auf <a href="https://cgs.at">CGS IT Solutions GmbH</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cgs.at/cgs-ai-assistant/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
