vahiiiid
vahiiiid
خواندن ۳ دقیقه·۶ سال پیش

php Code Refactoring Series - part3

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

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

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


لطفا از else استفاده نکنید!! در اکثر مواردی که ما در کدهامون از else استفاده می کنیم می تونیم آنها رو حذف کنیم برای مثال به تکه کد زیر نگاه کنید:

$result = //یک عملیاتی اینجا مثل کوئری زدن انجام دایم if ($result) { return response()->json([ 'status' => true, 'message' => 'عملیات با موفقیت انجام شد' ]); } else { return false; }

پس اول بیایید این else رو حذف کنیم تا در ادامه کد رو باز هم تمیز تر کنیم:

$result = //یک عملیاتی اینجا مثل کوئری زدن انجام دایم if ($result) { return response()->json([ 'status' => true, 'message' => 'عملیات با موفقیت انجام شد' ]); } return false;

اما اگر با مبحث برنامه نویسی defensive آشنا باشید یکی از ساده ترین کارها این هست که ابتدا از وضعیت ورودی خود اطمینان حاصل کنیم یعنی کدمون رو به این صورت بنویسیم:

$result = //یک عملیاتی اینجا مثل کوئری زدن انجام دایم if (!$result) { return false; } return response()->json([ 'status' => true, 'message' => 'عملیات با موفقیت انجام شد' ]);

حالا کدی که ما داریم خیلی خوانا تر هست چون تعداد خط هایی که indentation یا فرورفتگی دارند کم تر شدند.

در اکثر مواقع ما باید شرط رو جایی بنویسم که کد با کمترین indentation را شامل شود.

پس در این مثال چون return false تنها یک خط هست بهتر هست داخل شرط بیاید ولی در حالت دیگه برگشت response که شامل ۴ خط هست بدون indentation می باشد که خوانایی کد را تمیز تر می کند.

این رو به یاد داشته باشید که همیشه indentation های زیاد و چند سطحی به ما می گویند که احتمالا نیاز به refactoring داریم!

حالا بیایید شرایطی رو در نظر بگیریم که ما تابع void داریم که هیچ چیزی بر نمی گرداند، یعنی شرایطی که یک تابعی داریم که در صورت صحیح بودن یک شرط یک عملیاتی را انجام می دهیم در غیر این صورت کاری را انجام نمی دهد:

public function test($input) { if ($input) { $data = // عملیاتی برای ساختن داده ها با استفاده از ورودی; return response()->json([ 'data' => $data, 'status' => true, 'message' => 'عملیات با موفقیت انجام شد' ]); }
}

در این جور مواقع باز هم می تونیم تعداد خطوطی که indentation خوردند رو کم کنیم کافی هست کد رو به صورت زیر بنویسیم:

public function test($input) { if (!$input) { return null; } $data = // عملیاتی برای ساختن داده ها با استفاده از ورودی return response()->json([ 'data' => $data, 'status' => true, 'message' => 'عملیات با موفقیت انجام شد' ]); }


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

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

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


phprefactoringبرنامه نویسی
Web Developer
اینجا جاییه که ما برنامه نویس ها درباره ی خودمون و علاقمندی هامون میگیم. coderlife.ir
شاید از این پست‌ها خوشتان بیاید