RSS Martin Fowler Notiz

RSS Martin Fowler

Die Webseite martin fowler com ist die persönliche Webseite von Martin Fowler, einem renommierten britischen Software-Ingenieur, Autor und öffentlichen Redner. Die Seite dient hauptsächlich als Archiv für seine Schriften, Vorträge und andere berufliche Unternehmungen. Die Webseite enthält eine breite Palette von Artikeln, Essays und Blog-Beiträgen zu verschiedenen Themen im Zusammenhang mit der Software-Entwicklung, darunter Design-Patterns, Refactoring, agile Methoden und Domain-driven Design. Viele dieser Artikel gelten als grundlegende Werke im Bereich der Software-Ingenieurwesen und wurden weithin gelesen und zitiert. Neben seinen schriftlichen Werken hostet die Seite auch Videos und Transkripte von Martin Fowlers Konferenzvorträgen und Präsentationen, die Themen wie Software-Architektur, Testing und die Zukunft der Software-Entwicklung abdecken. Insgesamt ist martin fowler com eine wertvolle Ressource für Software-Entwickler, Architekten und Ingenieure, die ihre Fähigkeiten verbessern und sich auf dem neuesten Stand halten möchten, was die neuesten Trends und Best Practices im Bereich der Software-Entwicklung betrifft.

Notizfaden

KI an eine Referenzanwendung binden

Service-Vorlagen sind ein typischer Baustein in den „goldenen Pfaden“, die Organisationen für ihre Ingenieurteams erstellen, um es einfach zu machen, das Richtige zu tun. Die Vorlagen sollen die Vorbilder für alle Dienste in der Organisation sein und stets die aktuellsten Codierungsmuster und -standards widerspiegeln. Eine der Herausforderungen bei Service-Vorlagen ist jedoch, dass es mühsam ist, Vorlagenaktualisierungen in die Dienste zurückzuspeisen, sobald ein Team einen Dienst mit einer Vorlage instanziiert hat. Birgitta Böckeler prüft, ob GenAI dabei helfen kann.

To vibe oder nicht zu vibe

Birgitta Böckeler untersucht die Risikobewertung rund um die Anwendung von Vibe-Coding anhand von drei Risikodimensionen: Wahrscheinlichkeit, Auswirkung und Entdeckbarkeit.

Einige Gedanken zu LLMs und Softwareentwicklung

Der Autor teilt Gedanken zu LLMs und KI, bereitet sich auf einen Urlaub vor und reflektiert über Branchentrends. Umfragen zum Einfluss von KI in der Softwareentwicklung übersehen oft die unterschiedliche Nutzung von LLMs, was potenziell zu verzerrten Ergebnissen führen kann. Der Autor äußert Unsicherheit über die Zukunft des Programmierens und fordert zum Experimentieren mit LLMs sowie zum Teilen von Erfahrungen auf. Er glaubt, dass der KI-Boom eine Blase ist, ähnlich wie frühere technologische Fortschritte, aber mit dem Potenzial für bleibenden Wert trotz des eventualen Platzens. Der Autor wird an der GOTO Copenhagen Konferenz teilnehmen und sich mit Kollegen aus der Branche wieder verbinden. LLMs werden als Halluzinationsmaschinen betrachtet, was die Notwendigkeit unterstreicht, Ausgaben zu überprüfen und mehrere Prompts zu berücksichtigen. Die Softwaretechnik könnte sich weiterentwickeln, um Nichtdeterminismus zu integrieren, ähnlich wie andere Ingenieurdisziplinen. Der Autor stellt fest, dass sich LLMs wie unzuverlässige Junior-Kollegen verhalten und irreführende Ergebnisse liefern können. Abschließend hebt der Autor die erhöhten Sicherheitsrisiken hervor, die durch LLMs entstehen, insbesondere in Bezug auf agentenbasierte Browser-Erweiterungen.

Von der Black Box zur Blaupause

"Ein häufiges Unternehmensproblem: entscheidende Legacy-Systeme werden zu "Black Boxes" - sie sind für den Betrieb entscheidend, aber undurchsichtig und riskant zu ändern. Thiyagu Palanisamy und Chandirasekar Thiagarajan arbeiteten mit einem Kunden zusammen, um AI-unterstützte Reverse-Engineering zu nutzen, um funktionale Spezifikationen aus UI-Elementen, Binärdateien und Datenabstammung zu rekonstruieren, um die Analyseparalyse zu überwinden. Sie entwickelten einen methodischen "Multi-Lens"-Ansatz - beginnend mit sichtbaren Artefakten, inkrementell anreichend, Logik triangulierend und immer die Abstammung bewahrend. Die menschliche Validierung bleibt zentral, um die Genauigkeit und Zuverlässigkeit der extrahierten Funktionalität sicherzustellen. Diese Zusammenarbeit zeigte, dass das Umwandeln eines Systems von einer Black Box in eine Blaupause Modernisierungsentscheidungen ermöglich und Migrationsbemühungen beschleunigt."

