باختصار عن التجريدات

يحدث أن توقف المشروع ، وأصبح تطويره مستحيلًا. ليس من النادر أن يكون سبب هذا الفشل هو العمارة الفاشلة الموضوعة في بداية التطوير. أو هل يجب أن تجادل حول أي من "الكرسيين" أفضل ، أو ربما المشاركة ولا تفهم بصدق كيف يمكن لخصمك التفكير في ذلك!


ثم سنحاول ألا نفهم الكثير من التجريدات ، ومن أين أتوا وماذا يفعلون بها.


حسب ويكيبيديا ، فإن التجريد هو تعميم نظري نتيجة التجريد. في المقابل ، يمثل التجريد إلهاءً في عملية الإدراك من الأطراف غير الأساسية والخصائص والعلاقات الخاصة بالكائن (كائن أو ظاهرة) من أجل إبراز خصائصها الأساسية المنتظمة.


من التعريف يمكننا أن نستنتج أن المعنى الوحيد هو التجريد. في هذه الحالة ، الإدراك هو مجرد تصور للعالم الحقيقي. اتضح أن كل الانعكاسات على الواقع هي انعكاسات على نماذجنا الحقيقية.


تشكل التجريدات تسلسلات هرمية ، ويمكن التعرف عليها مع كل من الكيانات الخاصة ودمج الكيانات المماثلة في التجريدات عالية المستوى.


وعي التجريد


بالإضافة إلى منظور الإدراك ، تخضع نماذجنا لتشويه آخر: الكيانات الحقيقية معقدة للغاية ولها جوانب ومعايير مختلفة. عند التفكير في شيء ما أو الحديث عنه ، يوجد دائمًا سياق يوجد فيه نموذج. وأحيانًا يحدث اختلاف بين محاوري هذا السياق. ولأهم من ذلك ، يؤدي وجود أو عدم وجود خبرة (عالمية) إلى تغيير أكبر في نماذجنا وفقًا لهذه التجربة. نتيجة لذلك ، يمكن أن يكون لدى شخصين مختلفين تصورات مختلفة تمامًا عن نفس كيانات العالم الحقيقي.


اتضح أن كل شخص يتعامل باستمرار مع التجريد ، يبقى أن نتعلم كيف نرى بوضوح وإدارتها. يمكن للمرء طرح أطروحة أن رمز البرنامج هو محاكاة للتفكير على أساس التجريد الرسمي. لذلك ، في رأيي ، يعد تطوير البرمجيات أحد أفضل المحاكاة لضخ التفكير المجرد.


التجريد في التنمية

ربما تكون واجهات البرمجة هي التجسيد الرسمي الأكثر وضوحًا. يتم قطع جميع زائدة عن الحاجة ويبقى فقط "ما يفعله" دون "كيف يفعل".
من خلال تطبيق الواجهة ، نقوم بإنشاء نموذج أكثر واقعية للسلوك أو التفاعل ، والذي يمكنه بالفعل الإجابة على السؤال "كيف". من خلال الجمع بين واجهات مع بعضها البعض ، يمكننا إنشاء بنية التعليمات البرمجية الشائعة. مع المهارة والبراعة المناسبة ، فإن الهندسة المعمارية التي تم إنشاؤها بهذه الطريقة ستحتفظ بهيكلها في المستقبل. في حين أن تنفيذ واجهات مركب يمكن أن تتغير إلى ما بعد التعرف.


هذه البنية تبسط بعض النقاط في العمل. اختبار الوحدة يأتي لكتابة تطبيقات اختبار التجريدات "المجاورة" وطرق الاختبار التي تقارن المدخلات والمخرجات. يسمح لك عزل الوحدات بتنفيذ إعادة بيع بأمان. علاوة على ذلك ، إذا لم تنجح إعادة بيع المباني وكسر كل شيء ، فستضطر إلى استعادة وحدة واحدة فقط. وحدة تجريدية كافية يمكن استخدامها لمهام مماثلة ولكن مختلفة. في الوقت نفسه ، لن يؤثر أحد التنفيذ السيئ على عمل الآخرين - عزل govnokod.


مثال

هناك وحدة نمطية لمعالجة بيانات المدخلات ، وهناك عدة خيارات للحصول عليها: من قاعدة البيانات ؛ من الملف بواسطة http. يمكن حل هذه المشكلة عن طريق تسليط الضوء على واجهة مشتركة لتلقي البيانات وإجراء تنفيذ لكل قناة وقناة بيانات للاختبار. يمكن الآن لأحد المعالجين حل العديد من المشكلات المشابهة باستخدام معلمة "قناة البيانات". وإذا اتضح أن أحد التطبيقات هو منحنى ، فإنه يمكن إعادة بنائه للتأثير على الوحدات الأخرى.


التجريد لم تعد هناك حاجة


لا توجد حلول مثالية ، وهكذا مع التجريد ، الأمور ليست على نحو سلس. أولاً ، التجريدات ذاتية ، يمكنها أن تتسبب في جدال حول المكان الذي يبدأ فيه الشخص ويبدأ الآخر. هناك أيضًا مشكلة التجريد المفرط ، عند إنشاء تجريد مختلف لكل نوع ونغسة من العطس. ثانياً ، هذا النهج يزيد من تعقيد الكود بإضافة كيانات جديدة ومستويات هرمية جديدة. أنا متأكد من أنه لا يزال هناك بعض أوجه القصور في هذا النهج ، وبعضها سيكون ذاتيًا أو جزئيًا ، لكن سيكون هناك


يجب أن يكون هناك توازن في كل شيء. بنفسي ، استنتجت المذكرة التالية.


  • إذا كنت تكتب وحدة كبيرة وهامة - فمن الأفضل فك الارتباط بها.
  • إذا تم استخدام الوحدة النمطية كثيرا و / أو في أماكن مختلفة ، فمن الأفضل أن تخفيها وراء التجريد.
  • إذا تم توزيع الوحدة كمكتبة منفصلة ، فمن الأفضل استخدام التجريدات.
  • إذا كان من الممكن تغيير الخوارزميات أو مسارات التفاعل ، فمن الأفضل تنفيذ تفاعل التجريدات.
  • إذا تم استخدام الفصل في فصل آخر وليس في أي مكان آخر - يمكنك التفكير في الجمع بينهما أو تركه كما هو.
  • إذا كانت هذه مهمة "لمرة واحدة" صغيرة - فمن الأفضل ألا تهتم بمضاعفاتها.
  • إذا كانت هذه وحدة لن تتغير على الأرجح على الإطلاق - يمكنك عرض واجهتها ومن الأفضل ترك كل شيء كما هو في الداخل.

المجموع


التجريد هي أداة مضمّنة في أذهاننا ، مثلها مثل أي مزايا أخرى لها مزاياها وعيوبها ، لكن معرفة البدائل تساعد فقط في إيجاد طريقة أفضل.

Source: https://habr.com/ru/post/ar440330/


All Articles