16 معمارية الطبقات الثلاثة
يمكن تصوُّر البرمجيات بثلاثة طبقات (Three-tier Architecture) منفصلة لكلٍّ منها شقَّان، شقُّ قراءة وشقُّ كتابة:
الأولى: 🎨 طبقة العَرض (Presentation Tier):
- القراءة: حيث الاستجابة للمدخلات المكتوبة أو بالإصبع أو بالصوت
- الكتابة: عرض الأشكال والألوان والحركات والأصوات
ومثال الكتابة بعد القراءة، الإجراءان:
input
حيث هو فعل قراءةprint
حيث هو فعل كتابة
= input("What is your name?: ") # ينتظر إدخال المستخدم
name print("Hello", name)
وكذلك تشغيل الأصوات باستعمال المكتبة الخارجية playsound
. وذلك بعد تنزيلها وتثبيتها عن طريق مدير الحزم uv
:
uv add playsound
from playsound import playsound
'/path/to/a/sound/file/you/want/to/play.mp3') playsound(
ومثال ذلك أيضًا عرض الصور. ولهذا الغرض نحتاج لمكتبة خراجية مثل Pillow لنعرض صورة معمارية الطبقات الثلاث. وذلك بعد تنزيلها وتثبيتها عن طريق مدير الحزم uv
:
uv add Pillow
from PIL import Image
= Image.open("../../assets/three-tier.png")
im 320, 480))
im.resize(( im.show()
الثانية: ⚙️ طبقة المنطق (Logic Tier):
- القراءة: حيث انتقال البيانات بين الإجراءات وتفسيرها وتشكيلها في الذاكرة
- الكتابة: تغيير وحذف وإضافة الأشياء في الذاكرة
وقد أخذت هذه الطبقة الجانب الأكبر من هذا الكتاب. فتعيين المتغيرات واستدعاء الإجراءات وتعريفها وكتابة الشروط والحلقات ونحو ذلك كله من هذه الطبقة.
الثالثة: 💽 طبقة البيانات (Data Tier):
- القراءة: حيث استرجاع البيانات من جهاز التخزين (في نفس الجهاز أو عبر الشبكة)
- الكتابة: تخزين نتائج المعالجة من الذاكرة إلى جهاز تخزين
ومثالها إجراءات قراءة الملفات وكتابتها:
with open() as file
file.write()
file.read()
الترتيب بين الطبقات
وهذا الترتيب من جهتين:
أحدهما: من طبقة البيانات إلى طبقة العَرض. حيث يتم عند تشغيل البرنامج سحب البيانات المستودعة ثم معالجتها منطقيًّا ثم عرض الشاشة للمستخدم حتى يستجيب لذلك.
والآخر: من طبقة العرَض، حيث يتفاعل المستخدم مع البرنامج بأي طريقة بحسب ما يرى أو يسمع (طبقة العرض) فيُنقَلُ ذلك لطبقة المنطق ومنها إلى طبقة البيانات.
ويدخل في الطبقات:
- قواعد البيانات (Databases): في طبقة البيانات
- الواجهة البرمجية للتبيقات (API): في طبقة العَرض حيث يكون المستفيدُ ليسَ شخصًا آدميًّا وإنما برنامجًا آخر قد لا يكون في نفس الجهاز
لكن المجال لن يتسع لهما في هذا الكتاب.
لكننا في الفصل القادم سنتحدث عن واجهة للمستخدم (من طبقة العرض) تسمى سطر الأوامر (Command-line Interface) إذْ هي أبسط طرق العرض والتفاعل مع المستفيد من حيث البرمجة.