Web Developer
php Code Refactoring Series - part3
اگر با سری پست های اصلاح کد های پی اچ پی آشنایی ندارید و یا سایر قسمت ها را نخوانده اید از اینجا شروع کنید:
لطفا از 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' => 'عملیات با موفقیت انجام شد'
]);
}
لطفا نظرتون رو توی کامنت ها بنویسید تا این سری پست های اصلاح کد های پی اچ پی رو با هم دیگه کامل تر کنیم.
معرفی و مشاهده سایر پست های اصلاح کد های پی اچ پی
راستی لایک هم لطفااااااا یادتون نره :)
مطلبی دیگر از این انتشارات
Hoisting funstions vs hoisting classes
مطلبی دیگر از این انتشارات
مدیریت Dependency ها در جاوا - قسمت دوم: Apache Maven
مطلبی دیگر از این انتشارات
مقایسه زبان های برنامه نویسی برتر دنیا با پایتون