<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Hoomehr Sanatkar</title>
        <link>https://virgool.io/feed/@hoomehr.sanatkar40</link>
        <description>برنامه نویس و توسعه دهنده Front End، دانشجوی مهندسی کامپیوتر</description>
        <language>fa</language>
        <pubDate>2026-04-14 18:36:46</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1900272/avatar/OdyrQi.jpg?height=120&amp;width=120</url>
            <title>Hoomehr Sanatkar</title>
            <link>https://virgool.io/@hoomehr.sanatkar40</link>
        </image>

                    <item>
                <title>استفاده از document.querySelector در React اشتباهه؟</title>
                <link>https://virgool.io/codenevis/%D8%A2%DB%8C%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-documentqueryselector-%D8%AF%D8%B1-react-%D8%A7%D8%B4%D8%AA%D8%A8%D8%A7%D9%87%D9%87-soopdo9nmlsw</link>
                <description>سلام سلامچندروزی پیش داشتم یک پروژه تمرینی بازیسازی برای خودم با استفاده از React میزدم که طبق عادت از querySelector برای سلکت کردن element آیتم بازی استفاده کردم...سوالی که برام پیش اومد این بود که آیا استفاده از این متد اشتباهه؟؟متد querySelector چیه؟قبل از هرچیزی یک توضیحی در باره کوئری سلکتور بدم...querySelector یک از متد های DOM (Document Obejct Module) هستش که برای سلکت کردن یک element از DOM استفاده میشهبرای مثال شما یک تگ div با یک id با نام container دارید:&lt;div id=&amp;quotcontainer&amp;quot&gt;&lt;/div&gt;خوب برای اینکه ما بتونیم به این element دسترسی داشته باشیم تا چیزی اضافه کنیم یا تغییراتی بدیم، نیاز داریم که از متدهای سلکتور DOM استفاده کنیم.document.getElementById(&amp;quotcontainer&amp;quot)
