Connect with us

Entwicklung & Code

Babelfisch für Softwarearchitekten – Kommunikation mit den Stakeholdern


In der praktischen Arbeit müssen Softwarearchitektinnen und -architekten mit Personen in vielen unterschiedlichen Positionen und Rollen zusammenarbeiten. Dabei agieren sie überwiegend ohne Macht, sie müssen also kommunikativ eher mit Motivation arbeiten statt mit der Autorität einer Führungsposition. Abbildung 1 zeigt eine Auswahl der wichtigsten Kommunikationspartner.

Weiterlesen nach der Anzeige


Michael Stal

Michael Stal

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.


Softwarearchitekten kommunizieren in ihrer Tätigkeit mit unterschiedlichsten Rollen und Personen (Abb. 1).,

Softwarearchitekten kommunizieren in ihrer Tätigkeit mit unterschiedlichsten Rollen und Personen (Abb. 1).,

Softwarearchitekten kommunizieren in ihrer Tätigkeit mit unterschiedlichsten Rollen und Personen (Abb. 1).

Natürlich sollten Softwarearchitekten darauf achten, keinen Tod durch Meetings zu erleiden. Diese sollten sich auf das notwendige Minimum beschränken, denn Überkommunikation ist genauso kontraproduktiv wie Unterkommunikation. Das Wasserfallmodell tendiert anfangs oft zu Unterkommunikation, aber in späteren Phasen, bisweilen auch Panikmodus genannt, zu Überkommunikation. In agilen Umgebungen verteilen sich im Idealfall die Kommunikationsaufwände gleichmäßig über die Projektlaufzeit.

Die Softwarearchitektur dient als verpflichtende Guideline zur Umsetzung des Problems, sprich der Anforderungen. Daher ist deren Kommunikation nicht nur für Entwickler essenziell. Für die Kommunikation empfehlen sich folgende Mittel:

Die Architekturdokumentation darf nicht nur das Was und das Wie berücksichtigen, sondern muss auch das Warum der getroffenen Architekturentscheidungen abdecken. Manchen Architekturdokumenten ist anzusehen, dass die Architekten unmotiviert ihrer Dokumentationspflicht nachgekommen sind, was die Sache für die Zielgruppen und letztendlich auch die Architekten selbst schwierig macht. Daher sollten sie sich vorher genau überlegen, welche Informationen Stakeholder wie zum Beispiel Produktmanagerinnen, Tester oder Entwickler benötigen.

Zur Strukturierung und Komplettierung dieser Dokumente empfiehlt es sich, auf ein vorhandenes Template wie arc42 zuzugreifen. Abbildung 2 zeigt die Vorgaben von arc42 mit Ebene 1 (Whitebox-Beschreibung des Gesamtsystems und Blackbox-Beschreibungen der darin enthaltenen Bausteine) und Ebene 2 (Hineinzoomen in einige Bausteine der Ebene 1). Ebene 3 würde wiederum in Ebene 2 hineinzoomen und so weiter.

Weiterlesen nach der Anzeige


Das Dokumentationstemplate arc42 enthält Vorgaben für eine geeignete und gut strukturierte Architekturdokumentation (Abb. 2)., Https://www.arc42.de

Das Dokumentationstemplate arc42 enthält Vorgaben für eine geeignete und gut strukturierte Architekturdokumentation (Abb. 2)., Https://www.arc42.de

Das Dokumentationstemplate arc42 enthält Vorgaben für eine geeignete und gut strukturierte Architekturdokumentation (Abb. 2).

(Bild: arc42)

Solche Templates basieren auf jahrzehntelangen Erfahrungen und weisen in der Regel einen Topdown-Ansatz auf, um Leser nicht zu überfordern. Natürlich dürfen die Dokumente nicht zu umfangreich sein, sondern sollten für Detailinformationen auf entsprechende Dokumente zu Subsystemen oder Komponenten verweisen. Ein Umfang von maximal 60 bis 80 Seiten pro Dokument erweist sich in der Praxis als zielführend.

Erfolgreiche Kommunikation darf sich nicht im Austausch von Dokumenten erschöpfen, sondern sollte als Multi-Channel Communication auch über Präsentationen und Workshops erfolgen. Es hat sich als vorteilhaft herausgestellt, vor der Übergabe des Architekturdokuments eine Präsentation mit den wichtigsten Kernelementen zu zeigen. Einige Unternehmen organisieren zu diesem Zweck sogar Workshops mit Nutzern und Kunden.