Forschung, Bewertung, Neuaufbau: Intelligente Modernisierung mit MCP und strategischer Aufforderung

Das Open-Source-Krankenhausmanagementsystem Bahmni wurde vor über neun Jahren mit einem Frontend auf Basis von AngularJS und einer OpenMRS REST API entwickelt. Rahul Ramesh wollte dies auf ein Frontend mit React + TypeScript und eine HL7 FHIR API umstellen. Bei der Erforschung, wie diese Modernisierung umgesetzt werden kann, nutzte er einen strukturierten Prompting-Workflow aus Recherche, Überprüfung und Wiederaufbau – zusammen mit Cline, Claude 3.5 Sonnet, einem Atlassian MCP-Server und einem Dateisystem-MCP-Server. Die Änderung eines einzelnen Steuerelements hätte normalerweise 3–6 Tage manuelle Arbeit erfordert, wurde aber mit diesen Tools in weniger als einer Stunde zu Kosten von unter 2 US-Dollar abgeschlossen.

Erstellen Sie Ihren eigenen CLI Coding Agent mit Pydantic-AI

CLI-Codierungsagenten sind ein fundamental anderes Werkzeug als Chatbots oder Autovervollständigungstools – sie sind Agenten, die Code lesen, Tests ausführen und eine Codebasis aktualisieren können. Ben O'Mahony erklärt, dass kommerzielle Tools zwar beeindruckend sind, aber nicht den spezifischen Kontext unserer Umgebung und die Eigenheiten unseres spezifischen Projekts verstehen. Stattdessen können wir unseren eigenen Codierungsagenten aufbauen, indem wir Open-Source-Tools zusammenstellen und unsere spezifischen Entwicklungsstandards für Tests, Dokumentationserstellung, Code-Logik und Dateisystemoperationen verwenden.

Unterhaltung mit Unmesh über den Aufbau von Sprache mit LLMs

Vor einigen Wochen begannen Unmesh Joshi und ich, über die Art und Weise zu sprechen, wie er gerne eine Sprache von Abstraktionen entwickelt, wenn er mit einem Large Language Model (LLM) arbeitet. Wir dachten, dass diese Unterhaltung auch für andere interessant sein könnte, also haben wir sie in einen Artikel umgewandelt. Wir sprechen darüber, wie das Programmieren sowohl darum geht, Abstraktionen zu erstellen als auch sie anzuwenden, und wie das LLM uns auf unterschiedliche Weise bei jeder dieser Aktivitäten unterstützt.

Bliki: Dehnungsfugen

Der Autor entwickelte eine Technik namens Expansion Joints, um die Sprechzeit effektiv zu managen. Dabei handelt es sich um vorab geplante, optionale Themen, die kurz oder ausführlich behandelt werden können. Dies ermöglicht es Rednern, die Dauer ihrer Präsentation anzupassen, ohne gehetzt oder unvorbereitet zu wirken. Jedes Expansion Joint besteht in der Regel aus einer einzelnen Folie mit Schlüsselphrasen, die als Diskussionsanregungen dienen. Wenn die Zeit knapp ist, wird das Thema schnell zusammengefasst, oft mit dem Hinweis, dass es nicht im Rahmen der Präsentation liegt. Umgekehrt kann der Redner, wenn genügend Zeit zur Verfügung steht, auf das optionale Material eingehen. Der Autor hat auch die Kunst beherrscht, Folien unsichtbar für das Publikum zu überspringen, eine Fähigkeit, die Laptop-Kontrolle erfordert. Diese Technik verlieh Selbstvertrauen, insbesondere da der Autor Vorträge nicht umfassend einübte. Die Expansion Joints erwiesen sich als unschätzbar für die Anpassung von Vorträgen an verschiedene Zeitfenster und die Steuerung der Interaktion mit dem Publikum. Diese flexiblen Segmente sind am nützlichsten gegen Ende einer Präsentation, wenn die verbleibende Zeit am klarsten ist.

Das OKR-Team in Aktion

OKRs sind zu einer beliebten Methode geworden, um Strategie und Umsetzung in großen Organisationen zu verbinden. Doch wenn sie in einer Top-Down-Kaskade festgelegt werden, verlieren sie oft ihre Bedeutung. Teams erhalten Ziele, an deren Entstehung sie nicht mitgewirkt haben, und das Ergebnis ist ein schwaches Engagement und wenig echte Veränderung. Paulo Caroli beschreibt, wie leistungsstarke Teams anders arbeiten können. Sie definieren ihre eigenen Ziele in einer Organisation, die einen kollaborativen Prozess nutzt, um die OKRs des Teams mit der übergeordneten Strategie abzugleichen. Mit diesen Team-OKRs schaffen sie einen gemeinsamen Zweck und bilden die Grundlage für einen regelmäßigen Zyklus aus Planung, Check-ins und Retrospektiven.

