ثبت نام دوره جدید DDD و EventSourcing ...
0

چالش هشتم DDD Plus

جهت مشاهده‌ی چالش هفته‌ی قبل اینجا کلیک کنید.

پیش‌زمینه:

شما در حال توسعه یک social media app‌ برای شرکت SayHelloToTheWonderfulWorld.Com 😍هستید. در این app افراد می‌توانند تجارب سفر خود را با دیگران به اشتراک بگذارند. ویژگی‌های متداول یک social media app در این app که شما در حال توسعه آن هستید وجود دارد. فعالیت‌هایی از جمله دنبال کردن و لایک کردن و چت کردن.

سناریو:

بخش مهمی از هر اپلیکیشن شبکه اجتماعی، امکان دنبال کردن سایر کاربران است. شما به عنوان یک کاربر می‌توانید سایر کاربران را دنبال کنید. می‌دانیم که دنبال کردن یک فعالیت دو طرفه است. شما شخصی را دنبال می‌کنید. و به تعدا ددنبال کنندگان آن شخص نیز افزوده می‌شود. شما در حال پیاده‌سازی این ویژگی هستید. هر کاربر می‌تواند بی نهایت کاربر مورد علاقه خود را دنبال کند. موقع بررسی این ویژگی متوجه می‌شوید که یکسری فیچرهای دیگر برای موفقیت این فیچر در برنامه شما ضروری است. ویژگی‌هایی از جمله پیشنهاد کاربر برای دنبال کردن. کاربرای پیشنهادی توسط برنامه ممکن است از بین کاربرانی باشد که توسط افرادی که شما دنبال کرده‌اید، دنبال می‌شوند.

مثلا شما شخص A را دنبال می‌کنید. شخص A شخص B را دنبال می‌کند. در نتیجه برنامه ممکن است شخص B را به شما جهت فالو کردن پیشنهاد دهد. همانطور که متوجه شدید در این مثال برنامه یک لول در بین افرادی که شما دنبال کرده‌اید جلو رفته است. اما می‌توانیم متصور شویم که این سطح می‌تواند طولانی تر نیز باشد. مثل شما A را دنبال می‌کنید. A شخص B و B شخص C و در نهایت در سطح nام ممکن است شخص Y شخص Z را دنبال می‌کند. در نتیجه ممکن است از شما خواسته شود که برنامه شخص X را نیز در نهایت به شما پیشنهاد دهد.

همچنین این دنبال کردن دارای تاثیرات جانبی مهم دیگری نیز می‌باشد. به عنوان مثال در صفحه هوم برنامه از شما خواسته شده است که لیستی از تجربه‌های سفر را به نحوی به کاربر نشان دهید، که تجارب به اشتراک گذاشته شده توسط افرادی که شما دنبال کرده‌اید در اولویت قرار گیرد. به عنوان مثال در صورتی که ۲۰ نفر در برنامه شما تجارب خود را به اشتراک گذاشته باشند و شما ۵ نفر از آنها را دنبال کرده باشید، در صفحه اول برنامه وقتی وارد اپ می‌شوید، تجاربی که این ۵ نفر به اشتراک گذاشته‌اند در بالای لیست قرار می‌گیرد. همانند مثال بالا، سایر افرادی که شما مستقیما دنبال نمی‌کنید ولی توسط ۵ نفری که شما دنبال می‌کنید، در صورتی که تجربه‌ای را به اشتراک گذاشته باشند، اولویت بالاتری نسبت به سایر افراد؛ از نقطه نظر نمایش تجارت به اشتراک گذاشته شده آنها برای شما در صفحه اول، خواهند داشت.

صورت مسئله:

با در نظر گرفتن سناریوی بالا، و اینکه شما در حال پیاده‌سازی ویژگی دنبال کردن در این app هستید، به موارد زیر پاسخ دهید:

  • داستان(های) کاربری مربوط به سناریوهای بالا را بنویسید؟
  • شرایط پذیرش را برای داستان(های) کاربری خود بنویسید؟
  • برای سناریوهای بالا، سناریوهای تست پذیرش که منجر به اطمینان از صحت عملکرد برنامه شما می‌شود را بنویسید؟
  • مسئله فالو کردن کاربران، را مدل کنید؟
  • چگونه از وجود خاصیت evovability را برای مسئله بالا که با طیف وسیعی از ویژگی‌های qualitative سرو کار دارد، در مدلی که برای این مسئله ارائه دادید مطمئن می‌شوید؟
  • نیازمندیهای ارائه شده در بالا، در طیف نیازمندیهایی هستند که به شدت تغییر پذیری هستند. بدین معنی که با گذشت زمان و دریافت اطلاعات بیشتر از دومین و نحوه‌ی استفاده کاربران از برنامه، امکان تغییر در نیازمندیهایی که جنبه quantitative دارند وجود دارند. در همچنین مواقعی چه استراتژی‌ای در توسعه برنامه در پیش می‌گیرید؟
ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *