الفصل التالت هيقولك "هات اللي محتاجه وبس"

أحمد رمضان

. 2 د قراءة


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

او نقدر نقول

"أنا محتاج معلومة معينة فقط روح هاتهالي"















مقالات ذات صلة

المزيد من أحمد رمضان