Impact Intelligence: Umgang mit gängigen Einwänden

Sriram Narayan schließt seinen Artikel in „Impact Intelligence“ ab, indem er sich fünf gängigen Einwänden gegen diese Aktivität widmet, darunter Verlangsamung, mangelnde Agilität und Zusammenarbeit sowie die Unvorhersehbarkeit von Innovationen.

Schnelle aber lohnenswerte Links

"Abi Noda stellte fest, dass Entwickler eines großen Ingenieurunternehmens, die Copilot nutzen, zwei Stunden pro Woche einsparen, aber aufgrund langsamer Builds, Entwicklungsumgebungsarbeiten und Verzögerungen bei Code-Reviews wesentlich mehr Zeit verlieren. Dies unterstreicht, dass KI keine vollständige Lösung für alle Entwicklungsineffizienzen ist. Nik Malykhin entdeckte, dass das effektive Nutzen eines KI-Assistenten erfordert, dass man zunächst seine eigenen Codierregeln und Zusammenarbeitsstile artikuliert und kodifiziert. Dies erfordert meta-kognitive Anstrengungen, um kognitive Arbeit abzuladen. Charity Majors unterscheidet zwischen wegwerfbarer und dauerhafter Code, indem sie behauptet, dass die Kosten durch Wartung, Erweiterbarkeit und Verständnis bestimmt werden, nicht durch die Erstellungsmethode. Wegwerfbarer Code ist billig, weil er nicht für langfristige Wartung vorgesehen ist. Jim Highsmith schlägt vor, KI als "Alternative Intelligenz" zu betrachten, indem er den unterschiedlichen Denkprozess betont, anstatt einer Schwäche. Rod Johnson weist auf die kritische Rolle von Domänenmodellen als Form des Gedächtnisses für KI-Systeme hin. Event Sourcing bietet episodisches Gedächtnis durch unveränderliche Ereignishistorien. Repository-Muster bieten domänenspezifische Schnittstellen für das Gedächtnis, die geschäftliche Bedeutung erhalten. Begrenzte Kontexte teilen das Gedächtnis semantisch auf, um Konzeptverschmutzung zu vermeiden. Aggregate wirken als kohäsive Gedächtniscluster mit Konsistenzgrenzen, die für zuverlässiges Agentenverhalten entscheidend sind."

Maßnahmen zur Verbesserung der Wirkungsintelligenz

Sriram Narayan setzt seinen Artikel über Impact Intelligence fort und skizziert fünf Maßnahmen zur Verbesserung der Impact Intelligence: Einführung eines robusten Nachfragemanagements, Abbau von Messschulden, Einführung von Impact-Validierung, Angebot einer Alternative zum ROI für Ihren CFO/COO, Ausstattung Ihrer Teams.

Der Leitfaden des reformorientierten CTOs zur Auswirkungsintelligenz

Die Produktivität von Wissensarbeitern ist schwer zu quantifizieren und oft von direkten Geschäftsergebnissen entkoppelt. Das mangelnde Verständnis führt zu zahlreichen Initiativen, überhöhten Technologieausgaben und schlecht gewählten Bemühungen zur Steigerung dieser Produktivität. Sriram Narayan beginnt einen Artikel, der sich damit befasst, wie man dies vermeiden kann, indem man die geschäftlichen Auswirkungen ihrer Arbeit über ein Netzwerk entwickelt, das die Ergebnisse mit unmittelbaren und nachgelagerten Auswirkungen verbindet.

Wie weit können wir die Autonomie von KI bei der Code-Generierung treiben?

Birgitta Böckeler berichtet über eine Reihe von Experimenten, die wir durchgeführt haben, um zu untersuchen, wie weit Generative KI derzeit in Richtung einer autonomen Entwicklung hochwertiger, aktueller Software ohne menschliches Eingreifen getrieben werden kann. Als Testfall haben wir einen agentenbasierten Workflow erstellt, um eine einfache Spring Boot-Anwendung von Anfang bis Ende zu erstellen. Wir stellten fest, dass der Workflow letztendlich diese einfachen Anwendungen generieren konnte, aber wir beobachteten dennoch erhebliche Probleme bei den Ergebnissen – insbesondere als wir die Komplexität erhöhten. Das Modell generierte Funktionen, nach denen wir nicht gefragt hatten, traf wechselnde Annahmen zu Lücken in den Anforderungen und erklärte den Erfolg, selbst wenn Tests fehlschlugen. Wir kamen zu dem Schluss, dass, obwohl viele unserer Strategien – wie wiederverwendbare Prompts oder eine Referenzanwendung – für die Verbesserung KI-gestützter Workflows wertvoll sind, ein Mensch im Prozess zur Überwachung der Generierung unerlässlich bleibt.

