جزاك الله خير الشرح جميل جدا ومبسط فكل فديوهاتك الصراحة وربنا يجعله في ميزان حسناتك بس لو سمحت عندي سؤال مش بالطريقة دي الstate pattern بviloate ال interface segregation concept لان بقا عندنا ف كذا state بتعمل implement لmethod هي مش محتجاها فانا شايف كان من الافضل اني استخدم abstract class فالحالة دي واخلي كل الmethods vertual بتقولي not supported وفقط ف الstate class اعمل ovveride للي انا محتاجه بس
ربنا يبارك لك ي هندسة شرح جميل و مثال رائع من الواقع .. عندي كذا استفسار بعد اذنك : 1- هو ال order class في الحالة دي عموما بما اننا حطينا فيه ال properties and methods (behavior) هيكون Rich domain model و كده احنا بنطبق ال DDD approach ? 2- لو عندي في البزنيس كذا نوع من ال order و كل نوع ليه طريقة في الانشاء تختلف عن التاني و كذلك validations تختلف عن التاني, ممكن حضرتك تقترح عليا بعض ال combination patterns اللي ممكن تساعدني في المشكلة دي ؟ و جزاكم الله خيرا و نفع بكم .
الله يكرمك يا عمرو ❤️ بالنسبة للسؤال الأول نعم دي احدى الخطوات في تطبيق الDDD ولكن الموضوع أكبر من كده بكتير ولعل يكون فيه سلسلة متكاملة عن الموضوع ده بإذن الله بالنسبة للنقطة التانية فيه اكتر من طريقة وأنسبهم تتحدد بناء على النظرة الكاملة للسيستم ولكن يبدو لي حاليا انك تستخدم factory لإنشاء الorder وstrategy علشان الvalidation ولو فيه validation rules مشتركة فتخلي الstrategy مبنية على abstract class مش interface بحيث تكتب فيها الshared rules وممكن تستخدم حاجة جاهزة زي FluentValidation هتسهل عليك القصة دي جدا ده الواضح لي حاليا بناء على فهمي لكلامك
جزاكم الله خيرا وكل عام وحضرتك بخير. كان عندي سؤال فقط لو فيه state ممكن يتراح لها من كذا state قبلها يعني مثلا ان ممكن الطلب يتعمل له cancel في اي مرحله طالما مش shipped هنا هنلاقي ان الكود بتاع ال cancel state هيتكرر في كذا class سواء كود ال checking أو ال behavior اللي هيتم. مش تكرار الكود في الحاله دي هيكون حاجه مش كويسه؟
اه عادي جدا لو البيزنس محتاج كده وده سبب آخر لتطبيق الstate pattern يعني تخيل تعمل السيناريو ده داخل الif statement اللى اتكلمنا عنها وشوف التعقيد اللي هتوصل له
@@PassionateCoders اه اكيد مش البديل اني استخدم if انا فاهم ان التصميم بالاسلوب ده كويس لو ان طريقة تعامل ال state بيختلف على حسب هي جايه من انهي state قبلها لكن لو هي وظيفتها ثابته مش الافضل في الحاله دي بدل ما نستخدم interface نستخدم class وال state classes يعملوا inherit منها وساعتها يعملوا override للي مش عايزينه وخلاص؟
@@khaledm.soradi7131 الأصل في الState Pattern ان كل State Class بتكون مسئولة عن اللوجيك الخاص بيها فلو حطينا كل اللوجيك في الBase Class هتبقى فقدت الميزة الأساسية من الباترن دي وكأنك حولتها لFeature Flags فقط بالنسبة للحالة اللي انت ذكرتها فممكن تتحل باكتر من طريقة منها مثلا الCommand Pattern ودي هنتكلم عنها في الفيديوهات الجاية ان شاء الله
تسلم إيدك يا باشمهندس وجزاك الله خيرا .. الشرح فعلا ممتاز جدا لكن أنا عندى مشكلة واحدة .. أنا مع نهاية كل فيديو بأكون فاهم ال Pattern كويس جدا بفضل الله لكن فترة وبأنسى الخطوات .. السؤال إزاى أقدر أفضل فاكر كل ال Patterns دى ومستحضرها علشان أقدر أفاضل بينها فى أى مشروع بأنفذه؟؟
أكتر حاجة بتخلي المعلومة تثبت هي الممارسة وده السبب اللي خلاني ماارفعش الكود على github رغم ان فيه ناس كتير طلبت إني ارفعه وهو إني عايز الناس تطبق بايديها مرة واتنين وتلاتة لحد ما المعلومة تثبت
فخامة ، شرح كافي وافي شافي
ربنا يعطيك العافية
جزاكم الله خيرا يا بشمهندس
و كل عام و أنتم بخير وتقبل الله منا و منكم صالح الأعمال يا رب 💐💐
وإياكم يا حبيب ♥♥♥
جزاكم الله خيرا
كل عام وانتم بخير
بارك الله فيك. حقيقي سلسلة مفيدة وشرح ممتاز.
بارك الله فيك و إن شاء الله يجعلها في ميزان حسناتك ... و كل عام و أنتم بخير وتقبل الله منا و منكم صالح الأعمال يا رب
وفيك يارب ، جزاك الله خيرا ❤️
شرح ممتاز ما شاء الله
بالتوفيق في القادم ان شاء الله
ربنا يعطيك العافية
الله يجزيك الخير
يعطيك الف عافية ، ليش ما يتم رفع كود الشرح على ال Github ؟
علشان عايزك تطبق بإيدك
جزاك الله خير
الشرح جميل جدا ومبسط فكل فديوهاتك الصراحة وربنا يجعله في ميزان حسناتك
بس لو سمحت عندي سؤال مش بالطريقة دي الstate pattern بviloate ال interface segregation concept لان بقا عندنا ف كذا state بتعمل implement لmethod هي مش محتجاها فانا شايف كان من الافضل اني استخدم abstract class فالحالة دي واخلي كل الmethods vertual بتقولي not supported وفقط ف الstate class اعمل ovveride للي انا محتاجه بس
مساء الفل على الناس الطيبين
ربنا يبارك لك ي هندسة شرح جميل و مثال رائع من الواقع .. عندي كذا استفسار بعد اذنك :
1- هو ال order class في الحالة دي عموما بما اننا حطينا فيه ال properties and methods (behavior) هيكون Rich domain model و كده احنا بنطبق ال DDD approach ?
2- لو عندي في البزنيس كذا نوع من ال order و كل نوع ليه طريقة في الانشاء تختلف عن التاني و كذلك validations تختلف عن التاني, ممكن حضرتك تقترح عليا بعض ال combination patterns اللي ممكن تساعدني في المشكلة دي ؟
و جزاكم الله خيرا و نفع بكم .
الله يكرمك يا عمرو ❤️
بالنسبة للسؤال الأول نعم دي احدى الخطوات في تطبيق الDDD ولكن الموضوع أكبر من كده بكتير ولعل يكون فيه سلسلة متكاملة عن الموضوع ده بإذن الله
بالنسبة للنقطة التانية فيه اكتر من طريقة وأنسبهم تتحدد بناء على النظرة الكاملة للسيستم ولكن يبدو لي حاليا انك تستخدم factory لإنشاء الorder وstrategy علشان الvalidation ولو فيه validation rules مشتركة فتخلي الstrategy مبنية على abstract class مش interface بحيث تكتب فيها الshared rules وممكن تستخدم حاجة جاهزة زي FluentValidation هتسهل عليك القصة دي جدا
ده الواضح لي حاليا بناء على فهمي لكلامك
@@PassionateCoders تمام جزاك الله خيرا، هحاول اعمل الأفكار دي و ارجع لحضرتك بعد إذنك
1:58 😂
جزاكم الله خيرا وكل عام وحضرتك بخير.
كان عندي سؤال فقط لو فيه state ممكن يتراح لها من كذا state قبلها
يعني مثلا ان ممكن الطلب يتعمل له cancel في اي مرحله طالما مش shipped
هنا هنلاقي ان الكود بتاع ال cancel state هيتكرر في كذا class سواء كود ال checking أو ال behavior اللي هيتم.
مش تكرار الكود في الحاله دي هيكون حاجه مش كويسه؟
اه عادي جدا لو البيزنس محتاج كده وده سبب آخر لتطبيق الstate pattern
يعني تخيل تعمل السيناريو ده داخل الif statement اللى اتكلمنا عنها وشوف التعقيد اللي هتوصل له
@@PassionateCoders اه اكيد مش البديل اني استخدم if
انا فاهم ان التصميم بالاسلوب ده كويس لو ان طريقة تعامل ال state بيختلف على حسب هي جايه من انهي state قبلها
لكن لو هي وظيفتها ثابته مش الافضل في الحاله دي بدل ما نستخدم interface
نستخدم class وال state classes
يعملوا inherit منها
وساعتها يعملوا override للي مش عايزينه وخلاص؟
@@khaledm.soradi7131
الأصل في الState Pattern ان كل State Class بتكون مسئولة عن اللوجيك الخاص بيها فلو حطينا كل اللوجيك في الBase Class هتبقى فقدت الميزة الأساسية من الباترن دي وكأنك حولتها لFeature Flags فقط
بالنسبة للحالة اللي انت ذكرتها فممكن تتحل باكتر من طريقة منها مثلا الCommand Pattern ودي هنتكلم عنها في الفيديوهات الجاية ان شاء الله
تسلم إيدك يا باشمهندس وجزاك الله خيرا .. الشرح فعلا ممتاز جدا لكن أنا عندى مشكلة واحدة .. أنا مع نهاية كل فيديو بأكون فاهم ال Pattern كويس جدا بفضل الله لكن فترة وبأنسى الخطوات .. السؤال إزاى أقدر أفضل فاكر كل ال Patterns دى ومستحضرها علشان أقدر أفاضل بينها فى أى مشروع بأنفذه؟؟
أكتر حاجة بتخلي المعلومة تثبت هي الممارسة وده السبب اللي خلاني ماارفعش الكود على github رغم ان فيه ناس كتير طلبت إني ارفعه وهو إني عايز الناس تطبق بايديها مرة واتنين وتلاتة لحد ما المعلومة تثبت