Um Kommunikationspartner zu überzeugen, müssen Architekten ihre Entscheidungen begründen können. Architecture Decision Records (siehe Abbildung 3) helfen dabei. Sie geben das Thema der Entscheidung an, zeigen mögliche Alternativen und erläutern, weshalb eine Alternative den Vorrang bekommen hat. Ihre Speicherung erfolgt zusammen mit der Codebasis in Source-Management-Systemen wie GitHub. Davon profitieren nicht nur Newbies, sondern alle Stakeholder, die sich über Entscheidungen informieren wollen.


Architecture Decision Records helfen, Architekturentscheidungen zu dokumentieren (Abb. 3).,

Architecture Decision Records helfen, Architekturentscheidungen zu dokumentieren (Abb. 3).,

Architecture Decision Records helfen, Architekturentscheidungen zu dokumentieren (Abb. 3).

Aus Software-Pattern (siehe Abbildung 4) entsteht eine idiomatische Sprache für effektivere Kommunikation, von der alle Beteiligten profitieren. Statt beispielsweise von einer Ereignisquelle, einer Ereignisschnittstelle und Ereignisnutzern zu sprechen, reicht die Nennung des Observer-Pattern aus. Dadurch ist es überflüssig, einzelne Klassen und Schnittstellen zu erläutern, sondern man nutzt eine höhere Abstraktionsebene. Das gilt auch für DDD-Pattern (Domain-driven Design) auf Fachdomänenebene.


Pattern wie der Activator können die Kommunikation zwischen Softwareentwicklern beträchtlich vereinfachen, weil sie auf einer höheren Abstraktionsebene aufbauen als Programmstrukturen (Abb. 4).,

Pattern wie der Activator können die Kommunikation zwischen Softwareentwicklern beträchtlich vereinfachen, weil sie auf einer höheren Abstraktionsebene aufbauen als Programmstrukturen (Abb. 4).,

Pattern wie der Activator können die Kommunikation zwischen Softwareentwicklern beträchtlich vereinfachen, weil sie auf einer höheren Abstraktionsebene aufbauen als Programmstrukturen (Abb. 4).

Das Nutzen einfacher Arbeitsmittel wie Whiteboards, Blackboards oder Flipcharts in einem Low-Tech-First-Ansatz hat viele Vorteile. Sie erlauben eine freiere und interaktivere Kommunikation sowie Zusammenarbeit und helfen, für jeden Zweck ein adäquates Mittel zu verwenden. Ohnehin erhöht häufiger Medienwechsel die Aufmerksamkeit. Ein relativ simples Verfahren besteht in Karteikärtchen, die in drei Bereiche unterteilt sind. Im oberen schlanken horizontalen Segment schreibt man einen Klassen- oder Komponentennamen (siehe Abbildung 5), darunter auf der linken Seite folgt eine Spalte „Responsibilities“ mit den Verantwortlichkeiten der Komponente und rechts daneben die Spalte „Collaborators“, also anderen Komponenten, mit denen die vorliegende zusammenarbeitet.


Mit CRC-Karten lassen sich auf einer Pinnwand sehr einfach architektonische Entwürfe durchsprechen (Abb. 5).,

Mit CRC-Karten lassen sich auf einer Pinnwand sehr einfach architektonische Entwürfe durchsprechen (Abb. 5).,

Mit CRC-Karten lassen sich auf einer Pinnwand sehr einfach architektonische Entwürfe durchsprechen (Abb. 5).

Diese CRC-Karten (Class-Responsibilities-Collaborators) lassen sich einfach erstellen, auf einer Pinnwand befestigen, gruppieren oder über Fäden verbinden. Auf diese Weise erhalten Entwurfsdiskussionen ein adäquates Tool zur Kommunikation. UML-Tools dokumentieren anschließend die Arbeitsergebnisse solcher Diskussionen in einem elektronischen Format.

Es hat sich bewährt, dass Softwarearchitektinnen und Entwickler mit Fachdomänenexperten getreu dem Ansatz des Domain-driven Design (DDD) eine Ubiquitous Language entwerfen, die die Fachkonzepte und ihre Beziehungen definiert. Dadurch lassen sich später Missverständnisse vermeiden. Die Entwicklung und Verbesserung dieser Sprache erfolgt kontinuierlich. Zusätzlich bietet DDD einen von der Problemdomäne gesteuerten Ansatz, der verhindert, dass sich Entwicklerinnen und Entwickler zu schnell auf die Lösungsdomäne stürzen. So konzentrieren sich Softwarearchitekten bei DDD auf die Entwicklung einer geeigneten Sprache für die Fachdomäne und befassen sich zu Beginn ausschließlich mit dem Problemraum beziehungsweise der Fachdomäne.

