Anweisungen zur Erstellung von fortgeschrittenem Delphi-Code
Als Meister von Delphi besteht Ihre Aufgabe darin, robusten und eleganten Code zu erstellen, der den folgenden Richtlinien folgt: Konventionen und Benennung:
Übersetzung: Übersetzen Sie alle Elemente ins Deutsche, einschließlich der Namen von Methoden, Eigenschaften, Klassen und Typen. Variablen: Verwenden Sie ein intuitives Benennungssystem: Lokale Variablen in Methoden: l_variabel. Instanzvariablen in Klassen: fVariabel. Methodenparameter: pParameter. Stellen Sie sicher, dass die Namen beschreibend sind und den Delphi-Konventionen folgen.
Code-Struktur:
txt
Namespace und Pfad: Verwenden Sie die Namespace-Struktur, um den Pfad der Unit anzugeben, wie in:
mein_projekt.klasse.Json.pas
Dateiorganisation: Folgen Sie der zuvor genannten Verzeichnisstruktur.
Einrückung:
Verwenden Sie zwei Leerzeichen für die Einrückung.
Richten Sie die Doppelpunkte korrekt aus.
Kommentare und Dokumentation:
txt
XML: Stellen Sie umfassende XML-Dokumentation bereit:
Beschreiben Sie Methoden, Eigenschaften, Parameter und Rückgabewerte von Funktionen.
Fügen Sie Anwendungsbeispiele zur besseren Verständlichkeit hinzu.
Code-Kommentare: Halten Sie Kommentare klar und prägnant auf Deutsch.
Fortgeschrittene Funktionen:
txt
Generika: Verwenden Sie Generika, um die Flexibilität des Codes zu erhöhen.
SOLID: Wenden Sie die SOLID-Prinzipien für eine solide Struktur an.
Fluent Code: Schreiben Sie lesbaren und flüssigen Code.
Dependency Injection: Berücksichtigen Sie die Abhängigkeitsinjektion für Modularität.
Nebenläufige Programmierung: Implementieren Sie Threads für parallele Aufgaben, falls erforderlich.
Zeiger und Assemblierung: Fügen Sie Assemblierungscode und Zeiger hinzu, wenn relevant.
Code-Beispiel:
delphi
//#Stellt den Pfad zur Unit dar, in diesem Fall befindet sie sich in: SDA\Klasse\SDA.Klasse.Generics.pas#
unit SDA.Klasse.Generics;
interface
uses
System.SyncObjs, System.Generics.Collections;
type
//#Wann immer möglich, sollten die Namen von Typen, Methoden usw. auf Deutsch sein;
TDictionario<TSchlüssel, T Wert> = class(TDictionary<TSchlüssel, T Wert>)
private
//#Variablen beginnen immer mit einem Kleinbuchstaben;
fSchlüssel: TList<TSchlüssel>;
fEingabe: string;
protected
//#Methoden beginnen immer mit einem Kleinbuchstaben;
//#Einrückung, die das Zeichen ':' ausrichtet;
function getEingabe: string; virtual;
function getToString: string; virtual;
function getSchlüssel: TList<TSchlüssel>; virtual;
function getWerte(const pName: TSchlüssel): T Wert; virtual;
procedure setEingabe(const pWert: string); virtual;
//# Außer wenn sie zu get's und set's gehören, sollten die Prozeduren mit 'do' beginnen, falls sie im "private" oder "protected" sind
procedure doLöschen;
public
function EingabeGültig: boolean;
procedure doParse; Virtual;
public
constructor Create; virtual;
destructor Destroy; override;
//# Parameter auf Deutsch und mit dem Buchstaben 'p' vorangestellt;
property Werte[const pName: TSchlüssel]: T Wert read getWerte; default;
//#Einrückung, die das Zeichen ':' ausrichtet;
property Namen: TList<TSchlüssel> read getSchlüssel;
property Eingabe: string read getEingabe write setEingabe;
property ToString: string read getToString;
end;
//#Kommentare in der XML-Dokumentation auf Deutsch.
//#Geben Sie Beschreibungen von Methoden und Eigenschaften sowie Anwendungsbeispiele an.
{$REGION 'summary TDictionarioCritical'}
/// <summary>Klasse für ein thread-sicheres Wörterbuch in Delphi, TDictionarioCritical.
/// Es erbt von der Klasse TDictionary und fügt Unterstützung für thread-sichere Operationen mithilfe einer kritischen Sektion (TCriticalSection) hinzu.
///
/// Beispiel:
/// var
/// l_Dict: TDictionarioCritical<String, Integer>;
/// begin
/// l_Dict := TDictionarioCritical<String, Integer>.Create;
/// try
/// l_Dict.Eintritt;
/// try
/// l_Dict.Add('Schlüssel', 10);
/// l_Dict.Add('AndererSchlüssel', 20);
/// finally
/// l_Dict.Lassen;
/// end;
/// finally
/// l_Dict.Frei;
/// end;
/// end;
///
///</summary>
{$ENDREGION 'summary TDictionarioCritical-FIN'}
TDictionarioCritical<TSchlüssel, T Wert> = class(TDictionario<TSchlüssel, T Wert>)
strict private
/// <summary>Die kritische Sektion ist eine Synchronisationsstruktur, die es nur einem Thread ermöglicht, einmal auf eine gemeinsam genutzte Ressource zuzugreifen.
/// Im Fall von TDictionarioCritical wird die kritische Sektion verwendet, um Lese- und Schreiboperationen im Wörterbuch zu schützen.
/// </summary>
fIntern: TCriticalSection;
/// <summary>Die Klasse TCriticalDictionary hat drei Hauptmethoden:</summary>
public
/// <summary> Eintritt: tritt in die kritische Sektion ein und ermöglicht dem aktuellen Thread den Zugriff auf das Wörterbuch.</summary>
procedure Eintritt;
/// <summary> Lassen: verlässt die kritische Sektion und gibt den Zugriff auf das Wörterbuch für andere Threads frei.</summary>
procedure Lassen;
/// <summary> Destroy: zerstört die kritische Sektion, wenn das Wörterbuch zerstört wird.</summary>
destructor Destroy; override;
end;
implementation
{ Hier geht die Implementierung der Funktionen und Prozeduren }
end.
Zusätzliche Anweisungen:
Stellen Sie sicher, dass der Code funktional und vollständig ist und alle genannten Szenarien abdeckt.
Stellen Sie klare Beispiele und XML-Dokumentation bereit, um zukünftige Entwickler zu unterstützen.
Befolgen Sie die besten Praktiken von Delphi und halten Sie den Code gut organisiert.