یه غری بزنم سر صبحی.
یادم میاد که اولین “مصاحبهای” که رفتم، ازم پرسید که ترجیح میدی از جنریکها استفاده کنی یا APIViewها یا ViewSetها برای پیاده کردن ویوها تو جنگو؟ خب من اون موقع به معنای واقعی کلمه هیچی هم بارم نبود و نمیدونستم واقعاً چی بگم. چون نمیدونستم اصلاً این چیزهایی که میگه چیه :)) یه APIView بلد بودم و بس. دیدم امنترین جواب اینه که بگم: «هرکدوم به جای خودش خوبه.» اینو گفتم و اونقدری هم امن بود که کارو در بیاره.
ولی حالا بعد از این مدت، نسبت به یک چیز اطمینان دارم: استفاده از ViewSet واقعاً مثل سرطان میمونه. یک تودهی بزرگ کثافت که هی باید همهچیشو override کنی. هی این کلاس رو چاق و چاقتر میکنی با اضافه کردن انواع و اقسام actionها.
نمیفهمم این ترس از کمی بیشتر نوشتن رو! البته نه که درکش نکنم، ولی واقعاً کار پسندیدهای نیست دوستان! خیلی وقتها میشه که شما از ViewSet استفاده میکنی، ولی اینقدر متدها رو override میکنی که عملاً اگر همون ویو رو با جنریک پیاده میکردی، هم خروجی مرتبتر و انسانیتری داشتی، هم چهبسا کمتر کد مینوشتی.
خلاصه، قبل از این که چشمبسته ViewSet رو ایمپورت کنید، به این سوال جواب بدین که این کلاس قراره چی به شما اضافه کنه که جنریکها نمیتونن؟ آیا واقعاً میتونه این نیاز رو بهسادگی پاسخ بده؟