استكمالاً لما قمنا به هنا https://arabia.io/go/13610

وقد سألت سؤالاً:

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

ووجدت افضل الحلول كالتالي:

تصنيف (class) المقالات يرث تصنيف التعليقات كما انه يحتوي على مصفوفة تعليقات. قد لايكون الكلام هنا مفهوماً. ولكن عندما تلاحظ ماهي الفروقات بين كلا التصنيفين! وهذا هو العامل الاساسي في بناء العلاقات بين التصنيفات.

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

تصنيف المقالات يرث تصنيف التعليقات. كما في رسم التصنيفات البياني (Class diagram) التالي:

http://i.imgur.com/1O3Bqgi.png

ما الفائدة ؟

قارن بين الرسم البياني الاول، والرسم البياني الجديد. وستجد الفرق يسعى الى تقليل الشفرة والعمل على نفس الجودة. (الرسم البياني القديم).

http://i.imgur.com/4RxTD5A.png

المرة القادمة سوف (نجري بعض التعديلات على الشفرة لتقليل استدعائات قاعدة البيانات قدر الامكان). لذا قمت برفع التعديلات الجديدة على الشفرة المصدرية السابقة ويمكنك تحميلها من قيت هب:

https://github.com/ralmarri12/mudwana/tree/v1.0.1

أتمنى من محبيّ النشاط، التركيز على الشفرة لتقديم اقتراحات تقليل استدعائات قاعدة البيانات. غداً او بعد غد سوف نتحدث عن ما يمكن فعله في الاصدار 1.0.2.

دمتم~