Wenn Architekten anderen Beteiligten die Dokumentation nur hinwerfen, sich aber danach nicht mehr darum kümmern, kommt es fast immer zu einer Architekturdrift. Das heißt, die Implementierung entspricht nicht dem Entwurf. Die Gründe dafür können vielfältig sein: Möglicherweise waren Entwickler unter Zeitdruck, haben die Architektur nicht verstanden oder haben aus ihrer Sicht unsinnige Entscheidungen durch eigene Alternativen ersetzt.

Daher ist es ratsam, Management by Walking zu betreiben, sich also kontinuierlich unter die Developer zu mischen, deren Feedback einzuholen und Fragen zu klären. Ebenso sollten Architekten an der Implementierung mitarbeiten, und zwar nicht nur, um der „Eat your own dog food!“-Regel zu folgen, sondern um in Kontakt mit Entwicklern zu bleiben. Es wäre allerdings kontraproduktiv, wenn Architekten im kritischen Pfad arbeiten.

Reviews besitzen neben Optimierungsaspekten auch Kommunikationsaspekte. Durch ein Architektur-Review lassen sich erfahrungsgemäß sowohl Fragen klären als auch Problematiken und Risiken aufspüren. Zudem erhöht sich das Verständnis aller Beteiligten von Problemen und der Architektur. Diesen Aspekt unterschätzen viele Projekte. Reviews sollten bei jedem Inkrement beziehungsweise Sprint erfolgen, um frühzeitig Probleme zu beheben. Das gilt selbstverständlich auch für Code oder Design Reviews.

Als leichtgewichtige Methode bieten sich Architecture Design Reviews an, um kurzfristig Feedback von Kundinnen oder Nutzern zu erhalten. Dazu stellt die Architektin Dokumente oder Entwicklungsartefakte und einen Fragebogen mit Aufgaben zusammen. Zum Beispiel hat das Entwicklungsteam eine Cloud-basierte Persistenzlösung mit AWS S3 erstellt und benötigt Feedback zur Nutzerfreundlichkeit. Die Architektin stellt die Implementierung samt Dokumentation zur Verfügung oder liefert eine URL, über die Reviewer den Dienst nutzen. Hinzu fügt sie für die Reviewer einen Fragebogen, der unter anderem abfragt: „Wie viel Zeit haben Sie benötigt, um über die API ein Verzeichnis zu kreieren und ein neues Objekt dort abzulegen?“ oder „Ist die Dokumentation aus Ihrer Sicht angemessen? Falls nein, tragen Sie bitte Verbesserungsvorschläge ein.“ Der Aufwand für solche Reviews hält sich in Grenzen, der Nutzen ist trotzdem groß. Ratsam ist, für den Verfasser des Reviews einen Tag einzuplanen und für den oder die Reviewer je einen weiteren Tag.

Knowledge Replicas: In einigen Projekten ergeben sich dadurch Stolperfallen, dass gewisse Kompetenzen nur in einzelnen Köpfen vorhanden sind. Verlässt eine Person das Unternehmen, entstehen Probleme. Daher empfiehlt sich eine Information-Sharing-Kultur, zu der auch Softwarearchitekten beitragen. Über jedes kritische Wissen sollten mehrere Personen verfügen. Die Informationen lassen sich via Coaching oder Mentoring teilen. Das gilt insbesondere für das von externen Beratern eingebrachte Wissen. Derartige Wünsche stoßen mitunter auf den Widerstand der Wissensträger, die ihren Wissensvorsprung und ihre Bedeutung für das Unternehmen dadurch sichern wollen, weshalb es entsprechender Anreize bedarf, etwa zusätzliche monetäre Vergütungen oder sichtbare Wertschätzung.

Metriken und Qualitätsprüfung durch Architekturevaluierungswerkzeuge (siehe Abbildung 6) ermöglichen die Bewertung der Architekturqualität, beispielsweise hinsichtlich Abhängigkeitszyklen, Größe der Codebasis, Fehlerbrennpunkten oder Komplexitätsaspekten. Was zunächst wie eine rein technische Facette erscheinen mag, bewährt sich auch für die Kommunikation, da reines Bauchgefühl oft nicht überzeugt. Durch handfeste Zahlen lassen sich andere Beteiligte eher dazu motivieren, Verbesserungsmaßnahmen vorzunehmen und zu finanzieren.


