16  معمارية الطبقات الثلاثة

يمكن تصوُّر البرمجيات بثلاثة طبقات (Three-tier Architecture) منفصلة لكلٍّ منها شقَّان، شقُّ قراءة وشقُّ كتابة:

الأولى: 🎨 طبقة العَرض (Presentation Tier):

ومثال الكتابة بعد القراءة، الإجراءان:

name = input("What is your name?: ") # ينتظر إدخال المستخدم
print("Hello", name)

وكذلك تشغيل الأصوات باستعمال المكتبة الخارجية playsound. وذلك بعد تنزيلها وتثبيتها عن طريق مدير الحزم uv:

uv add playsound
from playsound import playsound

playsound('/path/to/a/sound/file/you/want/to/play.mp3')

ومثال ذلك أيضًا عرض الصور. ولهذا الغرض نحتاج لمكتبة خراجية مثل Pillow لنعرض صورة معمارية الطبقات الثلاث. وذلك بعد تنزيلها وتثبيتها عن طريق مدير الحزم uv:

uv add Pillow
from PIL import Image

im = Image.open("../../assets/three-tier.png")
im.resize((320, 480))
im.show()

معمارية الطبقات الثلاثة

الثانية: ⚙️ طبقة المنطق (Logic Tier):

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

الثالثة: 💽 طبقة البيانات (Data Tier):

ومثالها إجراءات قراءة الملفات وكتابتها:

الترتيب بين الطبقات

وهذا الترتيب من جهتين:

أحدهما: من طبقة البيانات إلى طبقة العَرض. حيث يتم عند تشغيل البرنامج سحب البيانات المستودعة ثم معالجتها منطقيًّا ثم عرض الشاشة للمستخدم حتى يستجيب لذلك.

والآخر: من طبقة العرَض، حيث يتفاعل المستخدم مع البرنامج بأي طريقة بحسب ما يرى أو يسمع (طبقة العرض) فيُنقَلُ ذلك لطبقة المنطق ومنها إلى طبقة البيانات.

ويدخل في الطبقات:

  • قواعد البيانات (Databases): في طبقة البيانات
  • الواجهة البرمجية للتبيقات (API): في طبقة العَرض حيث يكون المستفيدُ ليسَ شخصًا آدميًّا وإنما برنامجًا آخر قد لا يكون في نفس الجهاز

لكن المجال لن يتسع لهما في هذا الكتاب.

لكننا في الفصل القادم سنتحدث عن واجهة للمستخدم (من طبقة العرض) تسمى سطر الأوامر (Command-line Interface) إذْ هي أبسط طرق العرض والتفاعل مع المستفيد من حيث البرمجة.