ورود

View Full Version : گفتگو: ساده سازی controller



r4hgozar
سه شنبه 29 مهر 1393, 09:46 صبح
سلام دوستان من در این مطلب خوندم که باید کنترل ها ساده باشن
من اینجا
http://www.dotnettips.info/post/1003/%D8%A7%D9%87%D9%85%DB%8C%D8%AA-controller-%D9%87%D8%A7%DB%8C-%D8%B3%D8%A7%D8%AF%D9%87-%D8%AF%D8%B1-asp-net-mvc

من کد ها رو با if در کنترل ها نوشتم و دارم چک می کنم که آیا کد چک باکش هام مقدار داره و مقادیرش چیه؟و بعد کارم رو انجام میدم.

این کار اشتباه و کار بهینه تری هم هست؟

ممنون

alireza_s_84
سه شنبه 29 مهر 1393, 10:11 صبح
سلام دوستان من در این مطلب خوندم که باید کنترل ها ساده باشن
من اینجا
http://www.dotnettips.info/post/1003/%D8%A7%D9%87%D9%85%DB%8C%D8%AA-controller-%D9%87%D8%A7%DB%8C-%D8%B3%D8%A7%D8%AF%D9%87-%D8%AF%D8%B1-asp-net-mvc

من کد ها رو با if در کنترل ها نوشتم و دارم چک می کنم که آیا کد چک باکش هام مقدار داره و مقادیرش چیه؟و بعد کارم رو انجام میدم.

این کار اشتباه و کار بهینه تری هم هست؟

ممنون

منظور از ساده بودن در این مبحث اینه که شما نباید لایه ها رو باهم ادغام کنید و تداخلی در کار لایه ها بوجود بیاد. برای مثال من اگه مدلی برای Login داشته باشم نیام کلاس مدل رو بذارم تو دل کنترلر یا اگر نوع شمارشی داریم که در طول برنامه ازش استفاده میکنم نیام اون رو توی کنترلر تعریف کنم.
واکشی داده ها از دتیتابیس رو بذارم به عهده لایه ی مربوطه و نیام توی کنترلر کدی بنویسم که کارش اتصال به پایگاه داده و واکشی رکوردها باشه.
کاری که شما انجام دادین (یعنی استفاده از شروط) کاملا درسته و هیچ ایرادی هم نداره

r4hgozar
سه شنبه 29 مهر 1393, 12:17 عصر
ممنون اقا علیرضا

sunn789
سه شنبه 29 مهر 1393, 20:28 عصر
دوستمون درست میفرمایند ،
اما در حال حاضر توی MVC تلاش بر اینکه که برای هر کاری متد بنویسید و درحد امکان هر متد کمترین کد رو داشته باشه ، اما در مورد If استفاده از if های تو در تو و زیاد ، ماکروسافت رد میکنه و اگر شما دو تا if رو پشت هم بنویسید خود VS به عنوان پیغام بهتون میگه که کد نویسی تون ضعیفه

r4hgozar
چهارشنبه 30 مهر 1393, 10:28 صبح
درسته از case استفاده کردم دیگه پیامی نداد.
اما برای چک کردن مجبودم از if و یا دستورات شرطی دیگه استفاده کنم

hakim22
چهارشنبه 30 مهر 1393, 11:02 صبح
به طور کلی کدی که شرط نداشته باشد از کدی که دارای شرط باشد بهتر است . همینطور کدی که یک شرط داشته باشد از کدی که دارای else هست بهتر است و الی آخر ...

هر چند نوشتن کد بدون شرط غیر ممکن است باید در استفاده از آن دقت کرد. در مورد کنترلرها گاهی نیاز است شرطهایی بررسی شوند ولی هرچی بتوانید حجم کنترلها را کمتر نگاه دارید تصحیح و بروز رسانی آن ساده تر میشود.

RIG000
چهارشنبه 30 مهر 1393, 11:21 صبح
دوستمون درست میفرمایند ،
اما در حال حاضر توی MVC تلاش بر اینکه که بریا هر کاری متد بنویسید و د رحد امکان هر متد کترین کد رو داشته باشه ، اما در مورد If استفاده از if های تو در تو و زیاد رو ماکروسافت رد میکنه و اگر شما دو تا if رو پشت هم بنویسید خود VS به عنوان پیغام بهتون میگه که کد نویسی تون ضعیفه
چه جوری و کجاپیغام میده؟ :(

hadi0x7c7
چهارشنبه 30 مهر 1393, 17:56 عصر
چه جوری و کجاپیغام میده؟ :(
احتمالا شرطی که ایشون نوشتن یا همیشه فالس هست یا ترو، یا اصلا شرط دومی اجرا نمیشه .

sunn789
پنج شنبه 01 آبان 1393, 08:40 صبح
احتمالا شرطی که ایشون نوشتن یا همیشه فالس هست یا ترو، یا اصلا شرط دومی اجرا نمیشه .

سلام دوست عزیز ، این که من گفتم هم برای خودم اتفاق افتاد و صحبت شما هم صحیح است و باید شرط رو میگذاشتم ،و هم اینکه داشتم توی یک مقاله ای میخوندم و هم اینکه توی سایت اقای نصیری یه مطلب بود با مضمون ساده سازی استفاده از if ،و در جای دیگر این بود که مثل قدین نوشتن چندین هزار کد الان دیگه نشون دهنده قدرت نیست ، و یکی از سیاستهایی که تیم mvc دارن دنبل میکنن ساده سازی متد ها ، استفاده کردن کمتر از if اسفاده از strongly Type هاست که مثلاً چند سال قبل توی برنامه های WPF و silvelight سعی میکردیم تمامی کنترلها رو در قسمت کد بنویسیم.
به هر حال من ارادت مند همه برنامه نویسها هستم

r4hgozar
پنج شنبه 01 آبان 1393, 14:41 عصر
ممنون از همه دوستان