Advanced Web Application Architecture
Chapter3: Read models and view models
قبل Chapter 3 كنا وصلنا لفين؟
في الفصل التاني كام فيه مثود بتعمل كل حاجة و فضلنا نحلل و نقسم
تقدر تبص من هنا
طيب سريعا كدا هوه احنا كنا عملنا اي
- فصلنا جزء الكتابة (Write Side)
كان عندناINSERT INTO orders
بقينا عندنا:
OrderRepositoryوالـ Controller مبقاش عارف SQL.
بقى عارف:
$orderRepository->save($order);
طيب دلوقتي اي المشكلة بتاعت الكود الحالية بقا

الكتاب بيقول استنى... إحنا لسه عندنا مشكلة.
الـ Controller المفروض يعرف:
أنا محتاج سعر الكتاب
مش:
روح افتح Database
روح جدول ebooks
هات column اسمه price
دي تفاصيل Infrastructure.
سؤال مهم
أول فكرة هتيجي في دماغك:
"طب ما نعمل Ebook Entity وخلاص"

منطقي صح ؟؟؟؟؟؟؟؟؟؟؟؟؟
الكتاب بقولك بقا اي........ مش دايمًا.
ليه Entity مش مناسبة هنا؟
اسأل نفسك إحنا عاوزين إيه؟
عاوزين "سعر الكتاب" فقط لاغير
يعني مش عاوزين كل دا
اسم الكتاب و الوصف و المؤلف و عدد الصفحات و التصنيف و الصورةلو جبت Entity كاملة زي دي
$ebook = $ebookRepository->get($id);يبقى حملت Data كتير جدًا عشان معلومة واحدة.
هنا بقا الكتاب بدأ يقدم فكرة جديدة و هيه Read Model
يعني اي ؟؟؟؟؟؟؟؟؟؟؟
بدل ما أجيب Entity كاملة...
أجيب Model مخصوص للقراءة فقط.
يعني لو بصيت ع الكود الي تحت دا هتلاقي وظيفته الوحيدة يجيب سعر الكتاب فقط لا غير

طيب تمام لكل دا بس عاوز اعرف الفرق بين Entity و Read Model
Entity
بتمثل Business Concept
يعني ال Order
فيها Rules
وفيها Behavior
زي م درسناه قبل كدا
بمعني اخر
اي end point عبارة عن post actions
Read Model
مجرد Data
يعني الOrderPrice
بمعني اخر
اي end point عبارة عن get actions
او نقدر نقول
"أنا محتاج معلومة معينة فقط روح هاتهالي"