Wer ist LLM?

Es ist zu einer gängigen Gewohnheit für Entwickler geworden, großen Sprachmodellen (LLMs) eine Persona zu geben, wenn sie mit ihnen arbeiten. Ich beschreibe vier davon: einen störrischen Esel, einen Dschinn, einen Spielautomaten und Uriah Heep.

Generative KI in Software und Essays

Korny Sietsma hat ein großartiges Beispiel dafür, wie das Verwenden eines LLM für das Coden sehr hilfreich, aber mit Einschränkungen ist… und einen nachdenklichen allgemeinen Essay darüber, warum die Hype und die unbeugsamen Skeptiker beide den Zug verpassen. Währenddessen überlegt ein Professor für Poesie (geschenkter Link) über den Wert und die Grenzen von KI im Schreiben: Eine der realen Herausforderungen hier ist die Art, wie KI den menschlichen Wert der Aufmerksamkeit untergräbt und die Individualität, die daraus resultiert. Was wir zu verlieren drohen, ist nicht nur eine Fähigkeit, sondern eine Art des Seins: die Freude an der Erfindung, das gefühlte Leben des Geistes bei der Arbeit.

Drei lesenswerte Artikel gestern

"Drei Artikel, die ich gestern genossen habe: Stephen O'Grady spricht darüber, wie Gen-AI-Werkzeuge zwei gemeinsame Konstanten bei Entwickler-Werkzeugen brechen: Sie sind bereit, zwischen Gen-AI-Werkzeugen zu wechseln, und sie sind bereit, dafür zu bezahlen. Dies impliziert, dass es nicht zu spät ist, neue Werkzeuge zu entwickeln, und dass die Unternehmensadoption durch einen Mangel an Konsens über die Richtung behindert wird. Pete Hodgson setzt seine exzellente Schreibarbeit über Gen-AI fort, indem er einen Ansatz vorschlägt, um Ingenieure in eine AI-unterstützte Zukunft zu führen, der auf dem Konzept der ausgerichteten Autonomie basiert. Er befürwortet eine explizite Experimentierphase, gefolgt von der Unterstützung der Adoption und der Messung ihrer Auswirkungen. Charity Majors reflektiert über ihre Karriere. Ich habe mich sehr mit ihren Worten identifiziert: "Ich denke, ich bin weniger an meinem eigenen Glück (was auch immer das bedeutet) interessiert als an der Arbeit, die sich lohnt.""

Ich kümmere mich immer noch um den Code

Auch mit LLMs kümmert sich Birgitta Böckeler immer noch um den Code: „LLMs sind KEINE Compiler, Interpreter, Transpiler oder Assembler natürlicher Sprache, sie sind Inferenzmaschinen.“

Warum Organisationen Experten-Generalisten benötigen

In komplexen Umgebungen machen die Eigenschaften von Experten-Generalisten Gitanjali und ich schließen unseren Artikel damit ab, dass wir den Wert dieser besonders wertvoll bei der Fertigstellung von Aufgaben sind. Unmesh, diese Fähigkeit.

Experten-Generalisten brauchen Spezialisten (und LLMs)

Obwohl wir diesen Artikel damit verbracht haben, den Experten-Generalisten zu loben, bestreiten Unmesh, Gitanjali und ich gleichzeitig nicht den Wert von Spezialwissen. Um am effizientesten zu sein, benötigt ein Team einige Spezialkenntnisse. Wir haben auch festgestellt, dass die Fähigkeiten eines Experten-Generalisten erheblich wertvoller sind, wenn man mit LLMs arbeitet.

Wachsende Fachgeneralisten

Um Experten-Generalisten heranzubilden, müssen wir unsere Aufmerksamkeit auf Grundlagen statt auf Werkzeuge richten. Als Beispiel beschreiben Unmesh, Gitanjali und ich ein Workshop-Konzept, das wir verwendet haben, um die Silos der Anwendungsentwicklung, Daten-Engineering und DevOps zu überwinden.

LLMs bringen eine neue Art der Abstraktion

Wie die meisten Großmäuler in diesem Feld habe ich viel Aufmerksamkeit auf die Rolle gelegt, die generative KI-Systeme in der Software-Entwicklung spielen könnten. Ich denke, das Auftreten von LLMs wird die Software-Entwicklung in einem ähnlichen Ausmaß ändern wie der Wechsel von Assemblern zu den ersten hochsprachigen Programmiersprachen. Die weitere Entwicklung von Sprachen und Frameworks erhöhte unser Abstraktionsniveau und unsere Produktivität, aber hatte nicht denselben Einfluss auf die Natur des Programmierens. LLMs haben denselben Einfluss, aber mit dem Unterschied, dass es nicht nur das Abstraktionsniveau erhöht, sondern uns auch zwingt, über die Bedeutung des Programmierens mit nicht-deterministischen Werkzeugen nachzudenken.

