مطالعه موردی اسکریپت اختصاصی فروشگاهی
فروشگاه اختصاصی؛ ساختن بر اساس منطق کسبوکار
وقتی فروشگاه به نرمافزار اختصاصی نیاز دارد، فهرست امکانات کافی نیست. این پروژه با Laravel از قواعد فروش، مالکیت داده و مرز مسئولیتها شروع میکند.
خواندن روایتپیش از امکانات، قواعد فروش
این سامانه فروشگاهی با Laravel ساخته شده است. در چنین پروژهای، اختصاصی بودن فقط به معنی طراحی متفاوت یا افزودن امکانات بیشتر نیست. نرمافزار باید بداند اطلاعات فروش کجا تعریف میشود، هر بخش چه مسئولیتی دارد و قواعد کسبوکار چگونه در محصول اجرا میشوند.
امکانات بیشتر، تصمیمهای بیشتری میخواهند
اگر مرجع اطلاعات و مسئولیت بخشها روشن نباشد، هر قابلیت تازه به چند تصمیم پراکنده وابسته میشود. آنوقت تغییر یک بخش میتواند فهم و کنترل بخشهای دیگر را دشوار کند. مسئله، ساختن پایهای بود که توسعه محصول روی آن قابل فهم بماند.
- برای اطلاعات، مرجع مشخص وجود داشته باشد.
- قواعد کسبوکار میان بخشهای مختلف پراکنده نشود.
- هر قابلیت ضروری، مسئولیت و جای روشن در سامانه داشته باشد.
هر بخش، مسئول کار خودش
دامنه کسبوکار، API، رابط و عملیات با مرزهای مشخص در نظر گرفته شدند. این تفکیک قرار نیست معماری را پیچیدهتر کند؛ قرار است معلوم باشد هر تصمیم متعلق به کدام بخش است. سطح جداسازی هم باید با نیاز واقعی محصول تناسب داشته باشد، تا تغییر یک بخش کنترل بخشهای دیگر را از بین نبرد.
منطق کسبوکار
قواعد فروش، مبنای تصمیمهای محصول هستند.
API و رابط
راه ارتباط با سامانه، مسئولیتی جدا از قواعد فروش دارد.
داده
مرجع اطلاعات و مسئولیت نگهداری آن مشخص است.
عملیات
آنچه تیم برای اداره و ادامه کار محصول نیاز دارد.
هر مرحله، یک مسئولیت روشن.
نسخه اول، با تمرکز بر کار ضروری
بخشی از کار، انتخاب چیزهایی بود که در نسخه اول ساخته نمیشوند. قابلیت ضروری اولویت داشت؛ امکانات بدون مسئول مشخص و معماریای که هنوز نیازش وجود نداشت، دلیل کافی برای ورود به دامنه نبودند. این انتخاب، توجه پروژه را روی کاری نگه میداشت که محصول باید انجام دهد.
اختصاصی بودن باید دلیل داشته باشد
نرمافزار اختصاصی زمانی ارزش دارد که قواعد و نیازهای کسبوکار آن را توجیه کنند. انتخاب فریمورک بعد از شناخت این نیازها معنا پیدا میکند. پرسش بهتر برای شروع این است: چه چیزی در کار شما وجود دارد که نرمافزار باید دقیقاً بر اساس آن ساخته شود؟
حالا نوبت مسئله شماست
کدام بخش کارتان به نرمافزار بهتری نیاز دارد؟
بگویید سیستم فعلی چه کاری را سخت کرده و میخواهید چه چیزی تغییر کند. از همین توضیح، بررسی را شروع میکنیم.