<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Ehsan Rafiee</title>
        <link>https://virgool.io/feed/@ehsan1733</link>
        <description>PHP/Laravel Developer</description>
        <language>fa</language>
        <pubDate>2026-06-17 00:16:23</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/144305/avatar/YJI0Ka.png?height=120&amp;width=120</url>
            <title>Ehsan Rafiee</title>
            <link>https://virgool.io/@ehsan1733</link>
        </image>

                    <item>
                <title>تبدیل کد کثیف به یک کد تمییز و پاکیزه!</title>
                <link>https://virgool.io/@ehsan1733/%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%DA%A9%D8%AF-%DA%A9%D8%AB%DB%8C%D9%81-%D8%A8%D9%87-%DB%8C%DA%A9-%DA%A9%D8%AF-%D8%AA%D9%85%DB%8C%DB%8C%D8%B2-%D9%88-%D9%BE%D8%A7%DA%A9%DB%8C%D8%B2%D9%87-diuiqqw6sitw</link>
                <description>یکی از موارد رایج که یک کد تمییز را به سادگی یک کد کثیف تبدیل می‌کند استفاده زیاد  و نادرست  از دستورات 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(&#039;user_id&#039;,auth()-&gt;id())-&gt;get();
}
if($check_favorite != &amp;quot &amp;quot){
   if(count($check_favorite)  &gt;  0) {
      $fav = 0;
}else{
$fav = 1;
}
موارد اشتباه در کد بالاالبته بخش از مشکل کد بالا از logic و یا همان منطق کد ها است و این موضوع میتواند باعث کثیف شدن کدها بشود.هیچ نیازی نیست دوبار از if استفاده کنیم زمانی که else آن همان معنا را می دهد یعنی اگر check_user_login == false نباشد حتما true است.با استفاده از کلاس UserFav ابتدا تمامی لیست مورد علاقه کاربر دریافت می شود و سپس در if بعدی چک میکند که یک string خالی نباشد چون زمانی که دستور get موردی را از دیتابیس بگیرد نتیجه آن یک string  خالی نیست  سپس یک if تعریف شده است که count($check_favorite)  &gt;  0 می گوید تعداد آن نتایج برگشتی بزرگتر از 0 باشد و سپس داخل if نوشته شده $fav = 10;  باشد و حالت else آن یعنی زمانی که count صفر نباشید عدد 11 را برای متغییر فیکس شده است، هیچ نیازی نیست اول داده ها را از دیتابیس بگیریم سپس Count آنرا بررسی میکنیم میتوانیم با تابع count فقط تعداد آنرا از دیتابیس دریافت کنیم.حالا کد تمییز آن را بنویسیمif(Auth::check() == false){
   $login = 0; 
    $fav = 0;
}else{
    $login= 1;
   $check_favorite =  UserFav::where(&#039;user_id&#039;,auth()-&gt;id())-&gt;count();
   ($check_favorite  &gt; 0 )  ? $fav = 1 : $fav = 0 ;
 } چقدر کد کوتاه تر شد و میزان خوانایی کد بالا رفت :)</description>
                <category>Ehsan Rafiee</category>
                <author>Ehsan Rafiee</author>
                <pubDate>Sat, 24 Oct 2020 00:40:53 +0330</pubDate>
            </item>
                    <item>
                <title>آموزش رفع مشکل N + 1</title>
                <link>https://virgool.io/@ehsan1733/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D9%81%D8%B9-%D9%85%D8%B4%DA%A9%D9%84-n-1-o2mpcm3fohvg</link>
                <description> https://www.aparat.com/v/76o20 مشکل N + 1 زمانی در برنامه نویسی زمانی رخ می دهد که یک نرم افزار با دیتابیس ارتباط دارد ، این بدان معنا است که برای یک درخواست دفعات مختلفی به دیتابیس کوئری ارسال می شود.قطعا باید خیلی مراقب بود تا برای یک درخواست فقط یک کوئری به دیتابیس ارسال مگر در مواردی که دیگر امکان پذیر نیست.قطعا عدم آشنایی با مشکل N+1 می تواند مشکلاتی در نرم افزار شما ایجاد کند که در ویدیو زیر کاملا در مورد این موضوع توضیح داده ام .</description>
                <category>Ehsan Rafiee</category>
                <author>Ehsan Rafiee</author>
                <pubDate>Wed, 04 Mar 2020 18:44:25 +0330</pubDate>
            </item>
            </channel>
</rss>