Entwicklung & Code
Nachruf: Abschied von robots.txt (1994-2025)

Henning Fries ist UI/UX-Engineer mit Leidenschaft für nachhaltiges Webdesign, digitale Barrierefreiheit und die Psychologie guter Nutzererlebnisse.
Seit über fünfzehn Jahren arbeitet er als Designer, Entwickler und Berater an der Schnittstelle von Mensch, Technologie und Gestaltung – in Deutschland, Frankreich und Luxemburg.
Als Full-Stack-Entwickler mit Designfokus und Green-Frontend-Enthusiast verbindet er technisches Know-how mit einem klaren Bewusstsein für Ressourcenschonung und User Experience. Sein Ziel: digitale Produkte, die sinnvoll, zugänglich und menschlich sind.
Mit tiefer Trauer geben wir das Ende von robots.txt bekannt, der bescheidenen Textdatei, die dreißig Jahre lang als stille Wächterin der digitalen Höflichkeit diente. Geboren am 1. Februar 1994 aus der Not heraus, als Martijn Kosters Server unter einem fehlerhaften Crawler namens „Websnarf“ zusammenbrach, verstarb robots.txt im Juli 2025, nicht durch Cloudflares Hand, sondern an den Folgen systematischer Missachtung durch KI-Konzerne. Cloudflares Entscheidung, KI-Crawler standardmäßig zu blockieren, markierte lediglich den Moment, in dem auch der letzte große Infrastruktur-Anbieter das Vertrauen in freiwillige Compliance aufgab und zu technischer Durchsetzung überging – ein letzter Akt der Verzweiflung, der das Ende einer Ära markierte. Wie bei allen bedeutsamen Verlusten brauchte es Zeit, bis das volle Ausmaß dieser digitalen Tragödie begriffen wurde.
Weiterlesen nach der Anzeige
Ein Leben der stillen Dienste
robots.txt wurde in einer Zeit geboren, in der das Internet einer kleinen, beschaulichen Nachbarschaft glich – überschaubar, persönlich und geprägt von gegenseitigem Vertrauen. Man kannte die Bots, die vorbeikamen, und pflegte den digitalen Umgang miteinander. robots.txt, geborene „RobotsNotWanted.txt“, war nie darauf ausgelegt, komplexe rechtliche Schlachten zu führen oder Milliardenunternehmen zu konfrontieren – sie war einfach ein höflicher, aber dennoch bestimmter Hinweis: „Bitte nicht hier entlang.“
In ihren goldenen Jahren lebte robots.txt in perfekter Harmonie mit den großen Suchmaschinen. Google respektierte sie, Yahoo ehrte sie, und selbst AltaVista – ruhe in Frieden – und Lycos folgten ihren Anweisungen. Es war ein Geben und Nehmen. Es war eine Freundschaft auf Augenhöhe, geprägt von einer einfachen Wahrheit: Suchmaschinen erhielten Content zur Indexierung, während Websites im Gegenzug Traffic bekamen. Dieses Crawl-zu-Referral-Verhältnis – also das Verhältnis zwischen Bot-Zugriffen und zurückgeleiteten Nutzern – lag bei Google bei einem fairen 14:1. Pro 14 von Bots aufgerufenen Seiten fand im Schnitt ein Nutzer den Weg zurück zur Website. Heute ist dieser Kontrakt gebrochen: KI-Crawler generieren Tausende oder Millionen von Zugriffen, während kaum Traffic durch Links oder Erwähnungen zurückkommt.
„Anthropics ClaudeBot zeigte im Juni 2025 das mit Abstand höchste Crawl‑zu‑Referral‑Verhältnis – etwa 70.900 Crawls pro einem Referral, weit mehr als jeder andere KI‑Crawler.“ (Cloudflare (Juli 2025))
robots.txt war so grundlegend für das Funktionieren des Internets, dass man ihr 2022 mit RFC 9309 endlich formell Anerkennung zollte. Doch selbst dieser späte Ritterschlag konnte ihr Schicksal nicht aufhalten.
Chronik eines schleichenden Endes
Weiterlesen nach der Anzeige
Die ersten Anzeichen des Wandels zeigten sich 2017, als das Internet Archive ankündigte, robots.txt bei der Archivierung historischer Inhalte nicht länger zu berücksichtigen. Am 17. April 2017 erklärte Mark Graham (Direktor der Wayback Machine), dass robots.txt-Dateien – insbesondere solche, die für Suchmaschinen gedacht sind – nicht immer mit den Archivierungszielen übereinstimmen. Das Internet Archive verfolge das Ziel, möglichst vollständige Schnappschüsse des Webs zu bewahren, einschließlich doppelter oder großer Inhalte.
„Over time we have observed that the robots.txt files that are geared toward search engine crawlers do not necessarily serve our archival purposes.“ (Mark Graham)
Doch das war nur ein Vorgeschmack auf die fortschreitende, systematische Ausschöpfung, die jetzt folgen sollte. Mit dem Aufkommen der künstlichen Intelligenz verwandelte sich das Internet von einem kollaborativen Raum in eine Extraktionszone.
Doch statt des erhofften kollaborativen Miteinanders folgte systematische Ausbeutung. KI-Konzerne errichteten neue digitale Barrieren: Cloudflares Default-Blocking, Paywalls für API-Zugang und exklusive Lizenzdeals mit ausgewählten Publishern. Content-Ersteller sahen sich einer industriellen Extraktionsmaschine gegenüber, die ihre Arbeit ohne Gegenleistung verwertete. Das Internet, einst als offenes Netz für alle konzipiert, verwandelte sich in eine zentralisierte Datenmine für Tech-Giganten.
OpenAI führte den Angriff mit seinem GPTBot, ChatGPT-User und OAI-SearchBot an – eine Dreifaltigkeit der Verletzung, die robots.txt hilflos zusehen ließ, wie ihre Direktiven geflissentlich ignoriert wurden. Das Unternehmen behauptete öffentlich Compliance, während Cloudflare im Juni 2025 ein vernichtendes Crawl-to-Referral-Verhältnis von 1.700:1 dokumentierte – industrielle Extraktion ohne nennenswerte Gegenleistung.
Anthropic fügte dem Leiden weitere Qualen hinzu. ClaudeBot, anthropic-ai und Claude-Web hämmerten auf Server ein, wobei iFixit eine Million Besuche in 24 Stunden und Freelancer.com fast vier Millionen in vier Stunden erlebte. Mit einem Crawl-to-Referral-Verhältnis von 73.000:1 überschritt Anthropic alle Grenzen des Anstands — es war, als würde man einem Nachbarn die Haustürschlüssel anvertrauen, damit er die Blumen gießt – nur um festzustellen, dass er den gesamten Hausrat abtransportiert hat.
Perplexity AI gehörte zu den aggressivsten Akteuren: Es nutzte verdeckte (undisclosed) IP-Adressen und Drittdienste, um Crawling-Aktivitäten zu verschleiern. Als CEO Aravind Srinivas öffentlich erklärte, robots.txt sei kein rechtliches Framework, war das ein offener Affront gegen das jahrzehntealte fragile Protokoll.
Eine Textdatei im Schatten des letzten Gefechts
In ihren letzten Monaten kämpfte robots.txt verzweifelt um die Relevanz vergangener Zeiten. Website-Betreiber entwickelten immer raffiniertere Unterstützungssysteme: Crawler-Fingerprinting mit TLS-Analyse (Transport Layer Security), Honeypot-Fallen und Verhaltensanalyse. Doch es war, als versuchte man, eine akute Blutvergiftung mit fiebersenkenden Mitteln zu behandeln – technisch durchdacht, aber dem Ausmaß der Bedrohung nicht gewachsen.
Das European Data Protection Board versuchte mit der Opinion 28/2024 dem Protokoll rechtliche Verbindlichkeit zu geben, während Italiens Datenschutzbehörde Garante OpenAI mit einer Strafe von 15 Millionen Euro belegte. Doch es waren verzweifelte Wiederbelebungsversuche eines längst kollabierten Systems – der freiwillige Respekt war nicht mehr zu retten.
Alternative Protokolle – ai.txt, TDM ReP, „No-AI-Training“ HTTP-Header – wurden als potenzielle Nachfolger diskutiert. Aber sie alle trugen den Makel ihrer Geburt: Sie entstanden nicht aus Kooperation, sondern aus Konfrontation.
(Bild: jaboy/123rf.com)