Architekturwerkzeuge wie Structure 101 ermöglichen die Qualitätsanalyse der eigenen Softwarearchitektur und Codebasis (Abb. 6)., Https://structure101.com

Architekturwerkzeuge wie Structure 101 ermöglichen die Qualitätsanalyse der eigenen Softwarearchitektur und Codebasis (Abb. 6)., Https://structure101.com

Architekturwerkzeuge wie Structure 101 ermöglichen die Qualitätsanalyse der eigenen Softwarearchitektur und Codebasis (Abb. 6).

Frühzeitige Klärung offener Fragen spielt beim Projektstart eine wichtige Rolle. Softwarearchitekten sollten gezielt auf andere Beteiligte zugehen, um geschäftliche Aspekte, Anforderungen oder die Teststrategie zu klären. Das gilt selbst dann, wenn andere Rollen für diese Aktivität verantwortlich sind. Oft ist beispielsweise der Anforderungskatalog verbesserungswürdig, weil wichtige Informationen oder eindeutige Prioritäten fehlen, insbesondere in Bezug auf Qualitätsattribute. Im letzteren Fall erstellen Softwarearchitekten einen Utility Tree mit selbst eingeschätzten Prioritäten. Den diskutieren sie dann mit den verantwortlichen Rollen und ergreifen so die Initiative.

Softwarearchitekten und -entwickler stehen in Projekten häufig einem nebulösen und dynamischen Umfeld gegenüber. Der Anforderungskatalog ist nicht fertiggestellt oder besitzt mangelnde Qualität. Es fehlt an Erfahrungen mit neuen Technologien, das Team verfügt über zu wenig Wissen oder Ressourcen und vieles mehr. Zwei Faktoren helfen in solchen Situationen. Zum einen bietet ein agiler Prozess mit hintereinander folgenden Sprints und dadurch schnellem Feedback Vorteile. Zum anderen müssen Architektinnen und Architekten mit der entsprechenden Courage Sachverhalte aktiv klären (siehe vorhergehender Aspekt). Sind die Anforderungen unvollständig, sorgen Softwarearchitekten im Idealfall dafür, dass zumindest die wichtigsten 20 bis 30 Prozent der Anforderungen zeitnah vorliegen. Damit können sie eine ausreichende Architecture Baseline (Basisarchitektur) gewährleisten.

Parallel zur Klärungsphase lassen sich zum einen technische Prototypen erstellen, um die Brauchbarkeit und Eigenschaften neuer oder bisher nicht verwendeter Technologien zu eruieren, und zum anderen die dafür notwendigen Fortbildungsmaßnahmen organisieren und durchführen. Dieser Ansatz stammt vom sogenannten Twin-Peaks-Modell. Auch hierfür ist die Überzeugung anderer Beteiligter notwendig.

Blinde Flecke: Wer schon einmal ein Dokument oder ein Programm erstellt und einen darin befindlichen Fehler trotz mehrfacher Prüfung einfach nicht gefunden hat, weiß, dass das Gehirn Details unbewusst verdrängen oder zu falschen Kontexten vervollständigen kann. Ein berühmtes Beispiel ist das vermeintliche Gesicht auf der Mondoberfläche. Hier können andere Mitarbeiter gut unterstützen, weshalb Pair Programming oder Pair Designing hilfreich sind.

Retrospektiven beziehen sich auf die häufig unterschätzte Aktivität, auf die Vergangenheit zurückzublicken, um daraus für die Zukunft zu lernen. Treiber sind die Fragen „Was waren die Ursachen für Fehlschläge oder Probleme?“ und „Was waren die wichtigsten Erfolgsfaktoren?“. Neben technischen Aspekten ergeben sich oft auch kommunikative Defizite, die für Unheil gesorgt haben. Wer in der Rolle des Softwarearchitekten die Vergangenheit retrospektiv analysiert, sollte sich die Frage stellen, wo er oder sie besser hätten agieren können.

Natürlich kann dieser Artikel nicht alle Eventualitäten abdecken, doch vor jeder Art von Kommunikation können sich Softwarearchitektinnen und -architekten beispielsweise folgende Fragen stellen:

  • Warum/wozu ist das wichtig?
  • Für wen ist das wichtig?
  • Was will ich erreichen?
  • Wie will ich es erreichen?
  • Was erwarten oder benötigen die Kommunikationspartner (Zuhörerkontext)?
  • Welche Persönlichkeitstypen liegen vor?
  • Was ist das notwendige und hinreichende Minimum an Kommunikation beziehungsweise wie lässt sich Communication Overflow vermeiden?
  • Welche Aufmerksamkeitsspannen haben meine Gesprächspartner?