Bewertung von Fachgeneralisten

Wir haben zwei entscheidende Kontrollpunkte für das Erkennen - und dann Fördern - von Experten-Generalisten. Unmesh, Gitanjali und ich kümmern uns um die Einstellung und Karriereentwicklung.

Experten-Allrounder: drei weitere Merkmale

Unmesh, Gitanjali und ich vervollständigen unsere Liste der Merkmale eines Experten-Generalisten, indem wir beschreiben, wie diese Leute fundamentales Wissen in einem Bereich bevorzugen, über eine Kombination aus breiten und tiefen Fähigkeiten verfügen und wissen, wie sie ein ungefähres, wahrnehmendes Gefühl - eine Sympathie - für verwandte Bereiche aufbauen.

Fachübergreifende Experten: erste drei Charakteristika

"Während Computersysteme komplexer werden, haben wir einen zunehmenden Trend beobachtet, tiefe Spezialisten zu schätzen. Doch haben wir festgestellt, dass unsere effektivsten Kollegen eine Fähigkeit haben, die daraus resultiert, dass sie viele Fachgebiete abdecken. Wir beginnen daher, diese explizit als erstklassige Fähigkeit des "Experten-Allrounders" anzuerkennen. Dies ist der erste Teil eines Artikels, in dem wir darstellen, wie wir über diese Fähigkeit denken, beginnend mit den ersten drei Merkmalen eines Experten-Allrounders."

Autonome Codieragenten: Ein Codex-Beispiel

In den letzten Wochen wurden mehrere „autonome Hintergrund-Codierungs-Agenten“ veröffentlicht. Birgitta Böckeler hat versucht, OpenAI Codex eine Aufgabe zu geben, um zu sehen, was sie lernen konnte. Hier beschreibt sie einen bestimmten Codex-Lauf, um uns einen Blick hinter die Kulissen zu ermöglichen und einige Beobachtungen über seinen Beitrag zu unserer Arbeit zu machen.

Sollte ich noch Analytics verwenden?

Der Autor richtete 2010 Google Analytics auf seiner Website ein, um Seitenaufrufe zu verfolgen, und fand die Daten interessant und manchmal nützlich. Allerdings sammelt Google mehr Informationen als nur Seitenaufrufe, und der Autor findet die Überwachung zu invasiv. Nachdem er einige Informationen entdeckt hatte, änderte der Autor seinen Google-Analytics-Code, um bestimmte Überwachungsfunktionen zu deaktivieren, um einen Cookie-Banner zu vermeiden und weiterhin Seitenaufrufe zu verfolgen. Der modifizierte Code schien zunächst zu funktionieren, aber nach ein paar Wochen sanken die von Google Analytics gemeldeten Seitenaufrufe drastisch. Der Autor verwendete Google Tag Assistant, das anzeigte, dass Seitenaufruf-Ereignisse korrekt gesendet wurden, aber die Seitenaufrufe tauchten nicht in den Google-Analytics-Daten auf. Der Autor ist unsicher, wie er fortfahren soll, ohne zu viel Zeit oder Geld in die Lösung des Problems zu investieren. Er betrachtete alternative Tracking-Optionen, fand sie jedoch zu teuer, und open-Source-Lösungen zu aufwendig. Der Autor muss möglicherweise ohne Analytics leben, indem er das Schreiben und Editieren über die Verfolgung von Daten priorisiert.

Bliki: Sag, was du schreibst

Bruce Eckels Tipp für Autoren lautet, ihren Entwurf laut vorzulesen, um Teile zu identifizieren, die sich nicht richtig anhören und überarbeitet werden müssen. Dieser Rat ist besonders nützlich für Autoren, die in ihrem Schreiben einen umgangssprachlichen Ton erreichen wollen. Vorlesen hilft, schwammige Prosa zu eliminieren, die einen Unternehmens- oder akademischen Stil haben kann. Unternehmensprosa klingt oft so, als könnte sie von einer Beratungsfirma wie Accenture stammen. Auch der Passiv wird im Allgemeinen nicht bevorzugt. Das Aussprechen der Wörter während des Schreibens kann helfen, den Teil des Gehirns zu aktivieren, der gesprochene Worte verarbeitet, wodurch Fadheit leichter erkennbar wird. Das Ziel ist es, einen umgangssprachlichen Ton zu erreichen, als würde man Konzepte Freunden in einem Pub erklären. Beim Schreiben wird oft gelehrt, anders zu schreiben als zu sprechen, aber ein umgangssprachlicher Ton macht die Prosa ansprechender. Vorlesen kann helfen, schwammige Prosa zu kürzen und sie präziser und effektiver zu gestalten. Der Autor spricht die Worte ständig still aus, während er schreibt, um diesen umgangssprachlichen Ton zu erreichen.