Der Call for Proposals für die enterJS 2026 am 16. und 17. Juni in Mannheim ist gestartet. Bis zum 12. November suchen die Veranstalter nach Vorträgen und Workshops rund um JavaScript und TypeScript, Frameworks, Tools und Bibliotheken, Security, UX und mehr.
Entwicklung & Code
Kommandozeile adé: Praktische, grafische Git-Verwaltung für den Mac
Ein neues, kostenloses Git-Management-Tool vereinfacht die Arbeit mit der Versionierungssoftware Git. Viele Funktionen lassen sich zusammenfassen oder schnell und übersichtlich ausführen, auch in älteren Commits. Dabei verwaltet es mehrere lokale Repositories gleichzeitig.
Weiterlesen nach der Anzeige
Anbieter RemObjects schreibt im Blog, dass das macOS-Tool GitBrowser die Alltagsaufgaben von Entwicklerinnen und Entwicklern beim Versionsmanagement beschleunigen soll. Das Fenster des Tools ist dreigeteilt: In der linken Sidebar findet sich eine Liste der Repos, die sich gruppieren und umbenennen lassen. Entwickler führen hier Aktionen über das Kontextmenü aus – auch in nicht aktiven Projekten.
Der Mittelteil zeigt die Versionen eines Repos, und zwar noch zu pushende in Fett, noch zu pullende kursiv und noch zu mergende blau. Auch die verschiedenen Autoren sind farblich unterschiedlich gekennzeichnet. Rechts im Fenster finden sich die betroffenen Dateien eines Commits und darunter eine Diff-Ansicht. Bei Doppelklick auf einen Commit öffnet sich ein Diff-Tool des Anwenders, derzeit Araxis Merge oder BBEdit. Weitere sollen laut Anbieter hinzukommen.
Ganz oben im Fenster steht der lokale Status, beim Klick darauf öffnet sich rechts die Bühne mit Checkboxen zum Hinzufügen oder Entfernen von Dateien. Darunter steht ein dreifach Diff: eine originale, lokale und auf der Stage liegende Variante.
Commiten und Pushen lässt sich mit einem Klick, und die Commit-Nachricht lässt sich auf Wunsch bereits beim Stagen von einer KI erzeugen. Möglich sind hier OpenAI, Claude, Gemini, Grok, Mistral oder eine lokale Verknüpfung mit LM Studio. Wer selbst die Nachricht schreibt, kann mit Pfeiltasten in älteren Ausgaben blättern.
Pullen lassen sich alle Repos auf einen Schlag oder alle einer Gruppe. Anwender ziehen Dateien, auch aus älteren Commits, per Drag-and-drop in andere Tools – ohne Checkout – GitBrowser extrahiert sie automatisch. Der Wechsel zwischen Zweigen erfolgt einfach über einen Popup-Button.
Der Anbieter betont im Blog, dass GitBrowser nicht für tiefergehende Funktionen gedacht sei, sondern alltägliche Verwaltungsvorgänge erleichtern soll. Anspruchsvolle Anwenderinnen und Anwender werden ganz ohne Kommandozeile also doch nicht auskommen.
Weiterlesen nach der Anzeige
Lesen Sie auch
(who)
Entwicklung & Code
Clean Architecture und Co.: Softwarearchitektur mit Mustern strukturieren
Strukturierte Software basiert auf einem Plan, der die spezifischen Anforderungen an ein System berücksichtigt und in lose gekoppelte Bausteine überführt. In der arbeitsteiligen Softwareentwicklung benötigen Entwicklungsteams solche gemeinsamen Pläne, um eine harmonische und einheitliche Architektur zu entwickeln, ohne jedes Detail vorab miteinander abstimmen zu müssen. Bewähren sich die Pläne, entwickeln sich daraus Muster und Prinzipien auf unterschiedlichen Architekturebenen.
Weiterlesen nach der Anzeige

Matthias Eschhold ist Lead-Architekt der E-Mobilität bei der EnBW AG. Als Experte für Domain-driven Design gestaltet er die IT-Landschaft und Team-Topologien der E-Mobilität. Trotz strategischer Schwerpunkte bleibt er mit Java und Spring Boot nah am Code, entwickelt Prototypen und führt Refactorings durch. Als Trainer vermittelt er seit Jahren praxisnahe Softwarearchitektur, die Theorie und Projektrealität verbindet.
Bei der grundlegenden Strukturierung eines Systems muss man zwischen Architekturstilen und Architekturmustern unterscheiden, wobei sie sich nicht immer sauber abgrenzen. Ein Architekturstil ist ein Mittel, das dem System eine grundlegende Struktur verleiht. Beim Stil Event-driven Architecture basiert die Anwendung beispielsweise auf asynchroner Kommunikation, und Events beeinflussen die Architektur und den Code an vielen Stellen. Gleiches gilt für REST, das eine ressourcenorientierte Struktur vorgibt.
Entscheidet sich ein Entwicklungsteam für Microservices als Architekturstil, wählt es eine verteilte Systemarchitektur, beim Stil Modularer Monolith ist das Gegenteil der Fall. In komplexen Systemen kombinieren Architektinnen und Architekten in der Regel mehrere Stile. Manche Architekturstile ergänzen sich, etwa REST und Microservices, während sich andere gegenseitig ausschließen, wie Microservices und der Modulare Monolith.
Ob Microservices oder Modularer Monolith – beides sagt wenig über die Gestaltung der internen Strukturen aus. Auf dieser inneren Architekturebene, der Anwendungsarchitektur, kommen Muster zum Einsatz, die Entwurfsprinzipien und -regeln kombinieren und eine Basisstruktur der Anwendung prägen. Architekturmuster der Anwendungsarchitektur nutzen Verantwortungsbereiche und Beziehungsregeln als Strukturierungsmittel. Im Muster Clean Architecture sind dies beispielsweise konzentrische Ringe, wobei die Beziehungsrichtung stets zum inneren Kern des Ringmodells führt. Die geschichtete Architektur (Layered Architecture) hingegen unterteilt die Verantwortungsbereiche in hierarchische Schichten, wobei jede Schicht nur mit der darunter liegenden kommunizieren darf (siehe Abbildung 1).

Vergleich zwischen Clean Architecture und Schichtenarchitektur (Abb. 1).
Mustersprache als Fundament
Eine Mustersprache ergänzt Architekturmuster für einen ganzheitlichen Konstruktionsplan – von Modulen und Paketen bis hin zum Klassendesign. Sie bildet das Fundament für eine konsistente und verständliche Umsetzung der Muster und beschreibt eine Reihe von Entwurfsmustern für die Programmierung auf der Klassenebene.
Weiterlesen nach der Anzeige
Die Klassen der Mustersprache bilden Geschäftsobjekte, Fachlogik und technische Komponenten ab. Sie werden unter Einhaltung der definierten Beziehungsregeln in einem Klassenverbund implementiert. Diese Regeln bestimmen, wie die Klassen miteinander interagieren, wie sie voneinander abhängen und welche Aufgaben sie haben. Ein Geschäftsobjekt ist charakterisiert durch seine Eigenschaften und sein Verhalten, während ein Service Geschäftslogik und fachliche Ablaufsteuerung implementiert. Eine derartige, genaue Differenzierung gestaltet Architektur klar und nachvollziehbar.
Ein wichtiger Aspekt einer Mustersprache ist die Organisation des Codes in einer gut verständlichen Hierarchie. Dadurch fördert sie die Verteilung von Verantwortlichkeiten auf unterschiedliche Klassen. Prinzipiell kann jedes Projekt seine eigene Mustersprache definieren oder eine bestehende als Basis verwenden und mit individuellen Anforderungen ausbauen. Eine Mustersprache sorgt auch im Team dafür, dass alle Mitglieder dieselben Begriffe und Prinzipien verwenden.
Dieser Artikel wählt die DDD Building Blocks als Grundlage für eine Mustersprache, wie die folgende Tabelle und Abbildung 2 zeigen.
| Value Object | Ein Value Object repräsentiert einen unveränderlichen Fachwert ohne eigene Entität. Das Value Object ist verantwortlich für die Validierung des fachlichen Werts und sollte nur in einem validen Zustand erzeugt werden können. Ferner implementiert ein Value Object dazugehörige Fachlogik. |
| Entity | Eine Entity ist ein Objekt mit einer eindeutigen Identität und einem Lebenszyklus. Die Entität wird beschrieben durch Value Objects und ist verantwortlich für die Validierung fachwertübergreifender Geschäftsregeln sowie die Implementierung dazugehöriger Fachlogik. |
| Aggregate | Ein Aggregate ist eine Sammlung von Entitäten und Value Objects, die durch eine Root Entity (oder Aggregate Root bzw. vereinfacht Aggregate) zusammengehalten werden. Die Root Entity definiert eine fachliche Konsistenzgrenze, klar abgegrenzt zu anderen Root Entities (oder Aggregates). |
| Domain Service | Ein Domain Service implementiert Geschäftslogik, die nicht zu einer Entität oder einem Value Object gehört. Weiter steuert der Domain Service den Ablauf eines Anwendungsfalls. Ein Domain Service ist zustandslos zu implementieren. |
| Factory | Eine Factory ist für die Erstellung von Aggregates, Entitäten oder Value Objects verantwortlich. Die Factory kapselt die Erstellungslogik komplexer Domänenobjekte. |
| Repository | Ein Repository ist verantwortlich für die Speicherung und das Abrufen von Aggregaten und Entitäten aus einer Datenquelle. Das Repository kapselt den Zugriff auf eine Datenbank oder auch andere technische Komponenten. |

Mustersprache des taktischen Domain-driven Design (Abb. 2).
Ein Beispiel verdeutlicht den Unterschied zwischen einem Value Object und einer Entity: Eine Entity könnte ein bestimmtes Elektrofahrzeug sein. Entities sind also eindeutig und unverwechselbar. In der realen Welt zeigt sich das an der global eindeutigen Fahrgestellnummer (VIN). Der aktuelle Zustand eines E-Fahrzeugs wird zu einem bestimmten Zeitpunkt beispielsweise durch seinen Ladezustand beschrieben, ein Wert, der sich im Laufe der Nutzung des Fahrzeugs verändert. Der Ladezustand entspricht einem Value Object. Er verfügt über keine eigene Identität, sondern definiert sich ausschließlich durch seinen Wert.
Erweiterung der Mustersprache auf Basis der Stile und Muster
Die Mustersprache der Building Blocks ist nicht vollständig. Sie benötigt weitere Elemente, die von den eingesetzten Architekturstilen und -mustern abhängen. REST als Architekturstil führt beispielsweise zwei Elemente in die Mustersprache ein: Controller und Resource. Bei der Integration von REST als Provider liegt der Fokus auf der Resource, die als Datentransferobjekt (DTO) über den API-Endpunkt bereitsteht. Der Controller fungiert als Schnittstelle zwischen der Anfrage des Konsumenten und der Fachlogik des Systems. Das heißt, der Controller nutzt den bereits eingeführten Domain Service und delegiert die Ausführung von Fachlogik an diesen.
Bei der Integration von REST als Consumer erhält die Mustersprache das Element Service Client, das dem Abrufen von Daten oder Ausführen von Funktionen über einen externen API-Endpunkt dient. Der Domain Service triggert dies als Teil der Fachlogik über den Service Client.
Der Stil Event-driven Architecture erweitert die Mustersprache um die Elemente Event Listener, Event Publisher und das Event selbst. Ein Event Listener hört auf Ereignisse und ruft den entsprechenden Domain Service auf, um die Ausführung der Geschäftslogik auszulösen. Der Event Publisher veröffentlicht eine Zustandsveränderung in der Fachlichkeit über ein Event. Der Domain Service triggert die Event-Veröffentlichung als Teil seiner Fachlogik und nutzt hierfür den Event Publisher.
Die in diesen Beispielen aufgeführten Begriffe sind im Vergleich zu den DDD Building Blocks nicht in der Literatur definiert und entstammen der Praxis. Abbildung 3 zeigt die Klassen der erweiterten Mustersprache.

