Page Objects: So machen Sie Ihre UI-Tests robuster

2025-09-15
Page Objects: So machen Sie Ihre UI-Tests robuster

Das Testen von Webseiten erfordert die Interaktion mit Elementen, aber die direkte Manipulation von HTML macht Tests anfällig. Page Objects lösen dieses Problem, indem sie eine Seite oder ein Fragment als anwendungsspezifische API kapseln. Dadurch kann mit Elementen interagiert werden, ohne direkt auf HTML zuzugreifen. Ziel ist es, Benutzeraktionen zu imitieren und eine saubere Schnittstelle bereitzustellen, die zugrunde liegende Widgets verbirgt. Textfelder verwenden String-Accessor, Checkboxen Booleans und Buttons aktionsorientierte Methoden. Gute Page Objects modellieren die Perspektive des Benutzers, nicht die interne Struktur der Benutzeroberfläche, und geben grundlegende Datentypen oder andere Page Objects zurück. Es gibt eine Debatte über die Einbeziehung von Assertions in Page Objects. Der Autor bevorzugt, Assertions in Testskripten zu belassen, um aufgeblähte Page Objects zu vermeiden und Assertions-Bibliotheken zu verwenden, um Redundanz zu reduzieren. Dieses Muster funktioniert mit verschiedenen UI-Technologien und ist nicht nur für Tests, sondern auch als Skript-Schnittstelle für Anwendungen nützlich.

Mehr lesen
Entwicklung

LLMs: Chancen und Herausforderungen

2025-08-29
LLMs: Chancen und Herausforderungen

Vor einer kurzen Pause teilt der Autor einige Gedanken zum aktuellen Stand von LLMs und KI. Er weist auf Mängel in aktuellen Umfragen zum Einfluss von LLMs auf die Softwareentwicklung hin und argumentiert, dass diese die unterschiedlichen Arbeitsabläufe bei der Verwendung von LLMs vernachlässigen. Der Autor schätzt die Zukunft von LLMs als unvorhersehbar ein und ermutigt zum Experimentieren und zum Austausch von Erfahrungen. Er spricht auch die unvermeidliche KI-Blase und die „Halluzinations“-Eigenschaft von LLMs an und betont die Wichtigkeit, Fragen mehrmals zu stellen, um die Antworten zu überprüfen. Schließlich warnt der Autor vor den Sicherheitsrisiken, die von LLMs ausgehen, insbesondere den Schwachstellen von Agenten, die in Browsern arbeiten.

Mehr lesen
KI

Bauen Sie Ihren eigenen CLI-Coding-Agenten: Eine praktische Anleitung mit Pydantic-AI und MCP

2025-08-29
Bauen Sie Ihren eigenen CLI-Coding-Agenten: Eine praktische Anleitung mit Pydantic-AI und MCP

Dieser Artikel beschreibt, wie der Autor einen CLI-Coding-Agenten mit dem Pydantic-AI-Framework und dem Model Context Protocol (MCP) gebaut hat. Durch die Integration des Claude-Modells, Testläufern, einer Code-Ausführungssandbox, Dokumentationsuche und AWS-Tools ermöglicht der Agent Code-Tests, Debugging, Dokumentationsabfragen und Code-Änderungen, was die Entwicklungseffizienz deutlich steigert. Der Autor hebt die Bedeutung von MCP bei der Erweiterung der Agentenfunktionen und die Vorteile des Bauens eines benutzerdefinierten Agenten hervor, um die spezifischen Projektbedürfnisse zu erfüllen. Letztendlich fungiert der Agent als intelligenter Programmierpartner und arbeitet mit Entwicklern zusammen, um Code zu schreiben, zu debuggen und zu testen.

Mehr lesen
Entwicklung

Generative KI: Ein Paradigmenwechsel in der Programmierung

2025-06-28
Generative KI: Ein Paradigmenwechsel in der Programmierung

Große Sprachmodelle (LLMs) revolutionieren die Softwareentwicklung, eine Veränderung vergleichbar mit dem Übergang von Assemblersprache zu höherwertigen Programmiersprachen. Der Autor argumentiert, dass LLMs nicht nur die Abstraktionsebene erhöhen, sondern auch Nichtdeterminismus einführen, wodurch sich die Natur der Programmierung grundlegend verändert. Die Entwicklung von Fortran zu Ruby verbesserte die Effizienz, änderte aber nicht das Wesen der Programmierung. Der von LLMs eingeführte Nichtdeterminismus erfordert, dass sich Programmierer anpassen, was sowohl Herausforderungen als auch Chancen bietet.

Mehr lesen
Entwicklung

Agentenhafte Coding-Assistenten: Beeindruckender Fortschritt, anhaltende Herausforderungen

2025-03-26
Agentenhafte Coding-Assistenten: Beeindruckender Fortschritt, anhaltende Herausforderungen