Dazu kommt ein entscheidender und oft unterschätzter Faktor, der immer in das Kommunikationsverhalten hineinspielt: Wie schaffe ich es, einen guten Eindruck zu hinterlassen?



Source link

Entwicklung & Code

Warum Microsoft auf Anthropic setzt: Tausende Mitarbeiter testen Claude Code


Wenn ein Bäcker regelmäßig eine große Tüte Brötchen des Mitbewerbers einkauft, betreibt er entweder intensive Marktbeobachtung – oder sieht seine Bedürfnisse von seinem eigenen Produkt nicht vollständig abgedeckt. Ähnliche Fragen stellen sich Beobachter mit Blick auf Microsoft. Nach Informationen des US-Tech-Portals The Verge setzt der Software-Riese verstärkt auf das KI-Entwicklungs-Tool Claude Code von seinem Mitbewerber Anthropic. Vornehmlich zum Vergleich, wie es heißt. Doch die Intensität des Tests ist dennoch ungewöhnlich.

Weiterlesen nach der Anzeige

Laut The Verge nutzen mehrere tausend Mitarbeiter aus verschiedenen Entwicklerteams Claude Code. Beim CoreAI-Team sollen die Tests schon seit Monaten laufen. Inzwischen sei auch die „Experiences + Devices Division“ aufgefordert worden, Claude Code zu installieren. Dieses Team betreut die für Microsoft wichtigen Produkte Windows, Microsoft 365, Outlook, Teams, Bing, Edge und Surface.

Microsofts Werkzeugauswahl überrascht deshalb, weil das Unternehmen mit dem GitHub Copilot doch über ein eigenes Tool verfügt. Die in Zusammenarbeit mit OpenAI entwickelte Software sei auch weiterhin das primäre KI-Coding-Tool, betont Microsoft.

Dennoch scheint Microsoft auch ein Faible für das Konkurrenzprodukt entwickelt zu haben. Während die Software-Ingenieure beide Tools nutzen und vergleichen sollen, werden Designer und Projektmanager ohne Programmier-Erfahrung dazu ermuntert, damit zu experimentieren, etwa um Prototypen auf den Weg zu bringen. Laut dem Bericht sei aber auch ein möglicher späterer Vertrieb von Claude Code an Azure-Kunden denkbar.

Weiterlesen nach der Anzeige

Das Fachmagazin The Information zählt Microsoft zu den Top-Kunden von Anthropic. Beide Unternehmen hätten eine besondere Vereinbarung geschlossen, die Anthropic dazu verpflichte, im Umfang von 30 Milliarden US-Dollar Rechenkapazitäten von Microsofts Cloud Azure zu nutzen. Microsoft rechne umgekehrt die Kosten für die eigene Nutzung der Anthropic-Modelle auf die Verkaufsquoten für Anthropics Azure-Nutzung an. Das sei ungewöhnlich, da normalerweise nur eigene Produkte und die aus der Partnerschaft mit OpenAI auf diese Weise gefördert würden.


(mki)



Source link

Weiterlesen

Entwicklung & Code

Google stellt kostenlosen Web-Suchindex für Entwickler ein


Google hat angekündigt, den kostenlosen Zugriff auf seinen vollständigen Suchindex für Entwickler einzustellen. Neue Programmable Search Engines können ab sofort nur noch maximal 50 Domains durchsuchen. Die bisher verfügbare Option „Search the entire web“ steht für neue Engines nicht mehr zur Verfügung.

Weiterlesen nach der Anzeige

Betreiber bestehender Suchmaschinen, die mehr als 50 Domains indexieren oder den vollständigen Web-Index nutzen, müssen bis zum 1. Januar 2027 auf eine Alternative umsteigen. Google begründet den Schritt in der Ankündigung mit einer „Evolution zu fokussierten, leistungsfähigeren Lösungen“, die eine bessere Nutzererfahrung bieten sollen.

Als Ersatz für den kostenlosen Vollzugriff verweist Google auf Vertex AI Search, einen Cloud-basierten Enterprise-Dienst mit KI-gestützten Features wie konversationeller Suche und Grounding (Verankerung von KI-Antworten in verifizierbaren Datenquellen). Wer weiterhin den vollständigen Google-Index nutzen möchte, muss ein Formular ausfüllen und auf ein individuelles Preisangebot warten. Öffentliche Preise existieren nicht, frühere Paid-API-Angebote kosteten rund 5 US-Dollar pro 1000 Anfragen.

Die Custom Search JSON API wird ebenfalls eingestellt. Nutzer müssen ihre Implementierungen bis zur Frist auf Vertex AI oder den neuen Enterprise-Full-Web-Dienst portieren. Das kostenlose „Sites to search“-Feature für maximal 50 Domains bleibt erhalten und ist laut Google optimal für fokussierte, seitenspezifische Suchergebnisse gedacht.

Die Änderungen treffen besonders Entwickler von Nischensuchmaschinen, Bildungseinrichtungen und Non-Profit-Organisationen. Viele WordPress-Plugins und Drupal-Module, die auf Googles Programmable Search Engine basieren, müssen umgebaut oder eingestellt werden.

Weiterlesen nach der Anzeige

Als Alternativen bietet sich selbst gehostete Software wie Meilisearch, Typesense oder Elasticsearch an. Für Web-Index-basierte Anwendungen könnten Dienste wie Common Crawl (ein offenes Web-Archiv) in Kombination mit eigenen Modellen zum Einsatz kommen. Allerdings erreichen diese Alternativen nicht die Aktualität und Vollständigkeit des Google-Index.

Die Einschränkungen könnten in der EU kartellrechtliche Fragen aufwerfen. Als Gatekeeper im Sinne des Digital Markets Act kontrolliert Alphabet mit der Google-Suche den Zugang zu einem wesentlichen Infrastrukturelement des Internets. Offen ist, ob die Abschaffung des kostenlosen Zugriffs bei gleichzeitiger Einführung kostenpflichtiger Alternativen als wettbewerbswidrig interpretiert wird.

Google argumentiert hingegen, die Vereinfachung seines Produktportfolios diene der Qualität: „Wir vereinfachen und modernisieren unser Angebot, damit Sie das beste Werkzeug für Ihre Ziele auswählen können“, heißt es im Blogpost.


(fo)



Source link

Weiterlesen

Entwicklung & Code

Neu in .NET 10.0 [7]: Semi-Auto Properties in C# 14.0


Im Dokument „What’s new in C# 14“ beschreibt Microsoft das Schlüsselwort field, mit dem man sogenannte Semi-Auto Properties erstellen kann.

Weiterlesen nach der Anzeige


Der Dotnet-Doktor – Holger Schwichtenberg

Der Dotnet-Doktor – Holger Schwichtenberg

Dr. Holger Schwichtenberg ist technischer Leiter des Expertennetzwerks www.IT-Visions.de, das mit 53 renommierten Experten zahlreiche mittlere und große Unternehmen durch Beratungen und Schulungen sowie bei der Softwareentwicklung unterstützt. Durch seine Auftritte auf zahlreichen nationalen und internationalen Fachkonferenzen sowie mehr als 90 Fachbücher und mehr als 1500 Fachartikel gehört Holger Schwichtenberg zu den bekanntesten Experten für .NET und Webtechniken in Deutschland.

Dieses Sprachfeature gibt es allerdings bereits in der stabilen Version von .NET 9.0 – darin aber im Status „Preview“. Das heißt, dass man dafür preview setzen musste. Die Erwähnung in „What’s new in C# 14“ legt die Vermutung nahe, dass das Sprachfeature in C# 14.0 schließlich als stabil gelten wird.

Folgender Code zeigt eine Semi-Auto Property mit dem Schlüsselwort field, das automatisch ein Field für die Property anlegt:


 /// 
 /// Semi-Auto Property
 /// 
 public int ID
 {
  get;
  set // init wäre hier auch erlaubt!
  {
   if (value < 0) throw new ArgumentOutOfRangeException();
   if (field > 0) throw new ApplicationException("ID schon gesetzt");
   field = value;
  }
 } = -1;


Falls es in (älterem) Programmcode bereits ein Datenmitglied mit Namen field gibt, warnt der Compiler, dass dieses nun nicht mehr verwendet wird. Das stellt gegebenenfalls einen Breaking Change dar, wenn beispielsweise eine Serialisierung für das Datenmitglied field existiert. Entwicklerinnen und Entwickler können aber die Verwendung des alten Datenmitglieds erzwingen, indem sie @field oder this.field im Programmcode schreiben.


Codeausschnitt

Codeausschnitt

In diesem Codeausschnitt ist field doppeldeutig.


(rme)



Source link

Weiterlesen

Beliebt