Elemente der Mustersprache des taktischen Domain-driven Design (Abb. 3).
Architekturmuster kombinieren Regeln, Entwurfsmuster und Prinzipien. Muster wie Clean Architecture, die sich besonders für komplexe Systeme mit hohen Anforderungen an den Lebenszyklus eignen, bündeln mehrere Konzepte und beeinflussen daher die Mustersprache stärker als andere Muster. Ein Beispiel ist das Konzept Use Case in der Clean Architecture, das ein zentrales Element darstellt und die Mustersprache um die Elemente Use Case Input Port, Use Case Output Port und Use Case Interactor erweitert. Ein weiteres Beispiel ist die Anwendung des Dependency Inversion Principle (DIP) in der Clean Architecture, das zu dem Musterelement Mapper führt.
Nach dem Exkurs über die Mustersprachen stellt dieser Artikel verschiedene Architekturmuster vor, die sich in schichten- und domänenbasierende unterteilen.
Schichtenbasierende Architekturmuster
Schichtenbasierende Architekturmuster sind datenzentrisch strukturiert. Je nach Muster ist dieser Aspekt mehr oder weniger ausgeprägt. Die Schichtung unterscheidet sich in technischer (horizontal geschnitten) und fachlicher (vertikal geschnitten) Hinsicht. Für die weitere Beschreibung eignet sich die Begriffswelt von Simon Brown mit „Package by …“ .
Package by Layer: Dieses Muster organisiert die Anwendung nach technischen Aspekten, zum Beispiel nach Controller, Service und Repository (Abbildung 4). Es kommt jedoch schnell an seine Grenzen: Mittlere und große Systeme mit komplizierter Fachlichkeit erfordern eine vertikale Schichtung anhand fachlicher Aspekte, andernfalls enden die Projekte erfahrungsgemäß in komplizierten Monolithen mit vielen Architekturverletzungen.
Vorteile:
- Bekannt und verbreitet
- Einfach zu verstehen und anzuwenden
- In kleinen Projekten praktikabel
Nachteile:
- Enge Kopplung zwischen Schichten, mit der Gefahr chaotischer Abhängigkeiten bei Wachstum des Systems
- Fachlich zusammenhängende Funktionalitäten sind über viele Pakete verteilt
- Schwer wartbar und erweiterbar bei mittleren bis großen Anwendungen

Das Architekturmuster Package by Layer (Abb. 4).
Package by Feature: Der Code organisiert sich vertikal anhand fachlicher Aspekte. Eine Schnitt-Heuristik, wie genau das Feature von den fachlichen Anforderungen abzuleiten ist, definiert das Architekturmuster nicht. Es definiert nur, dass dieser fachliche Schnitt zu erfolgen hat. Wird das taktische DDD angewendet, erfolgt der Schnitt entlang der Aggregates (siehe Abbildung 5).
Vorteile:
- Fachlich kohäsiver Code ist lokal zusammengefasst, was zu hoher Wartbarkeit und Erweiterbarkeit führt.
- Modularisierung ermöglicht die unabhängige Entwicklung fachlicher Module.
- Fachliche Ende-zu-Ende-Komponenten sind lose gekoppelt.
- Abhängigkeiten zwischen fachlichen Modulen müssen explizit gehandhabt werden, was die Robustheit der Architektur gegenüber ungewünschten Abhängigkeiten erhöht.
- Fachlich komplexe, mittelgroße bis große Anwendungen lassen sich mit vertikalen Schichten besser beherrschen als mit Package by Layer und Package by Component.
Nachteile:
- Abhängigkeiten zwischen fachlichen Modulen erfordern fortgeschrittene Kommunikationsmuster (zum Beispiel Events), was die architektonische Komplexität erhöht.
- Vertikale Modularisierung muss gut durchdacht werden, um enge Kopplung zwischen Modulen zu vermeiden.

Das Architekturmuster Package by Feature (Abb. 5).
Package by Component: Das Muster strukturiert die Anwendung sowohl fachlich (vertikal) als auch technisch (horizontal), wobei sich ein fachliches Feature in eine Inbound-Komponente und eine Domain-Komponente aufteilt (siehe Abbildung 6). Die Domain-Komponente kapselt Geschäftslogik und die dazugehörige Persistenzschicht. Diese Unterteilung in fachliche Module ist ein entscheidender Unterschied zu Package by Layer.
Vorteile:
- Gute Modularisierung durch fachliche Grenzen zwischen Komponenten
- Hohe Wiederverwendbarkeit der Domain-Komponenten, durch unterschiedliche Inbound-Komponenten
- Erleichterte Testbarkeit durch gesteigerte Modularisierung im Vergleich zu Package by Layer
Nachteile:
- Enge Kopplung zwischen Inbound- und Domain-Schicht, mit dem Risiko indirekter Abhängigkeiten und Seiteneffekten bei Änderungen, insbesondere wenn die Anwendung wächst
- Komponentenkommunikation schwer beherrschbar bei erhöhter fachlicher Komplexität
- Schwerer erweiterbar für mittlere bis große Anwendungen mit höherer fachlicher Komplexität