Generative KI, insbesondere große Sprachmodelle (LLMs), revolutionieren die Softwareentwicklung. Dieses Memo beschreibt die Erfahrungen des Autors mit KI-Coding-Assistenten über mehrere Monate und zeigt sowohl erhebliche Effizienzsteigerungen als auch anhaltende Herausforderungen. Die KI diagnostiziert häufig Probleme falsch, verwendet Brute-Force-Lösungen, mangelt an Code-Wiederverwendbarkeit und generiert redundanten Code, was den Team-Workflow und die langfristige Wartbarkeit beeinträchtigt. Der Autor kategorisiert diese Probleme in drei Einflussbereiche: Zeit bis zum Commit, Team-Workflow und langfristige Wartbarkeit, und schlägt Mitigationsstrategien vor, wie z. B. sorgfältige Code-Überprüfung, regelmäßige Reflexion und die Einrichtung von Mechanismen zur Überwachung der Code-Qualität. Die Kernbotschaft ist, dass trotz des rasanten Fortschritts der KI die Erfahrung und die Fähigkeiten von Entwicklern weiterhin entscheidend sind.

Mehr lesen
Entwicklung

Conways Gesetz: Softwarearchitektur spiegelt Organisationsstruktur wider

2025-02-05
Conways Gesetz: Softwarearchitektur spiegelt Organisationsstruktur wider

Es besteht ein Konsens unter Softwarearchitekten über die Bedeutung von Conways Gesetz: Jede Organisation, die ein System entwirft, wird ein Design erstellen, dessen Struktur eine Kopie der Kommunikationsstruktur der Organisation ist. Das bedeutet, dass die Softwarearchitektur oft die Organisation des Entwicklungsteams widerspiegelt. Die Ignorierung dessen führt zu Konflikten zwischen der Systemarchitektur und der Organisationsstruktur, was die Entwicklungskomplexität erhöht. Der Artikel untersucht drei Strategien zur Bewältigung von Conways Gesetz: Ignorieren, Akzeptieren und das Inverse Conway-Manöver (Anpassen der Organisationsstruktur, um die Softwarearchitektur zu lenken). Der Autor betont, dass die Entwicklung der Systemarchitektur und der Organisationsstruktur während der gesamten Softwareentwicklung synchronisiert werden sollte, und schlägt die Verwendung von Methoden wie der domänengesteuerten Entwicklung vor, um das Organisationsdesign zu unterstützen.

Mehr lesen
Entwicklung Conways Gesetz

Die zwei schwierigsten Dinge in der Informatik

2025-01-20
Die zwei schwierigsten Dinge in der Informatik

Ein klassischer Programmierer-Witz lautet: "Es gibt nur zwei schwierige Dinge in der Informatik: Cache-Invalidierung und Namensgebung." Dieser Artikel verfolgt den Ursprung und die Entwicklung dieses geistreichen Satzes und erforscht seinen Humor und seine tiefere Bedeutung. Von seiner anfänglichen prägnanten Form bis hin zu Variationen, die 'Off-by-one-Fehler' und mehr beinhalten, spiegelt der Witz die zahlreichen Herausforderungen wider, denen Programmierer täglich begegnen, und hebt die Komplexität und den Spaß der Programmierung hervor.

Mehr lesen
Entwicklung

Refactoring mit Codemods zur Automatisierung von API-Änderungen

2025-01-11
Refactoring mit Codemods zur Automatisierung von API-Änderungen

Dieser Artikel untersucht, wie Codemods groß angelegte Codeänderungen automatisieren, insbesondere beim Umgang mit inkompatiblen API-Änderungen. Mithilfe abstrakter Syntaxbäume (ASTs) automatisieren Codemods präzise Codetransformationen und reduzieren so den Aufwand der manuellen Refaktorisierung erheblich. Der Artikel verwendet Beispiele wie das Entfernen veralteter Feature-Flags und das Refactoring komplexer React-Komponenten, beschreibt den Prozess mit jscodeshift und diskutiert potenzielle Probleme und Lösungen beim Skalieren von Codemods. Er hebt die Rolle von Codemods bei der Verbesserung der Codequalität und -wartbarkeit hervor und zeigt eine Fallstudie zum Refactoring einer Avatar-Komponente.

Mehr lesen

Designtokens: Der Schlüssel zu skalierbaren und konsistenten UI-Architekturen

2024-12-18
Designtokens: Der Schlüssel zu skalierbaren und konsistenten UI-Architekturen

Dieser Artikel untersucht die Rolle von Designtokens in der modernen UI-Architektur. Indem Designentscheidungen als Daten dargestellt werden, dienen Designtokens als Single Source of Truth und ermöglichen die automatisierte Codegenerierung über verschiedene Plattformen hinweg, was zu schnelleren Updates und einer verbesserten Designkonsistenz führt. Der Artikel beschreibt detailliert die hierarchische Organisation von Designtokens (Options-, Entscheidungs- und Komponententokens), automatisierte Verteilungsprozesse und wie man die geeignete Anzahl von Ebenen und den Umfang der Tokens wählt. Abschließend wird erörtert, wann Designtokens angebracht sind und welche Grenzen sie haben, um den Lesern zu helfen, ihre Eignung für ihre Projekte zu bestimmen.

Mehr lesen