document.querySelector(&amp;quot#container&amp;quot)میتونیم برای سلکت کردنش از DOM از هرکدوم از متدهای بالا استفاده کنیم.دام مجازی (Virsual DOM) - یک نمایش جاوا اسکریپت از DOM واقعیخوب همونطور که میدونین، React از یک دام مجازی یا همون Virsual DOM استفاده میکنه(اگر دوست دارین اطلاعات بیشتری راجب نحوه کارکرد و همینطور آشنایی بیشتر Virsual DOM بدونید، پیشنهاد میدم این مقاله رو بخونید) و این یکی از مزیت های ریکت هستش.بنابراین، وقتی ما سعی میکنیم عنصر یا element رو با استفاده از querySelector تغییرات روش اعمال کنیم، دیگر در اینجا از Virsual DOM استفاده نمیکنیم.خوده React، پیشنهاد کرده به جای استفاده از querySelector، از هوک useRef استفاده کنیم و مارو تشویق به این کار میکنه (بنابراین اشتباه نیست ولی بهتره به جاش از useRef استفاده کنیم). برای بهتر متوجه شدن این قضیه میتوانین این مقاله رو مطالعه کنید.چطوری میتوانیم از هوک useRef استفاده کنیم؟یک نمونه کد برای یک event ساده که وقتی روی یک دکمه ای کلیک شد، یک alert به ما بده:import React, { useRef, useEffect } from &amp;quotreact&amp;quot
export default function App() {
    const buttonRef = useRef(null);
    useEffect(() =&gt; {
    const button = buttonRef.current;
    button.addEventListener(&amp;quotclick&amp;quot, () =&gt; {
        alert&#40;&amp;quotClicked!&amp;quot&#41;;
    });
    }, []);
    return &lt;button ref={buttonRef}&gt;Click me&lt;/button&gt;;
}نظراتتون رو حتما برام بنویسین :)</description>
                <category>Hoomehr Sanatkar</category>
                <author>Hoomehr Sanatkar</author>
                <pubDate>Sun, 03 Mar 2024 21:31:17 +0330</pubDate>
            </item>
                    <item>
                <title>فیلترینگ | طائون اینترنتی</title>
                <link>https://virgool.io/@hoomehr.sanatkar40/%D9%81%DB%8C%D9%84%D8%AA%D8%B1%DB%8C%D9%86%DA%AF-%D8%A7%D9%86%DA%AF%D9%84%DB%8C-%D8%A8%D8%B1-%D8%AC%D8%A7%D9%85%D8%B9%D9%87-%D8%A7%DB%8C%D9%86%D8%AA%D8%B1%D9%86%D8%AA-brihnl0kd37z</link>
                <description>فیلترینگ یک عملی است که از سوی مسئولان و سازمان‌های(ISP) یک کشور به منظور جلوگیری از دسترسی کاربران به محتوایی که از سوی مسئولان تشخیص داده می‌شود که اینگونه محتوا نامناسب بوده و دارای تهدیداتی برای کاربران اینترنت می‌باشد انجام می‌شود.متاسفانه در برخی کشورها از این ایده سوء استفاده شده و برای اهداف مختلفی مانند درآمدزایی، سانسور محتوا و... استفاده می‌گردد و همین معضل، مشکلاتی را در دنیای برنامه نویسان به وجود آورده و باعث وقفه در کارهایشان شده است. در ادامه با انواع این فیلترینگ ها و نحوه کارکردشان آشنا خواهیم شد.نحوه اعمال فیلترینگبگذارید قبل از ورود به نحوه کارکرد یک اطلاعاتی درباره سانسور کشورهای مهم درمیان بگذارم. متاسفانه کشور ایران در لیست 5 کشوری قرار دارد که با فیلترینگ و سانسور محتوایی شدیدی روبرو هستند و 4 کشور دیگر چین، سوریه، ویتنام و بحرین شامل می‌شود. طبق گزارش خانه آزادی، که یک سازمان مستقل می‌باشد که آزادی دموکراسی و فکری را در دنیا بررسی می‌کند و طبق این گزارشات لیستی از کشورها را در جهت آزادی بیان، طبقه بندی می‌کند، در سال 2014، ایران را به عنوان بدترین کشور به عنوان آزادی اینترنت ارزیابی کرد و رتبه اول را به خود اختصاص داد.فیلترینگ ایران، از سال 2004 آغاز شد و تا کنون گسترش پیدا کرده است و مشکلاتی را از قبیل فیلترشدن شبکه‌های اجتماعی که برای برنامه‌نویسان بسیار حائز اهمیت است، به وجود آورد.نقشه کشورها که براساس فیلترینگ و سانسور محتوا امتیاز داده شده استبریم سر اصل مطلب؛ سانسورهای اینترنتی با روش‌های مختلفی رخ می‌دهند:دستکاری DNSسامانه نام دامنه(Domain Name System  به اختصار DNS) یک پروتکلی می‌باشد وظیفه دارد نام دامنه‌ای که برای ما قابل خواندن می‌باشد(مثل www.example.com) را تبدیل به اعدادی قابل فهم برای کامپیوتر کند که به آن IP Address گفته می‌شود. DNS مانند یک جاده‌ای می‌باشد که مارا به مقصدمان میرساند.دستکاری DNS، تکنیکی است که دسترسی که کاربران را به یک Ip آدرس خاص را مسدود می‌کند. فرض کنید دو شهر با یک ریل قطار به یکدیگر متصل شده اند. حال یک قسمت از این ریل را برداریم و این موجب اختلال در راه می‌شود و دیگر قابل رفت و آمد نیست به قول معروف مسیر مسدود شده است. دراینجا رابط ما، ISP ها هستند و وسیله ارتباطی ما، DNS می‌باشد. این تکنیک در بین هکرها بسیار محبوب می‌باشد و وقتی به رکوردهای DNS دسترسی پیدا می‌کنند، می‌توانند تغییراتی ایجاد کنند که منجر به ایجاد ویروس یا جمع‌آوری اطلاعات می‌شود.همانطور که در تصویر بالا مشخص هستش، وقتی نام دامنه از سوی کاربر درخواست میشه، این درخواست توسط ISPها مسدود شده و این درخواست بی پاسخ است.پروکسیپروکسی، ارتباط ما با اینترنت را برقرار می‌کند و اطلاعات را به ما برمی‌گردانند. پروکسی را دروازه‌ای میان کاربران و صفحات وب و اینترنت دانست. در این روش، پروکسی ها فیلتر نمی‌شوند، بلکه پروکسی که از سوی ISPها به کاربران داده میشه، دسترسی کاربران را به اینترنت محدود می‌کنه و کاربران را مستلزم به استفاده از پروکسی می‌کند. کلیه درخواست ها به پروکسی فرستاده می‌شود و اگر این درخواست ها مسدود نشده باشند، اطلاعات را از اینترنت گرفته و برای کاربر ارسال می‌کند.با تغییر آدرس پروکسی سرور در مرورگر خود می‌توانید از این مانع گذر کنید. به این نکته توجه داشته باشید که پروکسی شما باید فضای کافی در فضای باندش را داشته باشد وگرنه به دلیل گذر از حد مجاز فضای باند، به دلایل امنیتی، پروکسی به حالت غیرقابل دسترسی تغییر خواهد کرد.مسدود شدن پورت هاپورتها، درگاه هایی برای سرورها می‌‎باشند که از طریق آن سرویس‌هایشان را ارائه می‌دهند. وقتی یکی از پورتها بلاک می‌شود، تمامی سرویس هایی را که سرور از این پرت ارائه می‌کند، غیر قابل دسترس خواهد شد.فیلترینگ معکوسیکی از متداول ترین روش های فیلترینگ می‌باشد که معمولا برای تحریم کشور خاصی از این روش استفاده می‌شود. کاربر وقتی درخواستی را ارسال می‌کند، این درخواست به سمت وب سرور فرستاده می‌شود. قبل از اینکه پاسخی را به کاربر برگرداند، آدرس IP کاربر را بررسی می‌کند و اگر این IP متعلق به یک کشور خاصی باشد که مورد تحریم قرار گرفته باشد، از ارائه خدمات به کاربر خودداری می‌کند. این تکنیک بسیار در کشور ما شناخته شده است و متداول ترین راه برای دورزدن آن، استفاده از فیلترشکن (Virtual Private Network یا به اختصار VPN) و تغییر پروکسی می‌باشد. امروزه استفاده از فیلترشکن ها برای بسیاری از شرکت ها درآمدزا شده و بهتر است از فیلترشکن های مطمئن و رایگان استفاده نمایید. برای دسترسی رایگان به پروکسی ها بسیار کار دشواری است و همچنین از سرعت بسیار پایین تری را نسبت به VPN ها برخوردار هستند و برای رفع این مشکل نیازمند یک پروکسی پریویت و شخصی می‌باشید که هزینه بالایی را برای کاربر رقم می‌زند.حرف آخر!چون اکثر ما برنامه نویسان عادت داریم از منابع و سایت های بین المللی مثل YouTube بهره ببریم، فیلترینگ به دنیای برنامه نویسی لطمه بزرگی وارد کرده است و این کار موجب کاهش کیفیت در کدهای برنامه نویسی و کمبود اطلاعات برای ایجاد پروژه های خلاقانه شده است. امیدوارم این مشکل خیلی زود حل شود و بتوانیم به راحتی با اینترنت ارتباط برقرار کنیم.</description>
                <category>Hoomehr Sanatkar</category>
                <author>Hoomehr Sanatkar</author>
                <pubDate>Mon, 21 Nov 2022 18:42:49 +0330</pubDate>
            </item>
            </channel>
</rss>