<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های alirezat775</title>
        <link>https://virgool.io/feed/@alirezat775</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-07 22:34:58</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/38235/avatar/h2kbxa.png?height=120&amp;width=120</url>
            <title>alirezat775</title>
            <link>https://virgool.io/@alirezat775</link>
        </image>

                    <item>
                <title>اصول SOLID</title>
                <link>https://virgool.io/web-how/%D8%A7%D8%B5%D9%88%D9%84-solid-vxpmphwkhush</link>
                <description>SOLIDپنج اصل SOLID توسط Robert C. Martin معروف به (Uncle Bob) برای اولین بار مطرح شد.هدف از SOLID توسعه کدهای با خوانایی بالاتر و توسعه پذیر تر و همچنین ایجاد یک استاندارد بین تمامی توسعه دهندگان است.اصول SOLID چه مشکلاتی رو حل می‌کند ؟بدون استفاده از اصول SOLID مشکلات زیر وجود خواهد داشت:Rigidity به خاطر وابستگی بیش از حد کلاس ها و توابع به یکدیگر انجام تغییرات به سختی امکان پذیر است.Fragilityبه خاطر وابستگی بیش از حد کلاس ها و توابع به یکدیگر هر بار باید متدها و یا توابع تغییر پیدا کنند.Immobilityاستفاده از کلاس ها و یا متدها به خاطر وابستگی بهم دیگر یا پیچیدگی امکان پذیر نیست.Viscosityتغییرات با اضافه کردن کد های اشتباه امکان پذیر بود ولی پروژه بزرگ و بزرگتر می‌شد و امکان توسعه وجود نداشت.Duplicationمتد ها در جاهای مختلف تکرار می‌شدن و در صورت رفع باگ یا مشکلی نیاز بود در تمامی جاهای که متد نوشته شده بود تغییرات اعمال شود.چرا SOLID ؟اصول SOLID با توجه به مشکلاتی که در توسعه نرم افزار به وجود آمده شکل گرفت که بر پایه پنج اصل می‌باشد این اصول عبارت اند از :Single Responsibility PrincipleOpen-Closed PrincipleLiskov Substitution PrincipleInterface Segregation PrincipleDependency Inversion PrincipleSingle Responsibilityهر کلاس وظیفه انجام تنها و تنها یک کار را دارد هیچ کلاسی نباید دو یا چند عملیات انجام دهد.یا به مفهومی دیگر : یک کار انجام بده اما درست انجام بده.Open-Closedهر کلاس باید قابل توسعه باشد ولی تغییر نکند.ضمانت می‌کند که کلاس ها قابل ارث بری و استفاده هستند ولی نباید از بیرون قابل تغییر باشند.Liskov Substitutionکلاس والد باید مناسب تمامی کلاس های فرزند باشد و اگر کلاسی از کلاسی ارث بری میکند نباید رفتار کلاس والد خود را تغییر دهد.Interface Segregationداشتن interface های کوچیک بهتر از داشتن یک interface بزرگ است.Dependency Inversionکلاس ها و ماژول ها به جز لایه انتزاعی (abstraction layer) نباید به لایه پایین تر از خود وابستگی داشته باشند.جمع بندیقطعا استفاده از اصول و قوانین همچون SOLID موجب بهبود فرآیند توسعه و تمیز بودن کد می‌شود.استفاده از این اصول باعث می‌شود که یک استاندار مشترک در کل پروژه بوجود بیاید و تا حدودی مشکلات کار کردن روی پروژه های که بیش از یک توسعه دهنده در حال توسعه آن هستند را کاهش دهد. ولی این به این معنی نیست که که اگر تنها توسعه دهنده‌ی پروژه هستید این اصول را رعایت نکنید.در کل استفاده از اصول SOLID باعث نوشتن کد های با کارایی بالا (higher performance) ، امکان استفاده در جای مختلف (reusable) ، توسعه ساده تر (maintainable) ، مقیاس پذیر (scalable) و قابل تست (testable) می‌شود.</description>
                <category>alirezat775</category>
                <author>alirezat775</author>
                <pubDate>Thu, 25 Apr 2019 19:30:24 +0430</pubDate>
            </item>
                    <item>
                <title>دیزاین پترن ها (Design Patterns)</title>
                <link>https://virgool.io/@alirezat775/%D8%AF%DB%8C%D8%B2%D8%A7%DB%8C%D9%86-%D9%BE%D8%AA%D8%B1%D9%86-%D9%87%D8%A7-design-patterns-lbhpa07nodu2</link>
                <description>دیزاین پترن ها (Design Patterns)به طور کلی وقتی در ساخت و پیدا سازی نرم افزار یک مشکلی پیش میاد چندین راه حل برای حل اون مشکل وجود داره، ولی یک سری راه حل های کلی و مفهومی (Abstract) وجود داره که خیلی خوب طراحی شده،و قابلیت استفاده توی موارد بیشتری رو داره، در اصل یک سری الگو وجود داره که به کمک اون ها میشهکد های با بهره‌وری بالاتر (Performance) و خوانی بیشتر نوشت به این الگو های طراحی، دیزاین پترین (Design Pattern) گفته میشهدیزاین پترن ها به ۳ بخش کلی تقیسم میشنسازنده (Creational)ساختاری (Structural)رفتاری (Behavioral)دیزاین پترن های سازندهاین نوع از دیزاین پترن ها جهت بهبود ایجاد یک یا چند نمونه (Instance) از شئ  (Object) مورد نظر استفاده میشود. از پرکاربرد ترین آن ها میتوان به Singleton و یا Abstract Factory اشاره کرددیزاین پترن های ساختاریاین نوع از دیزاین پترن ها جهت بهبود نظم و ساختار اشیا‌ (Objects) و ایجاد توابع جدید از شئ  (Object) مورد نظر استفاده میشود.از پرکاربرد ترین آن ها میتوان به Adapter و یا Facade اشاره کرددیزاین پترن های رفتاریاین نوع از دیزاین پترن ها جهت بهبود رفتار مشترک بین اشیا  (Object) استفاده میشود.از پرکاربرد ترین آن ها میتوان به Observer اشاره کرد</description>
                <category>alirezat775</category>
                <author>alirezat775</author>
                <pubDate>Sun, 14 Apr 2019 00:47:44 +0430</pubDate>
            </item>
            </channel>
</rss>