في الغالب تُذكر ثلاثة اعمدة للObject Oriented Programming و هي الPolymorphism و الInheritance و الEncapsulation و تتغاضى الكتب و المقالات عن العمود الرابع المهم و هو الAbstraction. الAbstraction ليس مجرد "التبسيط" كما يترجم و انما هو "التجريد" بكل معانيه الفلسفية.
(سلسلة)
(سلسلة)
التجريد Abstraction مفهوم فلسفي بدأ مدوناً من عهد ارسطو و بحثه اوائل علماء العرب و المسلمين فنجد ابن القيم في مدارج السالكين عرفه بأنه " انقطاع عن الأغيار " و يعني بالمصطلحات البرمجية الان انقطاع عن الImplementation
ولا يختلف تعريف ابن القيم عن تعريف ارسطو بانه "فصل اجزاء عن الشيء". بمعنى الاستخلاص لتركيز الانتباه انتقائياً نحو شيء معين لغرض ما. و للمعلومية يرى علماء الانثروبولجيا ان الانسان تعامل مع التجريد منذ 100 الف سنة وبه طور لغته و تفكيره.
ماذا تعني ال100 ؟ هذه مجرد 1 و 0 و 0 و ربما تعني 10X10 او واحد مكرر 100 مرة او 100 ريال او مئة سنة! هذا مرتبط بكيف تراها انت؟ او حسب سياقها. فهي لا معنى لها في حد ذاتها.
حيث انه في الواقع لا يوجد شيء اسمه 100 إلا اذا ربط بشيء اخر اي حصل له Implementation سواء بعدد او عملة او مدة .. الخ. و لهذا في البرمجة الAbstract class لايمكن إنشاءه بكلمة new!!.
يصف Donald Knuth صاحب كتاب Art of programming و اللي وصفته النيويورك تايمز بانه الYoda of Silicon valley سيكولوجية المبرمج بانها القدرة على رفع مستوى التجريد من الاشياء الLow level الى الHigh level ليرى شيء في شكله الصغير ( التفصيلي ) بالاضافة إلى شكله الكبير ( التطبيقي )
ما ذكره Knuth هو اساس النمو و النضوج في عقل المبرمج للوصول للتفكير التجريدي abstract thinking. و هو امتداد لنظرية عالم النفس بياجيه عن مراحل نضوج التفكير عند الانسان. حيث قال ان الاطفال الرضع يفكرون بطريقة concretely من خلال حواسهم الخمس
ثم من سن 2 الى 7 يفكرون بطريقة رمزية Symbolically ثم يبدأون من 7 الى 10 بالتفكير المنطقي و من سن 12 ومافوق يبدأون بتأسيس فكرهم التجريدي. ففي اي مرحلة نحن بالنسبة للبرمجة؟
نعود لتفسير ارسطو "فصل اجزاء عن الشيء". عندما نبني Class في برنامج تأجير سيارات, فنحن نتعامل مع سيارات حقيقية لكننا في النظام نجردها بما يهم ادارة تأجيرها. كرقم لوحتها و موديلها و نوعها. لكن لن نهتم برقم بوليصة شحنها من الميناء او وصولها لكن نظام الجمارك او وكيل السيارات يهتم.
اعتذر عن الاطالة. لكن من المهم ان ننظر للاشياء بعمق و شمولية قبل تجريدها حتى بالنسبة للتجرد نفسه. فلا نأخذ او نتعلم الاشياء مفصولة عن ماحولها إن اردنا ان نفهمها بشكل اصح وافضل.
- انتهى
- انتهى
جاري تحميل الاقتراحات...