أفكار البرمجة الشيئية في دلفي
ليو ييتشو
مقدمة
المرة الأولى التي عرفت فيها دلفي لم تكن بسبب برنامج دلفي الخاص بشركة بورلاند، بل لأنني قرأت الكلمة في عمل أفلاطون الكلاسيكي "حوارات أفلاطون" "الدفاع".
ذهب صديق لي
دلفي هي المكان الذي يعيش فيه أوراكل، إله النبوة. تسجل "حوارات أفلاطون" أن أحد أصدقاء سقراط ذهب إلى دلفي ليسأل بيثيان، إلهة النبوة، من هو الشخص الأكثر حكمة. قال البيثيون أنه لا يوجد أحد أكثر حكمة من سقراط. كان سقراط في حيرة شديدة لأنه وجد نفسه محاطًا بالسياسيين والشعراء والفلاسفة والفنانين. أليس هؤلاء "الخبراء" و"السلطات" أكثر حكمة؟ أنا أسوأ منهم بكثير.
زار سقراط هؤلاء "الخبراء" و"السلطات" واحدًا تلو الآخر، لكنه وجد أنهم غالبًا ما كانوا من أصحاب الحق الذاتي، ويخدعون أنفسهم ويتظاهرون بمعرفة أشياء لم يفهموها. ومن خلال الزيارة، اكتشف سقراط أيضًا أنه لا يعرف سوى القليل جدًا في العديد من الجوانب. لكن سقراط لم يتظاهر بالفهم، بل اعترف بجهله. هذا ما تسميه بيثيان، إلهة النبوة، "الحكمة" الحقيقية.
في الواقع، لم يكن اليونانيون القدماء هم أول من اقترح هذا النوع من الحكمة. قبل وقت طويل من سقراط، كان لاو تزو في بلادنا قد لخص هذا الأمر بالفعل. يقال في الطاو تي تشينغ: "من يعرف الآخرين فهو حكيم، ومن يعرف نفسه فهو حكيم".
الآن، دلفي التي نستخدمها هي بالفعل لغة برمجة ممتازة وأداة لتطوير البرمجيات. ومع ذلك، في مواجهة دلفي العميقة والمتطورة باستمرار، ما زلنا نعرف القليل جدًا عن العديد من الجوانب. ولكن عند تعلم واستخدام دلفي، هل لدينا أيضًا موقف المعرفة الذاتية لسقراط وحكمة معرفة كل شيء؟
هناك العديد من الأصدقاء الذين اختاروا دلفي، قد تكون الفكرة الأولية هي أن دلفي قوية وسهلة التعلم والاستخدام. حتى أنهم زعموا أنهم يتقنون لغة دلفي في ثلاثة أشهر، وتجرأوا على تطوير البرمجيات بشكل مستقل في نصف عام. في الواقع، كل ما يمكنهم فعله هو سحب وإسقاط عناصر التحكم. عندما يكونون في حالة سكر من برامجهم الخاصة، فإنهم في الواقع في حالة سكر من حكمة دلفي الرائعة وضوابط الآخرين. غالبًا ما يُطلق على هذا النوع من مبرمجي دلفي لقب "المماطل" من قبل الآخرين. لكن يبدو أنهم يعتبرون أنفسهم أساتذة دلفي.
هناك أيضًا العديد من الأصدقاء الذين تخلوا عن دلفي، قد تكون الفكرة الأولية هي أنهم يعتقدون أن دلفي مجرد أداة RAD مشابهة لـ VB. من وجهة نظرهم، دلفي هي مجرد برمجة للتحكم ولا يمكنها تنفيذ OOP حقًا مثل C++ أو Java. إنهم يشككون فيما إذا كانت دلفي تتمتع بخصائص لغة البرمجة الشيئية وما إذا كانت قادرة على تنفيذ تقنيات موجهة للكائنات مثل تعدد الأشكال والأنماط. في نظرهم، فقط أولئك الذين يستخدمون C++ أو Java هم أسياد حقيقيون.
إذًا، ما هو السيد الحقيقي، وكيف يمكن للمرء أن يصبح كذلك؟
أولاً، دعونا نلقي نظرة على ما هو سيد الفنون القتالية، ربما يمكننا الحصول على الإلهام منه.
كل من يحب الفنون القتالية أو روايات الفنون القتالية يعلم أن هناك طريقتين لممارسة الفنون القتالية: التدريب الخارجي والتدريب الداخلي. التدريب الخارجي للقبضات والركلات والأسلحة، وجودة القبضات والركلات والأسلحة هو الأساس؛ التدريب الداخلي لتشي، والتدريب على تحسين تشي، وتدريب الروح واستعادة الضعف. الفرق الأكبر بين هاتين الطريقتين للزراعة يكمن في العلاقة الوظيفية بين الوقت والمهارة، كما هو مبين في الشكل 1. من حيث الشخص العادي، في السنوات الثلاث الأولى، أولئك الذين يمارسون المهارات الخارجية يمكنهم بسهولة هزيمة أولئك الذين يمارسون المهارات الداخلية؛ في السنة العاشرة، لا يمكن للجانبين التعادل إلا بعد 15 عامًا، بغض النظر عن كيفية ممارسة المهارات الخارجية، فلن تتمكن من منافسة من يمارسون المهارات الداخلية. وبعد مرور 20 عامًا، أصبح سيد القوة الداخلية لا يقهر في العالم. السبب يكمن على وجه التحديد في العلاقة الجدلية بين "تشي" و "تشي".
"الأسلحة" هي أشياء ملموسة، والسيوف والبنادق والسيوف والمطردات كلها أسلحة ملموسة. ممارسة الفنون القتالية في الخارج لا تنفصل عن هذه الأسلحة الملموسة، وممارسة الفنون القتالية هي تدريب على الأسلحة. لذلك، غالبًا ما يعتمد أساتذة الفنون القتالية الذين يستخدمون البنادق والسيوف على جودة الأسلحة.
"تشي" مادة غير مرئية، وكل الحكمة والقوة السحرية والأفكار كلها مواد غير مرئية. لا يمكن فصل زراعة كيغونغ الداخلية عن هذه الصفات غير الملموسة. إن ممارسة كيغونغ هو تدريب تشي. لذلك، لا يحتاج أساتذة فنون الدفاع عن النفس الحقيقيون في كثير من الأحيان إلى الاعتماد على أسلحة محددة. بالنسبة لهم، يمكن تحويل أي شيء ملموس إلى سلاح وفقًا للروح. المروحة القابلة للطي أو مضرب الذبابة في يده قوية مثل الرمح أو السيف الشهير، وذلك بسبب اكتساب تشى.
الشكل 1: الرسوم البيانية لوظيفة الوقت والمهارة لطريقتين للزراعة
في تطوير البرمجيات، أدوات البرمجة هي "الأدوات" وأفكار البرمجة هي "تشي".
ومن بين أدوات البرمجة، الأدوات سهلة الاستخدام مثل VB وPB، والأدوات صعبة الاستخدام مثل Assembly وC++، والأدوات القديمة مثل FORTRAN وCOBOL، والأدوات العصرية مثل Java وC#.
في التفكير البرمجي، هناك تفكير موجه نحو الكائنات وموجه نحو العملية، وهما رؤية عالمية ومنهجية. الأول يعكس الطريقة التي يفكر بها الناس في الأشياء الموضوعية، والثاني يعكس الطريقة التي تفكر بها الآلات في التعليمات. في الممارسة المستمرة لتطوير البرمجيات، ينعكس ويؤكد تفوق الأول باستمرار.
إن إتقان أفكار البرمجة الموجهة للكائنات يشبه اكتساب المعنى الحقيقي لتدريب Qi. غالبًا ما تتفوق أهميتها على اختيار لغة البرمجة!
حتى لو اختار شخص ما الأدوات الموجهة للكائنات، فلا يزال غير قادر على أن يصبح سيدًا حقيقيًا. لأن ما يقدره هو جودة "تشي" ويتجاهل زراعة "تشي".
في الواقع، "لا يهم ما إذا كان النظام أو اللغة موجهة للكائنات. ما يهم هو كيف يمكن أن تكون موجهة للكائنات وما هي الأساليب المستخدمة لتحقيق الفوائد ذات الصلة." ("الطريقة الموجهة للكائنات: المبادئ والممارسة" مطبعة صناعة الآلات، مارس 2003)
على الرغم من أنه من السهل ممارسة الأسلحة، فمن الصعب أن تصبح سيدًا. على الرغم من أن تدريب تشي جيد، إلا أن النتائج بطيئة والوحدة لا تطاق. لا يمكن للأشخاص العاديين أن يفهموا ذهنهم بوضوح ويتبعوا الطريق الصحيح. ولذلك، فإن العديد من أساتذة فنون الدفاع عن النفس يمارسون الأسلحة أولاً ثم يمارسونها داخليًا وخارجيًا لتحقيق النجاح.
بالنسبة للوافدين الجدد إلى عالم الفنون القتالية، فإنهم بحاجة إلى استخدام قوة الأسلحة للتعويض عن افتقارهم إلى القوة الداخلية. غالبًا ما تكون جودة الأسلحة مهمة جدًا. ولكن مع زيادة فنون الدفاع عن النفس وتطور القوة الداخلية، يجب أن ينخفض الاعتماد على الأسلحة. "أسطورة أبطال كوندور" يمارس يانغ قوه فن المبارزة. عندما يتعلم لأول مرة، يحب استخدام السيوف الحادة، وبعد أن يصبح ماهرًا في فن المبارزة، يحب استخدام السيوف الحادة، وبعد أن يتقن مهاراته الداخلية، يمكن أيضًا استخدام أغصان الأشجار يمكن استخدامها كسيوف. لذلك بالنسبة للسادة الحقيقيين، فإن جودة السيف غالبًا لا تهم.
وبالمثل، فإن نمو أساتذة البرمجيات يمر أيضًا بهذه العملية. يحتاج المبتدئون في البرمجة إلى اختيار لغة جيدة، يمكنها تحقيق نتيجة مضاعفة بنصف الجهد، مع تحفيز الاهتمام وتعزيز الثقة. بمجرد أن تعتاد على لغة ما، يجب عليك استغلالها كفرصة لإتقان أفكار البرمجة الموجهة للكائنات. في هذا الوقت، ما كنت على دراية به لم يعد القواعد والوظائف والمكتبات الطبقية للغة نفسها، ولكن أساليب التفكير مثل الربط وتعدد الأشكال والأنماط وما إلى ذلك، ومن ثم عن طريق القياس، ليس من الصعب تعلمها اللغات الأخرى الموجهة للكائنات. إن أساتذة البرمجيات الحقيقيين الذين يعملون بجد على تحسين مهاراتهم الداخلية، ولديهم الشجاعة للممارسة، وينجحون في نهاية المطاف، لا يقتصرون على لغات البرمجة. ربما يكونون على دراية بأداة التطوير، لكنها مجرد أداة تحمل روحهم غير المرئية. إنهم منفتحون ومتشوقون للتعلم وجيدون في التلخيص. إن أفكارهم وأساليبهم ونماذجهم وحتى فلسفاتهم لا تتجاوز لغات البرمجة فحسب، بل يمكنها أيضًا توجيه ممارسة لغات البرمجة.
توفر دلفي اختصارًا لنمو أساتذة البرمجيات داخليًا وخارجيًا. عند تعلم دلفي وممارستها، يمكنك استخدام مزايا RAD والتحكم فيها لهزيمة خصومك بسرعة عندما تبدأ للتو؛ عندما تتعلم وتمارس دلفي، يمكنك أيضًا استخدام قدرات OOP الخاصة بها، وقوة VCL، وقوتها من لحم الخنزير المقدد لتحقيق النجاح الذي لا يقهر.
تم تقسيم طائفة سيف هواشان المشهورة عالميًا إلى "طائفة السيف" و"طائفة تشي". كانت الطائفة الأولى تمارس الأسلحة وتدرس الحركات فقط؛ بينما تمارس الأخيرة أيضًا تشي وتعيد بناء الأساس.
إن تعلم لغة دلفي يشبه ممارسة فن المبارزة في هواشان. إن اتباع مسار RAD هو "Sword Master"، والبدء من OOP هو "Air Master". الأول يحب استخدام عناصر التحكم ويهتم بالتقنيات والحيل الغريبة؛ أما الأخير فهو مغرم بالأشياء ومهتم بأنماط الأساليب. فالأول يسعى إلى تحقيق نتائج سريعة، بينما الثاني لديه تطلعات عالية.
أعتقد أن الأصدقاء الذين اختاروا دلفي لـ RAD أو تخلوا عن دلفي بسبب OOP لا يفهمون دلفي حقًا. يعد Delphi برنامجًا جيدًا لتطوير RAD، ولكن من الصعب أن تصبح محترفًا حقيقيًا دون تعلم OOP والتعمق في VCL. وبالمثل، فإن دلفي هي أداة برمجة OOP أصلية، فبالدمج مع RAD القوي والمترجم الفعال من دلفي، يمكن أن تتمتع بمزايا أكثر وكفاءة أعلى من لغات OOP الأخرى. إذا تمكنا من كسر وجهات النظر الطائفية، وممارسة "qi" و"qi" معًا، وممارسة كل من الداخل والخارج، فأعتقد أنه لن يكون من الصعب على مبرمجي دلفي أن ينمووا من RAD سريعًا إلى سيد OOP، وفي النهاية يصبحون فخور بالعالم ويهيمن على العالم.
في وقت سابق ناقشت بإيجاز العلاقة الجدلية بين "تشي" و "تشي". في البرمجة، أحد مفاتيح تنمية القوة الداخلية وتحسينها هو إتقان فكرة البرمجة الشيئية. في الواقع، أعتقد أن البرمجة الشيئية هي الأكثر انسجامًا مع جمال الحقيقة غير المرئية للطريق.
لماذا تقول ذلك؟ "التحول العظيم في العصور القديمة ولد مع غير المرئي" (رد الفعل الثاني في "Guiguzi" يكمن سر تشي أولاً في "التحول الكبير"). والتغيير العظيم هو خلق السماء والأرض العظيم، الذي يجمع كل قوى الخلق والتغيير. يتمتع التفكير البرمجي الموجه للكائنات بهذه الجودة.
قال لاوزي: "البداية المجهولة للسماء والأرض هي اسم أم كل الأشياء". الشيء الأكثر غموضًا فيما يسمى بطريقة التفكير الموجهة للكائنات هو كيفية تحديد وتعريف الكائنات من "غير المسماة" وكيفية إنشاء واستخدام الكائنات من "المسمى".
بالنسبة لمطوري البرمجيات، فإن عملية فهم الكيانات الموضوعية وتحليل وتصميم احتياجات المستخدم هي عملية اكتشاف وتعريف الكائنات، وهي عملية من المجهول إلى المشهور. ومع ذلك، فإن الكائنات هنا تختلف عن المتغيرات أو الوظائف في العمليات الموجهة نحو العمليات. يتم إنشاء الكائنات بواسطة الفئات، وهي مفاهيم مجردة، و"أسماء" قابلة للتعريف، وهي أم الكائنات.
ونتيجة لذلك، أنجبت تاي تشي ليانغ يي، وأنجبت ليانغ يي باغوا. ومن خلال الميراث واشتقاق الطبقات، ولدت كل الأشياء وتشكلت الأنظمة.
حتى "الأداة" كأداة برمجة موجهة للكائنات تجسد أيضًا وتحمل "qi" لأفكار البرمجة الموجهة للكائنات.
الجملة الأولى في الفصل الافتتاحي من "Zhou Yi Shen Tong Qi"، وهو عمل كلاسيكي لتدريب الطاقة الداخلية المعروف باسم "ملك الكيمياء الأبدية سوترا"، هي "الكون هو بوابة يي، أصل جميع المخططات السداسية". كان لي كوانغ قوه، المحور الرئيسي لمركز الحركة، أنثى يُعتقد أن الأشكال السداسية الأربعة لـ Mu هي "Pu".
من منظور تطوير البرمجيات، على الرغم من أن أدوات البرمجة الموجهة للكائنات توفر إمكانية بناء أنواع لا حصر لها من أنظمة البرمجيات، إلا أن هذه اللانهاية مبنية ضمن الإطار المحدود لمكتبة فئتها الخاصة. سواء أكان ذلك VCL الخاص بـ Delphi، أو مكتبة فئة Java، أو إطار عمل .net، فكلها مبنية على مثل هذا الهيكل المشابه لـ Zhouyi Bagua. "من السهل أن يكون لديك تاي تشي، تاي تشي ينتج يانج، ويانج اثنين ينتجان أربع صور، وأربع صور تنتج باغوا." هذا الهيكل لا تشوبه شائبة وله إبداع لا نهاية له.
Taiji هو كائن في دلفي، وهو ذرة نظام البناء، وهو سلف جميع الفئات، وله الخصائص الأساسية لجميع الفئات. في عالم برمجة دلفي، تقوم فئة الجذر TObject بإنشاء فئة الكائن المستمر TPersistent، وتقوم فئة الكائن المستمر TPersistent بإنشاء فئة الكائن المكون TComponent، والتي توفر عناصر تحكم غنية ووظائف قوية لتطوير التطبيقات.
ومع ذلك، فإن الإطار الهيكلي لمكتبة الفصل لا يمنحنا فقط المكونات التي يمكن استخدامها كـ "أدوات"، ولكن الأهم من ذلك، أن هذا الهيكل يحقق بناء وتغيير "qi" من خلال العلاقة والوظائف ذات الصلة بين الفئات، مما يعكس الكائن- الموجهة جوهر التفكير البرمجي. يقدم عرضًا ممتازًا لنا لإنشاء أنظمتنا الخاصة.
اللغز الثاني لتشي يكمن في "أصلها غير المرئي". الخفاء يعني حريته وانفتاحه وقدرته على التكيف. إن فكرة البرمجة الشيئية مليئة بالحكمة غير المرئية لـ "qi".
على سبيل المثال، تعدد الأشكال في البرمجة كائنية التوجه يسمح للمبرمجين بكتابة برامج أكثر تنوعًا وانفتاحًا. يمكن للمبرمجين كتابة طريقة مجردة افتراضية خالصة Stop() لكائن السيارة. مثل هذه الطريقة Stop() العالمية لا علاقة لها بالسيارة. يمكن للمبرمجين ترك الفئات المشتقة تقلق بشأن إكمال طريقة stop() ومواصلة كتابة الإجراءات العامة الخاصة بهم على مستوى أعلى من التجريد. حتى لو كانت طريقة stop() لكائن السيارة مختلفة تمامًا عن طريقة stop() لكائن Bike، فيمكن للمبرمج أيضًا استخدام Vehicle.stop(). يسمح تعدد الأشكال للكائن الذي تم إنشاؤه بمعرفة الطريقة المناسبة التي سيتم استدعاؤها تلقائيًا . وهذا يمنح البرنامج انفتاح "qi" وقدرته على التكيف.
في ممارسة كيغونغ، يتم التأكيد على أن "الفضيلة العليا هي التقاعس عن العمل، ولا يتم البحث عنها من خلال الملاحظة. أما الفضيلة الأدنى فتتم ممارستها، وسيتم استخدامها إلى ما لا نهاية ("Zhou Yi Shen Tong Qi").
في تفكير البرمجة الشيئية، "Shangde" هي طريقة مجردة افتراضية خالصة متأخرة الربط، وهي واجهة كائنية تظل دون تغيير وتتكيف مع التغييرات المتغيرة باستمرار، وهي درجة عالية من تجريد الأشياء، وهي ميتافيزيقا . "Shangde Wuwei" يعني أنه على المستوى المجرد، ينعكس الجانب "الافتراضي" من البرمجة من خلال التقاعس عن العمل، لأنه في هذا الوقت، لا يمكن تحديد الكائن الحقيقي المستخدم فعليًا (قد يكون كائن سيارة أو كائن دراجة، أو هو قد يتم اختراعه لاحقًا) كائن نقل جديد)، "لا يعتمد على الملاحظة" يتطلب منا القفز من قيود الاحتياجات المحددة وعدم النظر في كود التنفيذ المحدد. لذلك، لا يوجد تنفيذ للتعليمات البرمجية في الأساليب التجريدية الافتراضية الخالصة أو واجهات الكائنات.
في التفكير في البرمجة الموجهة للكائنات، يشير مصطلح "Xiaode" إلى تغطية الأساليب المجردة الافتراضية النقية وتنفيذ واجهات الكائنات. يوفر "افعل ذلك بأخلاق" تنفيذًا حقيقيًا للتعليمات البرمجية. "يتم استخدامه إلى ما لا نهاية" لتلبية الاحتياجات المتغيرة باستمرار.
يتيح تعدد الأشكال للمبرمجين استخلاص الكائنات وتنفيذ البرامج لاحقًا دون بذل الكثير من الجهد. لا يهم إذا كان المبرمج يقوم ببناء تطبيقات للسيارات والدراجات ولا يعلم بوجود الشاحنات. يمكن للمبرمجين كتابة أساليب stop() المتجاوزة لفئات السيارات والدراجات التي ترث فئة المركبات. بهذه الطريقة، في البرنامج، طالما تم تحويل كائنات السيارة والدراجة التي تم إنشاؤها إلى نوع المركبة، وتم استخدام طريقة Stop() للمركبة، يمكن ربط كائنات السيارة والدراجة ديناميكيًا بالتوقف() الطريقة التي تلبي متطلباتهم الخاصة. حتى إذا تمت إضافة كائن Truck لاحقًا، فسيظل يتم استدعاء أسلوب Stop() الخاص بالمركبة، ولا يلزم إجراء أي تغييرات أخرى على البرنامج.
"الأشياء طبيعية، والأشياء مجتمعة ومنفصلة. بعضها قريب ولكن لا يمكن رؤيته، وبعضها بعيد ويمكن معرفته. وتلك القريبة ولكن لا يمكن رؤيتها لا يمكن فهمها، وتلك البعيدة يمكن رؤيتها ، ولكن يمكن رؤيتها في المستقبل." ("غيجوزي") يصل الرابع)
على الرغم من أن الأشياء الموضوعية معقدة وأن احتياجات المستخدم تتغير، إلا أن هناك أيضًا بعض القوانين المتأصلة.
أولئك القريبون ولكن غير المرئيين ينظرون فقط إلى تحقيق وظائف محددة أمامهم ولا يلاحظون قوانين التطور العامة للأشياء، وليس لديهم سوى بيانات معزولة وعمليات ميكانيكية في أذهانهم بمجرد أن "تجتمع الأشياء معًا". تتفاجأ وتجد صعوبة في التعامل معها. مثل هذه البرمجة ثابتة وميكانيكية ويصعب صيانتها وتوسيعها.
أولئك الذين يمكنهم الرؤية من مسافة بعيدة يجيدون اكتشاف الأنماط، وإعادة استخدام رموز القيمة، ورؤية الأشياء العضوية والعلاقات المتناغمة، حتى لو تغيرت الاحتياجات، يمكنهم التعامل معها بهدوء وسهولة. هذه البرمجة ديناميكية ومرنة وقابلة للصيانة وقابلة للتوسيع.
قال بول كيميل في "دليل تطوير تطبيقات دلفي 6" "من الخطأ استخدام الأدوات الموجهة للكائنات بطريقة غير موجهة للكائنات. استخدام دلفي لكتابة برامج منظمة يمكن أن يصل بسرعة إلى الإصدار التجريبي... قد لا يكون برنامجك أبدًا قادر على الهروب من الإصدار التجريبي. احصل على الإجابة الخاطئة بسرعة وستظل مخطئًا.
باستخدام دلفي أيضًا، إذا لم تكن هناك فكرة برمجة موجهة للكائنات، فسيكون الأمر مثل "عدم ملاحظة ما يقال"، وفي النهاية سيظل "قريبًا ولكنه غير مرئي"، مما يجعل من الصعب تطوير نظام ممتاز. فقط من خلال الممارسة الجادة، والتلخيص بعناية، وإتقان الأفكار الواسعة والعميقة للبرمجة الشيئية، يمكننا أن نكون قادرين على التحكم في "تشي" الخاص بنا بحرية، و"عكس ما تعلمناه، وما تعلمناه"، والوصول أخيرًا إلى الحالة. "معرفة ما هو بعيد".
لقد مر أكثر من 30 عامًا منذ ظهور أول لغة كائنية التوجه Smalltalk (1972). ومع ذلك، فإن معظم كتب البرمجة الشيئية الموجودة في المكتبات هي C++ وJava، ويبدو أن هناك هاتين اللغتين الشيئيتين فقط، وفي الواقع هناك 4 فروع أساسية للغات الموجهة للكائنات الحقيقية وما يقرب من 20 نوعًا . نظرًا لوجود عدد قليل جدًا من الكتب حول البرمجة الشيئية في دلفي، يتعين على العديد من المبرمجين التخلي عن دلفي من أجل تعلم OOP. هذه حقا مأساة كبيرة لدلفي. عندما قرأت كتاب "التفكير في جافا" لبروس إيكل، ندمت على عدم وجود مثل هذه التحفة الفنية لدلفي؟
في الواقع، دلفي تنتمي إلى عائلة معروفة، وقد تم تطويرها من قبل شركة بورلاند على أساس Object Pascal. والآن تستخدم شركة بورلاند لغة دلفي لتحل محل Object Pascal [1] بدءاً من لغة دلفي7. في الواقع، دلفي ليست أقل شأنا من C++ وJava من حيث OOP. يمكن للقراء الرجوع إلى ملحق هذا الكتاب "مقارنة لغات البرمجة الكائنية: Java وC++ وDelphi".
ولتحقيق هذه الغاية، كنت أخطط دائمًا لكتابة كتاب عن البرمجة الشيئية في دلفي لتلخيص خبرتي التعليمية والعملية في البرمجة الشيئية في دلفي. ومع ذلك، فهذه مهمة صعبة للغاية. استغرق الكتاب بأكمله وقتًا طويلاً من الفكرة إلى الكتابة، ولم يكتمل رسميًا حتى مايو من هذا العام. لقد صادف أن هذا العام يصادف أيضًا الذكرى العشرين لتأسيس بورلاند، باعتباري مستخدمًا لمنتج بورلاند دلفي، يمكن اعتبار نشر كتابي بمثابة إحياء لذكرى ذلك.
هذا كتاب يناقش فقط البرمجة الشيئية في دلفي. إن التوجه الشيئي ليس زخرفة عصرية لهذا الكتاب، ولكنه جوهر هذا الكتاب ومجمله.
بدءًا من الفصل الأول "تأسيس تفكير جديد موجه للكائنات"، يحاول هذا الكتاب البدء بالتاريخ والوضع الحالي للبرمجة كائنية التوجه، موضحًا الأصل والتطور والمفاهيم الأساسية لأفكار البرمجة كائنية التوجه، بالإضافة إلى التطبيق. طرق النمذجة الموجهة للكائنات وUML. يهدف هذا الفصل إلى مساعدة القراء على إنشاء المفاهيم الأساسية للكائنات الموجهة وفهم طريقة التفكير الكائنية.
يقدم الفصل الثاني "نموذج كائن دلفي" المعرفة الأساسية لبرمجة دلفي الموجهة للكائنات ونظام هيكل نموذج الكائن الخاص بها.
يناقش الفصل الثالث "فهم الأشياء" الآلية الداخلية ودورة الحياة وتفاعل الأشياء بعمق من ثلاثة جوانب: الطبيعة والحياة والموت والعلاقات بين الأشياء، مما يضع الأساس للقراء لفهم الأشياء وإتقانها.
يشرح الفصل الرابع "استخدام الكائنات" كيفية استخدام الكائنات بكفاءة في البرمجة الموجهة للكائنات في دلفي. نركز هنا على أساليب وتقنيات استخدام كائنات الواجهة، وكائنات المكونات، ومجموعات الكائنات ومعلمات الكائنات، ونجري تفكيرًا متعمقًا حول المشكلات الشائعة في استخدام مكونات VCL وتطويرها.
الفصل الخامس، "تعدد الأشكال المتعمق"، يقدم مفهوم تعدد الأشكال وتطبيقه في البرمجة. من خلال عدد كبير من الأمثلة، يتم شرح المفاهيم الهامة وطرق التفكير مثل التحميل الزائد والكتابة الفوقية، والأساليب الافتراضية والأساليب الديناميكية، والفئات المجردة والأساليب المجردة، وتحويل نوع الفصل.
يقدم الفصل السادس "تحليل الواجهات" بشكل شامل المعرفة البرمجية ومهارات التطبيق الخاصة بواجهات الكائنات. ويشرح الدور المهم للواجهات في تحقيق الارتباط الديناميكي والميراث المتعدد، ويوضح الاستخدام الفعلي للواجهات في البرمجة الموجهة للكائنات.
يوضح الفصل السابع "البحث في التغليف" أهمية ومبادئ تطبيق التغليف في البرمجة الموجهة للكائنات، ويناقش أيضًا طرق التنفيذ وتقنيات تطبيق التغليف من منظور التغليف المنطقي والتغليف المادي على التوالي.
يطبق الفصل الثامن "إدراك الفصل بين الواجهة والأعمال" البرمجة الموجهة للكائنات على مستوى جديد. يشرح هذا الفصل كيفية استخدام التصميم الموجه للكائنات لتطوير برنامج سطح المكتب إلى نظام متعدد الطبقات موزع من خلال مثال تطوري لفصل الواجهة والأعمال. بالاشتراك مع أحدث تقنيات الويب من دلفي، فإنه يقدم كيفية استخدام خدمة الويب لتغليف كائنات الأعمال، واستخدام نموذج الويب لتغليف كائنات الواجهة، واستخدام التقنيات الجديدة لتغليف الكائنات القديمة، وبالتالي تحقيق التطبيقات عبر الأنظمة الأساسية.
أخيرًا، يدرس الفصلان 9 و10 من هذا الكتاب، "مقدمة متعمقة إلى VCL"، الآلية الداخلية لـ VCL وتحليل استخدام الكائنات للفئات المهمة من VCL، مما يوفر مرجعًا للقراء الذين يتوقون إلى تحسين مستوى برمجتهم في عمق.
انطلاقا من بنية هذا الكتاب، يمكن تقسيمه إلى خمسة أجزاء.
الجزء الأول، أول فصلين من الكتاب عبارة عن مقدمة لبرمجة دلفي الموجهة للكائنات. يمكن للقراء الذين أتقنوا بالفعل المفاهيم الأساسية للكائنات التوجه ولديهم خبرة في برمجة دلفي تخطي هذين الفصلين.
الجزء 2، الفصلان 3 و 4 هما مفتاح البرمجة الشيئية في دلفي. إذا لم تفهم جوهر الكائن، فلن تتمكن من استخدام الكائن جيدًا.
الجزء الثالث، الفصلان الخامس والسادس عبارة عن مقدمة متعمقة للبرمجة الشيئية في دلفي. تعتمد جميع التقنيات المتقدمة الموجهة للكائنات على آليات الربط الديناميكية مثل الأساليب الافتراضية، والأساليب المجردة، وواجهات الكائنات، وآليات تحويل النوع مثل التحويل التصاعدي، والتحويل التنازلي، وتحويل الواجهة.
الجزء الرابع، الفصلان السابع والثامن هما تطبيقات برمجة دلفي الموجهة للكائنات. من أجل تحقيق قابلية صيانة البرنامج وقابلية التوسع وإعادة الاستخدام، أصبح التغليف أحد الأفكار المهمة للبرمجة الموجهة للكائنات. من خلال التغليف، يتم فصل الواجهة وكائنات الأعمال، ويتم تحقيق البنية الموزعة متعددة الطبقات تدريجيًا من فصل الواجهة والأعمال، ومن ثم يتم تحقيق النظام الأساسي المشترك للواجهة وتطبيقات الأعمال. يتم هنا عرض الحلول بدءًا من التطبيقات العامة وحتى التطبيقات على مستوى المؤسسات استنادًا إلى أفكار البرمجة الموجهة للكائنات.
الجزء الخامس، ختام الفصلين التاسع والعاشر، هو إشارة إلى البرمجة الشيئية في دلفي. يعد الإلمام بـ VCL وتعلم VCL مفيدًا جدًا لإتقان دلفي. في ضوء النقص الحالي في المعلومات الداخلية حول VCL، فإن ما يقدمه هذا الجزء للقراء قد يكون محدودًا، ولكنه نادر.
على وجه الدقة، هذا الكتاب ليس مكتوبًا "للخبراء"، بل للمبرمجين الذين يريدون التغيير من RAD إلى OOP، وللأصدقاء الذين يرغبون في تعلم OOP من خلال دلفي. أعتقد أنه أكثر ملاءمة ككتاب تقني عملي متوسط لدلفي. ولذلك نسعى في تأليف الكتاب كاملاً إلى أن يكون سهل الفهم، مع الصور والنصوص، وعدد كبير من الأمثلة على البرامج (الكود المصدري الموجود على القرص المضغوط المرافق للكتاب يتجاوز 50 ميجابايت) مكتوب بعناية من أجل القراء للدراسة. يركز هذا الكتاب على OOP الأساسية، وليس جميع جوانب دلفي. تتطلب قراءة هذا الكتاب معرفة أساسية معينة بالدلفي. يتضمن الكتاب بعض المعرفة المتخصصة (مثل COM+، وما إلى ذلك) ويتطلب من القراء الرجوع إلى الكتب ذات الصلة لمزيد من المراجع.
قد يكون هناك بعض "الخبراء" الذين سيصابون بخيبة أمل من هذا الكتاب. أشعر أنني لست مناسبًا لكتابة كتاب ليقرأه "الخبراء"، لأنني أشعر أنني سأظل دائمًا مبتدئًا. على عكس المبتدئين الآخرين، أستخدم دلفي لفترة أطول ولدي المزيد من الخبرة والتجربة. ولذلك، إذا وجدت أي أخطاء في هذا الكتاب، يرجى تصحيح لي وآمل أن تسامحني على أي أشياء غير مرضية.
لقد عبر مستخدمو الإنترنت xzh2000 عن الأمر بشكل جيد، "إن حياة الكتاب مهمة جدًا. فقط إذا تمكن المؤلف من قضاء بعض الوقت في مراجعته واستكماله بشكل متكرر، يمكن أن يصبح كتابًا كلاسيكيًا!" صحيح أن الكتاب الجيد يحتاج إلى مراجعة عدة مرات قبل أن يصبح كتابًا كلاسيكيًا، لذلك أنا على استعداد للاستماع إلى الاقتراحات القيمة من جميع القراء وآمل أن تتم مراجعة هذا الكتاب وإعادة طباعته بشكل مستمر.