<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های فاطمه شیرزادفر</title>
        <link>https://virgool.io/feed/@fatemeh.shirzadfar</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-17 05:09:18</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/157846/avatar/hogMIj.png?height=120&amp;width=120</url>
            <title>فاطمه شیرزادفر</title>
            <link>https://virgool.io/@fatemeh.shirzadfar</link>
        </image>

                    <item>
                <title>۵ عادت بد توسعه دهندگان نرم افزار</title>
                <link>https://virgool.io/coderlife/%DB%B5-%D8%B9%D8%A7%D8%AF%D8%AA-%D8%A8%D8%AF-%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%D8%AF%D9%87%D9%86%D8%AF%DA%AF%D8%A7%D9%86-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-sbwtfqnay5fr</link>
                <description>هیچ قانون سخت و سریعی برای چگونه بودن یک برنامه نویس وجود ندارد. بنابراین، اگر سبک برنامه نویسی خود را داشته باشید، اشتباه نیست و اشکالی ندارد.مجموعه مشخصی از عادت‌ها برای یک برنامه نویس وجود ندارد، اما می‌خواهم به برخی از رفتارهایی که مانع پیشرفت یک برنامه نویس می‌شود اشاره کنم.در این مقاله،‌ ۵ عادت که توسعه دهندگان باید از آن برای بالا رفتن از نردبان پیشرفت دوری کنند را برای شما شرح می‌دهم:۱.هیچ ساختار و سبکی برای کدنویسی وجود نداردتوافق بر سر ساختار کد در مقیاس بزرگ (معماری) و سبک کد در مقیاس کوچک یک امر ضروری است. بعضی اوقات برنامه‌نویسان بدون تعیین این موارد شروع به کار بر روی یک پروژه می‌کنند و در نتیجه وقتی پروژه گسترده و گسترده‌تر می‌شود، مدیریت آن برای آن‌ها بسیار دشوار خواهد شد.علاوه بر این، ساختار و سبک کد در زمانی که بیش از یک برنامه نویس در حال کار روی یک پروژه باشند، در شرایط کمک می‌کند (اداره کردن کد آسان می‌شود).۲. کپی و paste کورکورانه یک کدبدون شک، همه‌ی ما از کدهای داخل اینترنت استفاده کرده‌ایم و می‌کنیم.در حقیقت، استفاده مجدد نکردن از کد هوشمندانه‌ترین ایده نیست. اما هر بار که از برخی از کدها استفاده می‌کنید، آیا کورکورانه آن را کپی می‌کنید و فقط بررسی می‌کنید که آيا این کد جواب می‌دهد یا نه؟ خب اگر جواب بله است پس شما فرصتی برای یادگیری ندارید.دلیل جستجوی یک کد این است که شما یا نمی‌دانید که چگونه این کار را انجام دهید و یا می‌خواهید در  وقت خود صرفه‌جویی کنید. سعی کنید حداقل قطعه کدی را که از آن استفاده کرده‌اید، درک کنید. لازم نیست آن تکه کد را به صورت خط به خط دنبال کنید اما حداقل روش استفاده شده را بفهمید و درک کنید.شاید در سطح بعدی تولید، به پیاده کردن یک راه حل مشابه برای پروژه بر خورد کنید و شاید حتی آن را ساده‌تر کند. به این ترتیب، از این مزیت نهایت استفاده را خواهید برد.۳.شب‌ها تا دیر وقت بیدار هستنداکثر برنامه‌نویسان جغدهای شبانه هستند.این معمولا به این واقعیت مربوط می‌شود که اغلب برنامه‌نویسان همیشه در اواخر شب برنامه‌ریزی می‌کنند؛ چراکه در طول روز نمی‌توانند تمرکز کافی داشته باشند و زمان بیشتری برای دیباگ و کامپایل کردن بدون مزاحمت‌هایی مثل سرورهای شلوغ یا جلسات مختلف کاری خواهند داشت.چرا شب؟ زیرا شب‌ها این فرصت را به آن‌ها می‌دهد که تنها باشند و مستقیما روی کار خودشان متمرکز شوند. به همین دلیل معمولا برنامه‌نویسان بیشترین بازدهی و فعالیت را در اواخر شب دارند.از طرفی توسعه‌دهندگان هر روز صبح مجبورند سرکار بروند و بیدار ماندن در شب، چیزی جز افزایش خستگی و استرس در آن‌ها ندارد؛ با گذشت زمان نداشتن خواب کافی و انواع مسائل روحی و  فیزیولوژکی موجب تقویت انرژی‌های منفی، فرسودگی، افسردگی و بیمارهای مختلف می‌شود.راه‌حل اینجاست که به طور منظم، شب‌ها بخوابید و توان جسمی خود را تازه کنید و یادبگیرید که چگونه در طول روز روی کار‌های خود متمرکز شوید.۴.نداشتن مستنداتفکر کردن به این که مستندات یک کار بیهوده یا سنگین و وقت‌گیر است و هر کاری بر آن ارجح و مقدم باشد؛ باعث ایجاد بدهی فنی می‌شود و اصلی‌ترین مانع برای ورود به یک تیم برنامه نویسی است.اگر برنامه‌نویسان تلاش بیشتری را برای نوشتن مستندات صرف کنند، بنابراین فرایندهای بهتری برای رسیدگی به این امر ایجاد می‌شود. این امر موجب افزایش سرعت پردازش و توسعه یک پروژه نیز می‌شود.۵.کدنویسی بدون انجام تستاگر بحث جوانب مثبت و منفی TDD را کنار بگذاریم، داشتن و انجام دادن برخی از تست‌ها بسیار ضروری است.برخی ترجیح می‌دهند در ابتدا تست بنویسند، برخی دیگر تست‌ها را بعد از توسعه ‌می‌نویسند؛ در هر صورت، بهتر از نداشتن تست است.داشتن یک پوشش مناسب برای تست‌ها، توسعه دهندگان را ترغیب می‌کند تا با اطمینان بیشتر و با وجود ایرادات کم‌تری، تغییرات را اعمال کرده و مشکلات ساختاری کدها را مرتبا رفع کنند؛ که به نوبه خود سرعت تیم را بهبود می‌بخشد و باعث می‌شود در نهایت پروژه‌ی بهتری به کاربر تحویل داده شود.از همین حالا، فقط به این رفتارهای خود توجه کنید و سعی کنید این عادات را اصلاح کنید، بعد از اینکه این کار برای شما یک الگو شد، به طور خودکار خواهید فهمید که چه چیزی برای شما بهتر است.امیدوارم که این مقاله به شما در روند زندگی شخصی و حرفه‌ای‌تان کمک کند. از وقتی که گذاشتید ممنونم.‌ منبع </description>
                <category>فاطمه شیرزادفر</category>
                <author>فاطمه شیرزادفر</author>
                <pubDate>Sun, 26 Jul 2020 21:42:22 +0430</pubDate>
            </item>
                    <item>
                <title>ضد الگوها در توسعه نرم‌افزار چه‌ هستند؟</title>
                <link>https://virgool.io/web-how/%D8%B6%D8%AF-%D8%A7%D9%84%DA%AF%D9%88%D9%87%D8%A7-%D8%AF%D8%B1-%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%D9%86%D8%B1%D9%85%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%DA%86%D9%87-%D9%87%D8%B3%D8%AA%D9%86%D8%AF-ieji9fyovx84</link>
                <description>ساختار خوب یک نرم‌افزار برای گسترش و نگهداری یک سیستم ضروری است. توسعه نرم‌افزار یک فعالیت بی‌نظم و پراکنده است، بنابراین ساختار اجرای سیستم‌ها از ساختار برنامه ریزی شده متناسب با معماری ، تجزیه و تحلیل و طراحی، منحرف می شود.تغییر ساختار نرم‌افزار، یک روش مؤثر برای بهبود ساختار نرم‌افزار است.همیشه در هر کاری سعی کنید خودتان را به چالش بکشید و از خودتان انتقاد کنید تا بتوانید پیشرفت داشته باشید،‌ یک برنامه‌نویس خوب هم باید از همین الگو پیروی کند و این کار را انجام دهد.ضد الگوها یا  Anti Patterns،  یک سری روند و راه نامناسب هستند، که وقتی یک برنامه‌نویس قصد دارد مسئله‌های مختلف را حل کند، آن‌ها را پیاده‌سازی می‌کند و معمولا همین  الگو‌ها و روندها است که باعث ایجاد مشکل در ساختار برنامه می‌شود.ساختار خوب یک برنامه به توسعه پذیری و نگهداری آن کمک می‌کند، اما متاسفانه می‌بینیم که اکثراً  سرعت تحویل پروژه را به معماری نرم‌افزار ترجیح می‌دهند و برای ساخت یک برنامه بسیار بی‌نظم کار می‌کنند، همچنین بسیار زیاد می‌بینیم که شرکت‌ها برای کاهش هزینه‌های خودشان از برنامه‌نویس‌های بدون تجربه استفاده کرده و از بسیاری از مراحل توسعه نرم‌افزار مثل  …  چشم‌پوشی می‌کنند؛(البته به کار گیری نیروهای تازه کار بسیار خوب است، اما به شرط وجود نیروهای باتجربه و کار کردن در کنار آن‌ها) این کارها باعث می‌شود که کار بی‌کیفیت از آب دربیاید. به این نکته توجه کنید که هزینه‌ای که در ابتدا برای نوشتن یک برنامه خوب می‌دهید تا کیفیت کارتان را بالا می‌برید، از بسیاری از هزینه‌های شما در آینده جلوگیری می‌کند؛ پس این مسأله را شوخی نگیرید.اما اگر ما این ضد الگو‌ها رو بشناسیم، می‌فهمیم که چه الگویی برای ساخت یک برنامه اشتباه است! مثلا اگر یک برنامه نویس، کلاسی بنویسد، که کارهای زیادی  داخل این کلاس انجام شود به طور مثال آپلود عکس، دسترسی دادن به کاربران، مدیریت خطا، نمایش تصویر و اعتبار سنجی، منجر به یه ضد الگو به اسم Blob) God Object ) می‌شود.مثال:class GodObject {  
    function PerformInitialization() {}
    function ReadFromFile&#40;&#41; {}
    function WriteToFile&#40;&#41; {}
    function DisplayToScreen() {}
    function PerformCalculation() {}
    function ValidateInput() {}
    // and so on... //
}این باعث می‌شود که به طور مثال با تغییر یک قسمت از یک تکه کد در برنامه، نیاز به تغییر قسمت‌های دیگر در برنامه باشد؛ این کار در توسعه یک نرم افزار قابل قبول نیست و ممکن است برنامه‌نویس نتواند از کدهای برنامه، استفاده مجدد(Reuse) کند.همچنین بارگزاری این کلاس در حافظه اصلی (RAM) می‌تواند حجم زیادی از فضای RAM را اشغال کند.یکی دیگر از این ضدالگو‌ها Lava Flow  یا جریان گدازه‌ها است. شاید شما هم با این مسأله برخورد کرده‌اید که برنامه‌نویسان در هنگام کار روی یک پروژه از روش‌های بسیار پیچیده استفاده می‌کنند،  چرا که فقط روی خروجی آن متمرکز هستند و به مسائل دیگر اهمیتی نمی‌دهند؛ اما هنگامی که برنامه‌نویسان جدیدی وارد پروژه شوند از این نوع کدنویسی شکه می‌شوند، درواقع آن‌ها اصلاً از چیزی که نوشته شده سر در نمی‌آورند یا اگر هم بفهمند، بسیار زمان خواهد برد. از طرفی این کدها دستکاری هم نمی‌شوند، زیرا همه ترس دارند که با تغییر قسمتی از کدها،‌ کل پروژه از کار بیفتد. رفته‌رفته جای این کدها محکم می‌شود و ضد الگو Lava Flow  یا جریان گدازه‌‌ها رخ خواهد داد. جای این گدازه‌ها بسیار محکم است و کسی هم قادر به تغییر آن نیست؛ اگر که برنامه نویسی اصلی نباشد.راه جلوگیری از این ضدالگو،‌پیروی از یک روش استاندارد برای کد نویسی است! ( ساده و قابل بفهم کد بنویسید ، پیچیده کدنویسی کردن هنر نیست.)برخی دیگر از این ضد الگو‌ها به شرح زیر هستند :Death by PlanningBig Ball of MudBoat AnchorGolden HammerGold Platingسعی کنید برای پیشرفت کردن و حرفه ای شدن در این حوزه، اصولی کار کنید و این نکات را رعایت کنید؛ همچنین به کیفیت کدی که تولید می‌کنید اهمیت زیادی بدهید.</description>
                <category>فاطمه شیرزادفر</category>
                <author>فاطمه شیرزادفر</author>
                <pubDate>Wed, 08 Apr 2020 12:51:26 +0430</pubDate>
            </item>
            </channel>
</rss>