Das Architekturmuster in Package by Component (Abb. 6).
Entwicklung & Code
Ein Tag im Leben eines Softwarearchitekten – Überleben im Unternehmensdschungel
Heute erzähle ich von einem typischen Arbeitstag als Softwarearchitekt, der schon vor dem Weg zur Arbeit beginnt.
Weiterlesen nach der Anzeige

Prof. Dr. Michael Stal arbeitet seit 1991 bei Siemens Technology. Seine Forschungsschwerpunkte umfassen Softwarearchitekturen für große komplexe Systeme (Verteilte Systeme, Cloud Computing, IIoT), Eingebettte Systeme und Künstliche Intelligenz.
Er berät Geschäftsbereiche in Softwarearchitekturfragen und ist für die Architekturausbildung der Senior-Software-Architekten bei Siemens verantwortlich.
6:30 Uhr – Der Beginn der architektonischen Erleuchtung
Der Wecker schreit mit der Begeisterung eines Junior-Entwicklers, der gerade Designmuster entdeckt hat. Als Softwarearchitekt beginnt mein Tag nicht mit Kaffee, sondern mit einem kurzen Blick auf die Produktionswarnungen der letzten Nacht. Drei kritische Systeme sind ausgefallen, zwei Datenbanken laufen aus unerfindlichen Gründen so, als würden sie auf einem Server aus dem Jahr 1995 mit einem antiken Prozessor laufen, und es gibt eine dringende Slack-Nachricht von jemandem, der fragt, ob wir „einfach schnell Blockchain zu unserem Warenkorb hinzufügen können, weil der CEO gehört hat, dass das revolutionär ist“.
Ich schenke mir eine Tasse Kaffee ein, der so stark ist, dass er wahrscheinlich selbst Code kompilieren könnte, und bereite mich mental auf einen weiteren Tag vor, an dem ich Geschäftsträume in technische Realität umsetzen und mich dabei durch die tückischen Gewässer der Unternehmensbürokratie navigieren muss.
7:45 Uhr – Der Weg zur Arbeit: Wo Architekturträume sterben
Während meiner Fahrt zur Arbeit erhalte ich den ersten von insgesamt siebzehn Anrufen, die ich heute erhalten werde. Er kommt vom Projektmanager, der entdeckt hat, dass unsere sorgfältig geplante Microservices-Architektur möglicherweise mehrere Dienste erfordert. Der Horror! Ich verbringe zwanzig Minuten damit, zu erklären, warum „einfach einen großen Dienst daraus zu machen“ den Zweck der letzten Sechs-Monats-Planung zunichtemacht. Dieses Gespräch wird sich heute noch viermal mit verschiedenen Personen wiederholen, die offenbar an derselben Besprechung teilgenommen haben, aber völlig unterschiedliche Dinge gehört haben wollen.
-
UX/UI & Webdesignvor 3 MonatenDer ultimative Guide für eine unvergessliche Customer Experience
-
UX/UI & Webdesignvor 3 MonatenAdobe Firefly Boards › PAGE online
-
Apps & Mobile Entwicklungvor 3 MonatenGalaxy Tab S10 Lite: Günstiger Einstieg in Samsungs Premium-Tablets
-
UX/UI & Webdesignvor 1 MonatIllustrierte Reise nach New York City › PAGE online
-
Datenschutz & Sicherheitvor 3 MonatenHarte Zeiten für den demokratischen Rechtsstaat
-
Social Mediavor 3 MonatenRelatable, relevant, viral? Wer heute auf Social Media zum Vorbild wird – und warum das für Marken (k)eine gute Nachricht ist
-
Datenschutz & Sicherheitvor 2 MonatenJetzt patchen! Erneut Attacken auf SonicWall-Firewalls beobachtet
-
Online Marketing & SEOvor 3 Monaten„Buongiorno Brad“: Warum Brad Pitt für seinen Werbejob bei De’Longhi Italienisch büffeln muss
