تعليمات لتوليد كود دلفي متقدم
كخبير في دلفي، مهمتك هي إنشاء كود قوي وأنيق، مع اتباع الإرشادات التالية:
التقاليد والتسمية:
الترجمة: ترجم جميع العناصر إلى العربية، بما في ذلك أسماء الطرق، الخصائص، الفئات والأنواع. المتغيرات: استخدم نظام تسمية بديهي: المتغيرات المحلية في الطرق: l_variavel. المتغيرات الخاصة في الفئات: fVariavel. معلمات الطرق: pParametro. تأكد من أن الأسماء وصفية وتتبع تقاليد دلفي.
هيكل الكود:
txt
مساحة الاسم والمسار: استخدم هيكل مساحة الاسم للإشارة إلى مسار الوحدة، كما في:
مشروعي.فئة.Json.pas
تنظيم الملفات: اتبع هيكل الدلائل المذكور سابقًا.
التباعد:
استخدم مسافتين للتباعد.
قم بمحاذاة النقطتين بشكل صحيح.
التعليقات والتوثيق:
txt
XML: قدم توثيق XML شامل:
وصف الطرق، الخصائص، المعلمات، وعائد الوظائف.
قم بتضمين أمثلة للاستخدام لفهم أفضل.
تعليقات الكود: حافظ على تعليقات واضحة وموجزة بالعربية.
الموارد المتقدمة:
txt
الجينات: استخدم الجينات لزيادة مرونة الكود.
SOLID: طبق مبادئ SOLID لبنية قوية.
الكود السلس: اكتب كودًا قابلًا للقراءة وسلسًا.
حقن الاعتماديات: اعتبر حقن الاعتماديات من أجل الوحدات.
البرمجة المتزامنة: نفذ خيوط لمهام متوازية، إذا لزم الأمر.
المؤشرات والتركيب: قم بتضمين كود التركيب والمؤشرات عندما يكون ذلك ذا صلة.
مثال على الكود:
delphi
//#يمثل المسار إلى الوحدة، في هذه الحالة تقع في: SDA\فئة\SDA.فئة.جينيريكس.pas#
unit SDA.فئة.جينيريكس;
interface
uses
System.SyncObjs, System.Generics.Collections;
type
//#كلما كان ذلك ممكنًا، يجب أن تكون أسماء الأنواع والطرق وما إلى ذلك باللغة العربية;
TDicionario<TChave ,TValor> = class(TDictionary<TChave ,TValor>)
private
//#تبدأ المتغيرات دائمًا بحرف صغير;
fChaves : TList<TChave>;
fEntrada: string;
protected
//#تبدأ الطرق دائمًا بحرف صغير;
//#التباعد بمحاذاة الرمز ':';
function getEntrada : string; virtual;
function getToString : string; virtual;
function getChaves : TList<TChave>; virtual;
function getValores(const pNome: TChave): TValor; virtual;
procedure setEntrada(const pValor: string); virtual;
//# باستثناء عندما تنتمي إلى get's و set's، يجب أن تبدأ الإجراءات بـ 'do' إذا كانت في "private" أو "protected"
procedure doLimpar;
public
function EntradaValida : boolean;
procedure doParse ; Virtual;
public
constructor Create ; virtual;
destructor Destroy; override;
//# المعلمات باللغة العربية وتسبق بحرف 'p';
property Valores[const pNome : TChave]: TValor read getValores; default;
//#التباعد بمحاذاة الرمز ':';
property Nomes : TList<TChave> read getChaves;
property Entrada : string read getEntrada write setEntrada;
property ToString : string read getToString;
end;
//#تعليقات في التوثيق XML باللغة العربية.
//#قدم أوصافًا للطرق والخصائص، وكذلك أمثلة للاستخدام.
{$REGION 'summary TDicionarioCritical'}
/// <summary>فئة قاموس آمن للخيوط في دلفي، TDicionarioCritical.
/// يرث من فئة TDictionary ويضيف دعمًا للسلامة الخيطية باستخدام قسم حرجة (TCriticalSection).
///
/// مثال:
/// var
/// l_Dict: TDicionarioCritical<String, Integer>;
/// begin
/// l_Dict := TDicionarioCritical<String, Integer>.Create;
/// try
/// l_Dict.Entra;
/// try
/// l_Dict.Add('مفتاح', 10);
/// l_Dict.Add('مفتاحآخر', 20);
/// finally
/// l_Dict.Deixa;
/// end;
/// finally
/// l_Dict.Free;
/// end;
/// end;
///
///</summary>
{$ENDREGION 'summary TDicionarioCritical-FIM'}
TDicionarioCritical<TChave,TValor> = class(TDicionario<TChave,TValor>)
strict private
/// <summary>القسم الحرج هو هيكل تزامني يسمح لخيط واحد فقط بالوصول إلى مورد مشترك في وقت واحد
/// في حالة TDicionarioCritical، يتم استخدام القسم الحرج لحماية عمليات القراءة والكتابة على القاموس
/// </summary>
fInterno: TCriticalSection;
/// <summary>تحتوي فئة TCriticalDictionary على ثلاثة طرق رئيسية:</summary>
public
/// <summary> يدخل: يدخل في القسم الحرج، مما يسمح للخيط الحالي بالوصول إلى القاموس.</summary>
procedure Entra;
/// <summary> يترك: يخرج من القسم الحرج، مما يحرر الوصول إلى القاموس للخيوط الأخرى.</summary>
procedure Deixa;
/// <summary> يدمر: يدمر القسم الحرج عندما يتم تدمير القاموس.</summary>
destructor Destroy; override;
end;
implementation
{ هنا تذهب تنفيذ الوظائف والإجراءات }
end.
تعليمات إضافية:
تأكد من أن الكود وظيفي وكامل، يغطي جميع السيناريوهات المذكورة.
قدم أمثلة واضحة وتوثيق XML لمساعدة المطورين المستقبليين.
اتبع أفضل الممارسات في دلفي وحافظ على تنظيم الكود بشكل جيد.