یکی از موارد رایج که یک کد تمییز را به سادگی یک کد کثیف تبدیل میکند استفاده زیاد و نادرست از دستورات if است،که خوانایی و اشکال زدایی و نگهداری و توسعه کد را سخت و پیچده میکند.
استفاده از if یکی از آموزش های اولیه در هر زبان برنامه نویسی است که افراد آنرا یاد میگیرند و باید در میزان استفاده از دستورات شرطی دقت لازم را داشته باشند.
در این مطلب میخوام بررسی کنم که چگونه با کمترین استفاده از if کد تمییز و خوانایی داشته باشیم.
در مثال زیر که بر پایه فریمورک لاراول نوشته شده است قصد داریم چک کنیم اگر کاربر لاگین بود داده هایی را ریسپانس دهیم و اگر نبود که داده های متفاوتی برای کاربر ارسال کنیم در کد زیر خیلی قرار نیست بر logic کدها فوکس کنیم در این محتوا تمرکز ام بر تمییز بودن کدها است .
کد کثیف:
$check_user_login = Auth::check(); if($check_user_login == false){ $login = 0; }else{ $login= 1; } if($check_user_login == true){ $check_favorite = UserFav::where('user_id',auth()->id())->get(); } if($check_favorite != " "){ if(count($check_favorite) > 0) { $fav = 0; }else{ $fav = 1; }
موارد اشتباه در کد بالا
البته بخش از مشکل کد بالا از logic و یا همان منطق کد ها است و این موضوع میتواند باعث کثیف شدن کدها بشود.
حالا کد تمییز آن را بنویسیم
if(Auth::check() == false){ $login = 0; $fav = 0; }else{ $login= 1; $check_favorite = UserFav::where('user_id',auth()->id())->count(); ($check_favorite > 0 ) ? $fav = 1 : $fav = 0 ; }
چقدر کد کوتاه تر شد و میزان خوانایی کد بالا رفت :)