Im Gespräch mit James Lewis auf der goto-Konferenz in Kopenhagen

"Beim Goto-Kopenhagen letzten Jahr interviewte mich mein Freund James Lewis und Goto haben gerade das Video herausgebracht. Ich spreche darin über den Zeitpunkt, als ich von Kent Beck iterative Design lernte, die Gefahren, wenn Product-Owner in die Kommunikation zwischen Business und Entwicklern eingreifen, und das Schreiben des Agilen Manifests. Er fragte mich speziell nach meinem Essay "Ist Design tot". Es gibt auch einige Fragen aus dem Publikum, ob Paar-Programmierung schlecht für Introvertierte wie uns ist (nein), und (unvermeidlich) die Rolle von LLMs für Programmierer heute."

Erneuerung des agilen Bedrohungsmodellierens

Threat Modeling ist eine Methode des Systems Engineering, bei der Teams untersuchen, wie Daten durch Systeme fließen, um zu identifizieren, was schiefgehen kann – ein täuschend einfacher Vorgang, der Sicherheitsrisiken aufdeckt, die automatisierte Tools nicht vorhersehen können. Oft wird dies von Sicherheitsanalysten als separate oder vorgelagerte Aktivität durchgeführt, aber Jim Gumbly schrieb 2020 einen Artikel, in dem er erklärte, wie dies von Teams durch kleine und regelmäßige Arbeit erfolgen könnte. Nun hat sich Gayathri Mohan Jim angeschlossen, um den Artikel neu zu schreiben und das einzubauen, was beide in den letzten Jahren über die Durchführung und das Lehren dieser Methode gelernt haben. Insbesondere haben sie ihren Ansatz erweitert, um Threat Modeling mit Plattformteams durchzuführen.

Erstellen von benutzerdefinierten Werkzeugen mit LLMs

"Werkzeuge, die Diagramme als Code behandeln, wie PlantUML, sind unschätzbar für die Kommunikation von Systemverhalten. Aber Unmesh Joshi wünschte sich oft eine Erweiterung, um diese Diagramme schrittweise durchzugehen. Doch die Erweiterung etablierter Werkzeuge wie PlantUML erfordert oft eine signifikante Anfangskonfiguration - Hooks, Build-Skripte, Viewer-Code, Verpackung - genug "Rohrleitung" um schnelles Prototyping abzuschrecken. Er erzählt jetzt, wie er ein LLM verwendete, um eine kleine Erweiterung hinzuzufügen, die schrittweise Wiedergabe von Sequenzdiagrammen in PlantUML. Dies veranschaulicht, wie Syntax-Design, Parsing, SVG-Generierung, Build-Automatisierung und ein HTML-Viewer iterativ entwickelt wurden durch ein Gespräch mit einem LLM - langweilige Aufgaben in beherrschbare Schritte umwandelnd."

Code-Assistenten bedrohen die Software-Lieferkette

Wir haben lange erkannt, dass Entwicklerumgebungen einen Schwachpunkt in der Lieferkette von Software darstellen. Jim Gumbley und Lilly Ryan erkunden, wie intelligente Codier-Assistenten die Angriffsfläche von Software-Lieferketten erweitern und welche Maßnahmen wir ergreifen müssen, um die Sicherheit bei ihrer Verwendung zu gewährleisten.

Funktionsaufruf mit LLMs

Obwohl LLMs sich durch die Erzeugung überzeugenden Textes auf Basis ihrer Trainingsdaten auszeichnen, müssen sie möglicherweise auch mit externen Systemen interagieren. Kiran Prakash beschreibt, wie wir sie dazu bringen, externe Funktionsaufrufe zu konstruieren, um dies zu bewerkstelligen. Das LLM führt diese Aufrufe nicht direkt aus, sondern erstellt stattdessen eine Datenstruktur, die den Aufruf beschreibt, und übergibt diese an ein separates Programm zur Ausführung und Weiterverarbeitung. Der Prompt des LLM enthält Details zu möglichen Funktionsaufrufen und wann diese verwendet werden sollten.

Erstellung einer TMT-Spiegelvisualisierung mit LLM

Die Erstellung einer Benutzeroberfläche, die eine reale Struktur visualisiert – wie zum Beispiel den Spiegel des Dreißig-Meter-Teleskops – mag wie eine Aufgabe erscheinen, die tiefgreifendes Wissen über Geometrie, D3.js und SVG-Grafiken erfordert. Aber mit einem Large Language Model (LLM) wie Claude oder ChatGPT muss man nicht alles von Anfang an wissen. Unmesh Joshi beschreibt, wie die Arbeit mit einem LLM ihm zu einem funktionierenden Prototyp verhalf, selbst wenn er mit der zugrunde liegenden Technologie nicht vertraut war.

