<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های رسول دانش زاهی</title>
        <link>https://virgool.io/feed/@rasouldanesh</link>
        <description>رسول دانش زاهی توسعه دهنده وب</description>
        <language>fa</language>
        <pubDate>2026-06-07 06:32:53</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/418452/avatar/JQ4QGb.jpeg?height=120&amp;width=120</url>
            <title>رسول دانش زاهی</title>
            <link>https://virgool.io/@rasouldanesh</link>
        </image>

                    <item>
                <title>اصول سالید (solid) چیست ؟</title>
                <link>https://virgool.io/@rasouldanesh/%D8%A7%D8%B5%D9%88%D9%84-%D8%B3%D8%A7%D9%84%DB%8C%D8%AF-solid-%DA%86%DB%8C%D8%B3%D8%AA-zcpzrnk9b0vz</link>
                <description>سلام دوستان رسول دانش هستم امروز تو این مطلب می خوام شما رو با پنج اصل اساسی در طراحی شی گرا آشنا کنم .اصول SOLID پنج اصل اساسی در طراحی شیءگرا و برنامه‌نویسی شیءگرا هستند. این اصول به وسیله‌ی رابرت سی. مارتین (Robert C. Martin) معرفی شده‌اند.وقتی که شما دارین یه کلاس رو طراحی می کنید باید این پنج اصل رو در آن رعایت کنین ، که نر افزار شما افزایش انعطاف پذیری کد داشته باشدقابل نگه داری بودن کدهاتون و پراکنده نباشن و خوانایی بالایی داشته باشنقابلیت تست پذیری بالایی داشته باشه کد هاتون توسعه پذیری بیشتری داشته باشن حالا این پنج اصل چی هستن ؟ 1. تک‌مسئولیتی (Single Responsibility Principle - SRP):   - هر کلاس باید تنها یک دلیل برای تغییر داشته باشد و مسئولیت‌های یک کلاس باید به یکدیگر مرتبط باشند.2. بازبینی مفهوم (Open/Closed Principle - OCP):   - برنامه باید باز برای توسعه و بسته برای تغییر باشد. به اصطلاح، یک کلاس باید بتواند توسط افزودن کد، اما بدون تغییر در کد موجود تغییر کند.3. تعامل بین‌عناصر (Liskov Substitution Principle - LSP):   - هر زیرنوعی باید بتواند به عنوان نمونه‌ای از نوع اصلی خود در برنامه استفاده شود، بدون اینکه ویژگی‌های برنامه را تغییر دهد.4. جداسازی وابستگی‌ها (Interface Segregation Principle - ISP):   - یک کلاس نباید به ویژگی‌هایی وابسته باشد که برنامه از آن استفاده نمی‌کند. به عبارت دیگر، کلاس‌ها نباید وابستگی به ویژگی‌هایی داشته باشند که نیازی به آنها ندارند.5. استفاده از وابستگی‌های معکوس (Dependency Inversion Principle - DIP):برنامه باید به جای وابستگی به جزئیات، به اصول بالاتر (ابتکارها) وابسته باشد. به عبارت دیگر، وابستگی‌ها باید به سمت ابتکارها جلب شوند،.در آینده هر کدوم از این اصل ها رو بیشتر توضیح میدم و مثال های مختلفی با هم می‌بینیم، </description>
                <category>رسول دانش زاهی</category>
                <author>رسول دانش زاهی</author>
                <pubDate>Mon, 18 Dec 2023 18:05:04 +0330</pubDate>
            </item>
                    <item>
                <title>چطور در برنامه نویسی پیشرفت کنم !</title>
                <link>https://virgool.io/fboard/%DA%86%D8%B7%D9%88%D8%B1-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%BE%DB%8C%D8%B4%D8%B1%D9%81%D8%AA-%DA%A9%D9%86%D9%85-waxu1qnrlvsz</link>
                <description>سلام دوستان رسول دانش هستم توسعه دهنده وب امروز می خواستم چند نکته ساده بهتون بگم که با رعایت و عمل کردن به اون ها تو برنامه نویسی پیشرفت میکنی و از اون لذت میبرین!کسایی که برنامه نویسی رو شروع کردن همش به خودشون میگن که یک برنامه نویسی خیلی سخته حس میکنم برای یادگیری خیلی ضعیفم حس میکنم یادگیریم خیلی کند هستیه برنامه نویس هایی هم هستن که مشغول به کار هستن ولی حس خوبی از انجام اون ندارن و میگن هیچ پیشرفتی نداشتم !برای اینکه این حس ها رو نداشته باشیم باید چکار کنیم1- تمرین کنید تمرین کنید تمرین کنید!وقتی که یک ویدئو آموزشی رو نگاه میکنید، سعی کنید که کد رو درک کنید و خودتون اون کد رو بزنید و یا مثال های مختلف با اون کد بزنید و اگر قسمتی رو متوجه نشدید برید و جستجو کنید.2- برای خودتون پروژه جدید بسازید و خودتون به چالش بکشید!وقتی که جلوتر رفتید و قسمت های جدیدی تو آموزش ویدئویی یاد گرفتید مثلا قالب یک سایت فروشگاهی رو بزنید و سعی کنید اون رو تغییر بدید یا ویژگی جدید به اون اضافه کنید مثل اضافه کردن سطح دسترسی برای مدیران تعریف کنید.3- انگلیسی خودتون تقویت کنید!تمامی مرجع های خوب و کامل به زبان انگلیسی هست وقتی که می خواین با فریم ورک جدید کار کنین داکیومنت اون به انگلیسی هست یا اینکه وقتی خطایی و باگی میخورین سریع تر می تونین به نتیجه برسین و حل کنید اون رو .4- خودت رو بروز نگه دار !تو سایت های مربوط به برنامه سعی کنید مقالات یا اخبار این حوزه رو دنبال کنید، و اطلاع پیدا کنید چه تکنولوژی هایی اومدن چه ویژگی هایی به چه فریم ورک ها و زبان هایی اضافه شدهبا این نکات که رعایت کنی صد در صد پیشرفت خیلی خوبی تو برنامه نویسی پیدا میکنی و خیلی سریع به درآمد میرسی.</description>
                <category>رسول دانش زاهی</category>
                <author>رسول دانش زاهی</author>
                <pubDate>Sat, 30 Apr 2022 15:58:45 +0430</pubDate>
            </item>
                    <item>
                <title>کد خوب چه ویژگی هایی دارد ؟</title>
                <link>https://virgool.io/@rasouldanesh/%DA%A9%D8%AF-%D8%AE%D9%88%D8%A8-%DA%86%D9%87-%D9%88%DB%8C%DA%98%DA%AF%DB%8C-%D9%87%D8%A7%DB%8C%DB%8C-%D8%AF%D8%A7%D8%B1%D8%AF-nkbjtapvcgul</link>
                <description>سلام دوستان رسول دانش زاهی هستم تو این مطلب می خوام براتون بگم که یک کد خوب باید چه ویژگی های داشته باشه پس با من تا آخر این مطلب همراه باشید تا همیشه یک کد خوب و عالی بنویسید !اصل اول : سادگیکد شما باید آنقدر ساده باشه که راحت قابل درک باشه و پیچیدگی های آن کم باشه -اصل دوم : خواناییکدی که شما می نویسید باید در کمترین زمان قابل خواندن برای دیگران باشد و شما می توانید برای رعایت این اصل از نامگذاری استاندارد و کامنت گذاری در کد استفاده کنید.اصل سوم : قابلیت نگهداریوقتی کدی را می نویسید باید این قابلیت داشته باشه که آن را سریع و راحت تغییر و گسترش داد.اصل چهارم : قابلیت اطمینانکد خوب باید در هر بار اجرا بدون خطا اجرا شود و این کار رو با بررسی مکرر کد و مدیریت خطا و اسنتثا بهبود بخشید.اصل پنجم :  کارایی کد شما باید سریع اجرا شود و در حین اجرا سریع از منابع کمتری استفاده کند یادتون باشه برای حل یک مشکل چند راه وجود دارد سعی کنید بهترین راه رو انتخاب کنید.اصل ششم : تست پذیریهر کد باید وظیفه اجرای یک کار رو داشته باشه و باید تست ها رو خودکار سریع و جداگانه پاس کند.خوب حالا که دیگه با ویژگی های یه کد خوب آشنا شدیم پس سعی کنیم از این به بعد یک کد تمیز و خوب رو بنویسیم و از کدنویسی لذت ببریم.</description>
                <category>رسول دانش زاهی</category>
                <author>رسول دانش زاهی</author>
                <pubDate>Mon, 18 Apr 2022 00:53:47 +0430</pubDate>
            </item>
                    <item>
                <title>PDP یا PLP مسئله این هست</title>
                <link>https://virgool.io/@rasouldanesh/pdp-%DB%8C%D8%A7-plp-%D9%85%D8%B3%D8%A6%D9%84%D9%87-%D8%A7%DB%8C%D9%86-%D9%87%D8%B3%D8%AA-xzym8kqzrsx4</link>
                <description>سلام دوستان رسول دانش هستمامروز می خوام از اهمیت PDP = Product Detail Page و PLP = Product List Page بگم براتون.PDP =&gt; Product Detail PagePDP : صفحه جزئیات محصول شما هستPLP : صفحه لیست دسته بندی یا محصولات شما هستاینکه کار کردن روی کدوم یکی از آنها برای وبسایت شما مهم هست بستگی به استراتژی وبسایت شما دارد یعنی چی بیاین با یک مثال براتن توضیح بدم.فرض کنید شما یک وبسایت فروشگاه لوازم الکترونیکی دارین و می خواین یک لپ تاپ مدل VivoBook X540MB جدید که وارد بازار شده رو در سایت خودتون برای فروش بزارید. خود منطقی هست چون کاربران مستقیم همون عنوان مدل لپ تاپVivoBook X540MB رو جستجو می کنند پس اینجا PDP سایت براتون مهم هست.ولی حالا بر فرض اینکه شما یک وب سایت آگهی دارین و یک آگهی فروش زمین زده میشه و ممکنه خیلی سریع یا انقضا اون آگهی تمام بشه یا بعد چند روز اون آگهی دیگه تو سایت شما نباشهو اینجا اکثرا کاربران به اینصورت سرچ می کنن که زمین فروشی در ورامین یا اجاره ویلا در چالوس پس اینجا صفحه لیست آگهی ها PLP برامون مهمه.پس نتیجه میگیریم PDP یا PLP سایت بستگی به استراتژی و محتوایی که دارین بستگی داره!ممنون میشم از صفحه ما تو اینستاگرام دیدن کنید! </description>
                <category>رسول دانش زاهی</category>
                <author>رسول دانش زاهی</author>
                <pubDate>Fri, 27 Nov 2020 16:08:50 +0330</pubDate>
            </item>
            </channel>
</rss>