# شريحة رأسية

الشريحة الرأسية (بالإنجليزية: Vertical Slice) هي نوع من المعالم (milestone) أو المعايير أو المواعيد النهائية في المشروع، حيث تركز على إظهار التقدم في جميع مكونات المشروع بشكل متكامل. يُعتقد أن هذا المفهوم نشأ في صناعة ألعاب الفيديو.
الشريحة الرأسية هي بمثابة نموذج أو عرض عملي يوضح كيفية عمل جميع الأجزاء الأساسية للمشروع معًا، حيث تهدف إلى إعطاء فكرة شاملة عن المنتج النهائي وكيفية تفاعل عناصره المختلفة. استخدام الشريحة الرأسية يفيد الفرق بتحديد المشاكل الفنية أو التصميمية المبكرة، ويعمل كأداة تقييمية لتوجيه المشروع والتحقق من توافق مكوناته.
يشير مصطلح "الشريحة الرأسية" إلى مقطع عرضي يمر عبر الطبقات التي تشكل بنية قاعدة الشيفرة البرمجية. يُستخدم هذا المصطلح غالبًا في مصطلحات منهجية سكروم (Scrum)، حيث يتم التخطيط للعمل بناءً على الميزات أو القصص (Features أو Stories).
كمثال مبسط، قد يتكون مشروع برمجي من ثلاث طبقات أو مكونات رئيسية:
* طبقة الواجهة الأمامية (Front-End Layer): وهي المسؤولة عن تصميم وتجربة المستخدم وتفاعل الواجهة مع المستخدم.
* طبقة المنطق (Business Logic Layer): حيث تتم معالجة البيانات وتطبيق قواعد العمل، وربط الواجهة الأمامية بقاعدة البيانات.
* طبقة البيانات (Data Layer): وهي المسؤولة عن تخزين واسترجاع البيانات، وتتضمن قاعدة البيانات أو نظام تخزين البيانات المستخدم.
تهدف الشريحة الرأسية إلى تطوير وتكامل جميع هذه الطبقات معًا لتمثيل ميزة واحدة متكاملة تعمل بشكل صحيح، مما يتيح رؤية واضحة حول كيفية تفاعل العناصر المختلفة في المشروع.
* طبقة الوصول إلى البيانات (أسفل)
* طبقة منطق الأعمال (الوسطى)
* طبقة واجهة المستخدم (أعلى)
في هذا النهج الشائع، تعني "الشريحة الرأسية" تطوير جزء من كل طبقة في المشروع لتحقيق ميزة واحدة متكاملة. على سبيل المثال، طلب ميزة جديدة مثل "عرض معلومات x على الشاشة الرئيسية" سيتطلب العمل على الأجزاء التالي:
* الواجهة الأمامية (Front-End): تطوير أو تحديث عناصر الواجهة لتعرض معلومات x بالشكل المطلوب على الشاشة الرئيسية. يشمل ذلك التصميم، التخطيط، والتفاعل الذي يراه المستخدم.
* منطق الأعمال (Business Logic): إضافة أو تعديل الشيفرة التي تُحدد كيفية معالجة معلومات x وعرضها، وربما تشمل عمليات مثل تحويل البيانات أو تنسيقها قبل إرسالها للواجهة.
* الطبقة الخلفية أو البيانات (Data Layer): إعداد قاعدة البيانات أو نظام التخزين لإحضار معلومات x، مما قد يتطلب عمليات استعلام (Queries) جديدة أو تحديثات على البنية الحالية للبيانات.
بهذه الطريقة، تساعد الشريحة الرأسية على تطوير الميزة عبر جميع الطبقات، مما يضمن عملها بسلاسة وتكامل بين مختلف أجزاء النظام.
بناءً على ما سبق، يمكن تعريف "الشريحة الرأسية" بأنها "مجموعة العمل التي يجب تنفيذها في كل طبقة ذات صلة لجعل ميزة معينة تعمل بشكل كامل". الشريحة الرأسية لا تؤثر بالضرورة على كل مكون في البرمجيات. فعلى سبيل المثال، إذا كان الحل البرمجي يحتوي على خدمة ويب (Web Service)، فقد تكون الخدمة في نفس "الطابق" كواجهة المستخدم (UI)، ولكن ميزة مثل "دعم تسجيل الدخول والخروج في خدمة الويب" ستتطلب تعديلات في طبقة منطق الأعمال وطبقة الوصول إلى قاعدة البيانات، دون الحاجة إلى تعديل في واجهة المستخدم.
في هذه الحالة، تركز الشريحة الرأسية على الطبقات الضرورية فقط لتحقيق الميزة المطلوبة، مما يتيح تطوير ميزات معزولة ومستقلة حسب الحاجة، دون التأثير على الطبقات أو المكونات غير الضرورية.

## قصص المستخدم العمودية

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

### معايير القبول

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

### تشريح حسب الطبقة

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