ویرگول
ورودثبت نام
vahiiiid
vahiiiid
خواندن ۲ دقیقه·۶ سال پیش

php Code Refactoring Series - part2

سری پست های اصلاح کد ها در پی اچ پی
سری پست های اصلاح کد ها در پی اچ پی

اگر با سری پست های اصلاح کد های پی اچ پی آشنایی ندارید و یا سایر قسمت ها را نخوانده اید از اینجا شروع کنید:

https://virgool.io/@vahiiiid/php-code-refactoirng-series-introduction-pckzxvccjw6f


توی این پست قصد دارم یک وضعیتی که کلی if و else داریم رو با هم refactor کنیم تا ببینیم چطور میتونیم کد تمیز تری داشته باشیم.

تکه کد زیر رو در نظر بگیرید، اینجا با توجه به ورودی تابع قصد داریم تشخیص دهیم که کدام کد رنگی استفاده شده رو باید برگردونیم و کلی شرط داریم:

if ($input == 'red') { } elseif ($input == 'blue') { return '3b1de5'; } elseif ($input == 'yellow') { return 'ffff00'; } elseif ($input == 'orange') { return 'af9c07'; } elseif ($input == 'black') { return '0c0c0c'; }else{ return 'c41515'; }

البته همان طور که می دونید می تونیم این کد رو با switch هم بنویسم که به صورت زیر می شود:

$response = 'c41515'; switch ($input) { case 'blue': $response = '3b1de5'; break; case 'yellow': $response = 'ffff00'; break; case 'orange': $response = 'af9c07'; break; case 'black': $response = '0c0c0c'; break; } return $response;

اما بریم سراغ تمیز کردن کد تو این شرایط با استفاده از روشی که بهش lookup table می گونید و کافی است ما یک آرایه associative از شروطمون داشته باشیم تا بتونیم به صورت زیر از اون استفاده کنیم:

$mapArray = [ 'blue' => '3b1de5', 'yellow' => 'ffff00', 'orange' => 'af9c07', 'black' => '0c0c0c' ]; if(isset($mapArray[$input]){ return $mapArray[$input]; }else { return 'c41515'; }

همان طور که دیدیم با استفاده از isset چک می کنیم اگه تو آرایه ای که ساختیم مقدار ورودی را داشتیم پس برش می گردونیم در غیر این صورت هم مقدار پیش فرض خودمون رو برمیگردونیم.


لطفا نظرتون رو توی کامنت ها بنویسید تا این سری پست های اصلاح کد های پی اچ پی رو با هم دیگه کامل تر کنیم.

معرفی و مشاهده سایر پست های اصلاح کد های پی اچ پی


راستی لایک هم لطفااااااا یادتون نره :)

phpphp refactoringاصلاح کدlookup tableبرنامه نویسی
Web Developer
شاید از این پست‌ها خوشتان بیاید