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

چالش ششم DDD Plus

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

پیش‌زمینه:

شما در شرکت CoffeeHub.Com مشغول توسعه‌ی اپلیکیشنی هستید که به افراد این امکان را می‌دهد که کافه‌های نزدیک محل زندگی خود را پیداکنند. سفارش قهوه بدهند. همچنین نظرات سایر افراد رو در مورد اون کافه بدونند.

وقتی اولین بار یک نفر وارد اپ شما می‌شوید، لیست کافه‌ها در CoffeeHub.com بر اساس یکسری پارامترهای مختلفی مرتب شده و به کاربر نمایش داده می‌شود. پارامترهایی از جمله امتیاز کافه‌ها بر اساس نظرات کاربران.

سناریو:

شما در حال توسعه دو ماژول جدید برای این اپ هستید.

یک ماژول ads که به مدیر بازاریابی شما این امکان را می‌دهد که بر اساس قراردادی که با کافه بسته است، آن کافه را در بالای لیست نمایش دهد.

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

فرض کنید یک تیم مسئول توسعه‌ی تعریف منو برای هر کافه و ثبت سفارش است. تیم دیگری مسئول توسعه‌ی ماژول ads است. تیم دیگری هم بر روی توسعه ماژول CoffeeTime کار می‌کند.

صورت مسئله:

همانطور که متوجه شده‌اید نمایش لیست کافه‌ها در صفحه اول اپ شما، متاثر از پارامترهای مختلفی است.

  1. آیا کافه A دارای امتیاز بالا یا پایین ست؟
  2. آیا قرارداد ads با ما بسته است؟
  3. آیا در طرح CoffeeTime فعال مشارکت دارد یا خیر؟

با توجه به شرایط بالا به این سوالات پاسخ دهید؟

  • مسئله نمایش لیست کافه‌ها در صفحه اول اپ را به کدام تیم واگذار می‌کنید؟
  • در صورتی که این مسئولیت به هیچکدام از تیم‌های ads و CoffeeTime داده نشود، تیم‌های ads و CoffeeTime چگونه با این تیم همکاری می‌کنند؟
  • مالک/مدیر محصول این اپیک شرح داده شده در بالا بر عهده کیست؟
  • چگونه از اعمال سیاست‌های نمایش لیست کافه‌ها(با توجه به پیچیدگی‌هایی که در بالا شرح داده شد) مطمئن می‌شوید؟
  • تست‌های پذیرش برای اطمینان از صحت عملکرد اپ را بنویسید؟
ارسال دیدگاه

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