Zusätzliche Erläuterungen zur Deepseek-Übersicht

Vor ein paar Monaten veröffentlichte mein Kollege Shayan Mohanty eine technische Übersicht über die Reihe von Artikeln, die die DeepSeek-KI-Modelle beschreiben. Er hat den Artikel nun überarbeitet und zusätzliche Erklärungen hinzugefügt, um ihn für diejenigen unter uns verständlicher zu machen, die keinen Hintergrund im Bau solcher Modelle haben.

Einen LLM zur Erstellung robuster Java ByteBuffer-Code anleiten

"KI-Editoren wie Cursor können mithilfe von LLMs Code mit bemerkenswerter Geschwindigkeit generieren, Boilerplate-Code übernehmen und funktionale Code-Snippets für verschiedene Aufgaben bereitstellen. Wenn jedoch robuste Systeme entwickelt werden, ist funktionale Korrektheit nur der Anfang. Der Code muss auch sicher, vorhersehbar, wartbar und frei von subtilen Nebeneffekten sein. Unmesh Joshi zeigt durch ein Gespräch zwischen einem Entwickler und einem LLM, wie wichtig die Anleitung durch Experten ist, um einen anfänglich möglicherweise unsicheren Code-Snippet in ein robustes, systemfähiges Komponenten zu verwandeln." Hinweis: LLM steht wahrscheinlich für "Large Language Model" (Großes Sprachmodell), was ein Typ von KI-Modell ist, das für die Verarbeitung und Generierung von Texten verwendet wird.

Aktualisierung des gestrigen Beitrags über soziale Medien-Interaktion

Einige Leute fragten, wie viele Menschen auf die Links in diesen sozialen Medien-Beiträgen geklickt haben. Ich habe einige weitere Informationen zum Artikel hinzugefügt, teilweise, um zu erklären, warum ich diese Informationen nicht habe, und teilweise, um die Gesamtquellendaten für den Verkehr auf der Website zu zeigen.

Soziale Medien-Engagement Anfang 2025

Vor ein paar Jahren, wenn ich hier einen neuen Artikel veröffentlichte, habe ich ihn einfach auf Twitter angekündigt. Seit dem Muskover hat dessen Bedeutung jedoch abgenommen, und jetzt poste ich Updates auf mehreren Diensten. Um das Engagement auf diesen Diensten zu vergleichen, habe ich Reposts, Likes und Antworten auf zwei Dutzend meiner jüngsten Beiträge untersucht.

Ich wurde von Robert Caro entführt.

Ich habe schon immer gerne gelesen, und den größten Teil meines Lebens habe ich mich besonders für Geschichte interessiert. Ich habe viel Gutes über Robert Caros Bücher gehört, wurde aber von ihrem Umfang abgeschreckt. Als sein erstes Buch nun endlich als E-Book erhältlich war, beschloss ich, mich endlich heranzuwagen. Die Bücher sind zu gut, als dass ich ihnen entkommen könnte.

Die Rolle von Entwicklerfähigkeiten bei agentenbasierter Codierung

Mit zunehmender Leistungsfähigkeit agentischer Coding-Assistenten lässt Birgitta Böckeler diese an bestehenden Codebasen arbeiten. Dies hat zu einigen beeindruckenden Zusammenarbeitssitzungen geführt, aber sie musste ständig eingreifen, korrigieren und steuern. In ihrem neuesten Beitrag beschreibt sie Beispiele für diese Eingriffe und gibt Hinweise auf die Fähigkeiten, die wir derzeit benötigen, um die Fehler der Tools zu korrigieren.

Kommentar zur Entfernung von 'X' in US-Pässen

Die neue US-Regierung hat beschlossen, die Option „X“ für Geschlecht/Geschlechtsidentität in Pässen abzuschaffen. Ich habe mehrere nicht-binäre Freunde und verstehe nicht, warum sie eine Option auswählen sollten, die für sie keinen Sinn ergibt. Ich verstehe auch nicht, wie eine „X“-Option auf Identitätsdokumenten ein materielles Problem für jemand anderen verursacht. Es gibt nicht viel, was ich gegen diese Änderung tun kann, aber ein kleiner Schritt ist, einen Kommentar auf dem Federal Register für solche Regeländerungen hinzuzufügen. Es gibt drei solcher Seiten: DS-11 neue Passantrag: (Frist 17.3.25) https://www.federalregister.gov/documents/2025/02/14/2025-02648/30-day-notice-of-proposed-information-collection-application-for-a-us-passport DS-82 Passerneuerung: (Frist 20.3.25) https://www.federalregister.gov/documents/2025/02/18/2025-02697/30-day-notice-of-proposed-information-collection-us-passport-renewal-application-for-eligible DS-5504 Namensänderung oder Datenkorrekturen: (Frist 20.3.25) https://www.federalregister.gov/documents/2025/02/18/2025-02696/30-day-notice-of-proposed-information-collection-application-for-a-us-passport-for-eligible Es dauerte mich nicht länger als ein paar Minuten, einen kurzen Kommentar (im Wesentlichen die ersten drei Sätze dieses Beitrags) auf allen drei Seiten zu hinterlassen. Ziemlich unbedeutend im Vergleich zu den Problemen, mit denen meine nicht-binären Freunde konfrontiert sind.

GenAI-Muster: Feinabstimmung

Obwohl RAG die gängigste Methode ist, ein Basismodell auf Material außerhalb seines Trainingsdatensatzes zu fokussieren, schließen Bharani Subramaniam und ich nun unseren aktuellen Satz von Mustern ab, indem wir unsere Erfahrungen mit Fine Tuning untersuchen, bei dem wir gelernt haben, die Zusammenstellung hochwertiger Daten zu priorisieren.

Muster für GenAI: Schutzleisten und RAG-Überblick

KI-Systeme der nächsten Generation sind leichtgläubig und können leicht dazu gebracht werden, auf Weise zu reagieren, die den Richtlinien eines Unternehmens widersprechen oder vertrauliche Informationen preisgeben. Bharani Subramaniam und ich beschreiben, wie wir diesem entgegenwirken können, indem wir Sicherheitsbarrieren an den Grenzen des Anfrage-Antwort-Flusses hinzufügen. Wir schließen unseren Diskussionsbeitrag zu RAG mit einer Übersicht darüber ab, wie alle Muster der RAG-Komponenten zusammenpassen.

Welche Rolle spielt LLM-basiertes Schlussfolgern bei Softwareaufgaben?

Neuere LLM-Modelle haben „Argumentations“-Fähigkeiten bereitgestellt. Birgitta Böckeler fragt sich, welche Rolle diese bei Codierungsaufgaben spielen. Sie hat keine Antwort, aber hat Fragen und Gedanken - und hat solche Fähigkeiten bisher nicht als nützlich empfunden.

GenAI-Muster: Re-Ranker

Große Sprachmodelle (LLMs) haben Schwierigkeiten mit großen Mengen an Kontext. Bharani Subramaniam und ich erklären, wie man dieses häufige RAG-Problem mit einem Reranker lösen kann, der die Dokumentfragmente vom Retriever übernimmt und sie nach ihrer Nützlichkeit bewertet.

Muster von GenAI: Umformulierung von Abfragen

Benutzer haben oft Schwierigkeiten, die effektivsten Abfragen zu schreiben. Bharani Subramaniam und ich erklären Query Rewriting: das Erstellen alternativer Abfragen durch ein LLM, um sie an den Retriever eines RAG zu senden.

Die DeepSeek-Serie: Ein technischer Überblick

Das Erscheinen von DeepSeek Large-Language-Modellen hat seit ihrem letzten Erscheinungstermin Anfang 2025 viel Diskussion und Unruhe ausgelöst. Doch ein großer Teil des Wertes von DeepSeeks Arbeit kommt aus den Papieren, die sie im letzten Jahr veröffentlicht haben. Shayan Mohanty gibt einen Überblick über diese Papiere und hebt drei Hauptaspekte dieser Forschung hervor: einen Fokus auf die Verbesserung der Kosten- und Speichereffizienz, die Verwendung von HPC-Co-Design zur Ausbildung großer Modelle auf begrenzter Hardware und die Entwicklung von emergentem Denken durch groß angelegtes Reinforcement Learning.

Muster von GenAI: Einschränkungen von RAG und Hybrid-Retriever

Heute skizzieren Bharani Subramaniam und ich vier Einschränkungen des einfachen RAG von gestern und das Muster, das das erste dieser Einschränkungen angeht: Hybrid Retriever. Dieser behandelt die Ineffizienzen der embeddings-basierten Suche, indem er sie mit anderen Suchtechniken kombiniert.

Podiumsdiskussion auf der GOTO Copenhagen: 'Wohin entwickelt sich die SW-Entwicklung'

War ich im September letzten Jahres bei einer Podiumsdiskussion auf der GOTO-Konferenz in Kopenhagen mit Holly Cummings, Trisha Gee, Dave Farley und Daniel Terhorst-North. Wir diskutierten den aktuellen Stand der Softwareentwicklung und wohin sie sich entwickeln würde. Angesichts des Zeitpunkts gab es viele Diskussionen über die Rolle, die KI in der Zukunft unseres Berufsstandes spielen würde.