<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Mahan</title>
        <link>https://virgool.io/feed/@zandim221</link>
        <description>من ماهان زندی برنامه نویس فرانت اند علاقه مند به تکنولوژی و هوش مصنوعی ام سعی میکنم اطلاعاتم و موضوعاتی که برای خودم جذابه رو با شما به اشتراک بذارم.

https://www.mahanzandi.ir/fa</description>
        <language>fa</language>
        <pubDate>2026-04-15 08:15:47</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/4254562/avatar/avatar.png?height=120&amp;width=120</url>
            <title>Mahan</title>
            <link>https://virgool.io/@zandim221</link>
        </image>

                    <item>
                <title>Mobile simulator معرفی اکستنشن</title>
                <link>https://virgool.io/@zandim221/mobile-simulator-%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%D8%A7%DA%A9%D8%B3%D8%AA%D9%86%D8%B4%D9%86-sbuc3qi6tz8q</link>
                <description>یک ابزار جذاب برای طراحان UI UX و توسعه دهندگان وبMobile simulator یک اکستنشن کرومه که با این اکستنشن میتونید وبسایتتونو در دیوایس های مختلف اجرا و تست کنید از گوشی , تبلت , لپتاپ گرفته تا اپل واچ ها و...استفاده ازش رو بهتون پیشنهاد میکنم تا وبسایت هاتونو در حالت ریسپانسیو با دقت بیشتری بسازید.اکستنشن قابل نصب برای مرورگر هایی مثل کروم , لینک دانلود این اکستنشن برای کروم :https://chromewebstore.google.com/detail/mobile-simulator-responsi/ckejmhbmlajgoklhgbapkiccekfoccmk?hl=en&amp;pli=1Mobile simulator winki https://lnkd.in/esWUnuDA</description>
                <category>Mahan</category>
                <author>Mahan</author>
                <pubDate>Wed, 18 Feb 2026 07:06:54 +0330</pubDate>
            </item>
                    <item>
                <title>من عادت بدم رو حذف نکردم… ازش ابزار ساختم.</title>
                <link>https://virgool.io/@zandim221/%D9%85%D9%86-%D8%B9%D8%A7%D8%AF%D8%AA-%D8%A8%D8%AF%D9%85-%D8%B1%D9%88-%D8%AD%D8%B0%D9%81-%D9%86%DA%A9%D8%B1%D8%AF%D9%85-%D8%A7%D8%B2%D8%B4-%D8%A7%D8%A8%D8%B2%D8%A7%D8%B1-%D8%B3%D8%A7%D8%AE%D8%AA%D9%85-jwrisrbkpgo1</link>
                <description>مدتی بود تو مصرف قهوه زیاده‌روی می‌کردم.قهوه ذاتاً چیز بدی نیست، اما استفاده‌ی زیادش می‌تونه مخرب باشه.به‌جای اینکه بخوام کامل حذفش کنم، با خودم گفتم چطور می‌تونم از همین عادت به نفع خودم استفاده کنم؟ 🤔برای خودم قانون گذاشتم:اگر قراره روزی سه فنجان قهوه بخورم،هر فنجان باید یه «چالش» پشتش داشته باشه.یعنی چی؟قهوه دوم و سوم جایزه بودن، نه پیش‌فرض.مدتی از ورزش دور شده بودم.هر بار می‌خواستم شروع کنم، یه مانع ذهنی جلو روم سبز می‌شد.پس با خودم شرط بستم:☕ قهوه اول = شروع روز (روتینم بود، چالش خاصی نداشت)☕ قهوه دوم = فقط بعد از ورزشنتیجه؟بعد از چند روز، ورزش کردن دوباره شد بخشی از برنامه‌م.هم قهوه‌م رو می‌خوردم، هم تمرینم رو انجام می‌دادم.من کسی رو تشویق به داشتن عادت بد نمی‌کنم.موضوع اینه که خیلی از عادت‌های ما ذاتاً بد نیستن — فقط بی‌قانونن.ما می‌تونیم بعضی کارها رو به عنوان «جایزه» برای مغزمون تعریف کنیم.مثل:دیدن سریال مورد علاقهقهوه خوردنبازی کردنحتی اسکرول شبکه‌های اجتماعیوقتی یه کار لذت‌بخش رو مشروط به انجام یه کار مهم‌تر می‌کنیم،مغزمون کم‌کم شرطی میشه.خوشحال میشم تجربه شخصیتونو در رابطه با توسعه فردی خودتون با من به اشتراک بذارید. ممنون از بازخودتون</description>
                <category>Mahan</category>
                <author>Mahan</author>
                <pubDate>Tue, 17 Feb 2026 07:53:00 +0330</pubDate>
            </item>
                    <item>
                <title>70 درصد برنامه نویسان فرانت اند این اشتباه رو میکنند!</title>
                <link>https://virgool.io/@zandim221/%DA%86%D8%B1%D8%A7-%DB%B7%DB%B0%D9%AA-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%D8%A7%D9%86-%D9%81%D8%B1%D8%A7%D9%86%D8%AA-%D8%A7%D9%86%D8%AF-%D9%87%D9%85%D8%A7%D9%86-%D8%A7%D8%B4%D8%AA%D8%A8%D8%A7%D9%87-%D8%B1%D8%A7-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1-%D9%85%DB%8C-%DA%A9%D9%86%D9%86%D8%AF-%D8%A7%D8%B2-over-engineering-%D8%AA%D8%A7-%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C-%D9%87%D9%88%D8%B4%D9%85%D9%86%D8%AF-kek8dakwpecn</link>
                <description>سایت کنداگر شما هم مثل من مدتها فکر می‌کردید که هر پروژه‌ای باید حتماً با React یا Next.js توسعه پیدا کند، این مقاله می‌تواند دیدگاه شما را کاملاً تغییر دهد.داستان یک اشتباه پرهزینهدو سال پیش، یک لندینگ پیج ساده برای معرفی یک محصول را با Next.js توسعه دادم. bundle size نهایی؟ بیش از ۲۵۰ کیلوبایت! زمان بارگذاری اولیه؟ ۳.۸ ثانیه! تمام این پیچیدگی برای یک صفحه استاتیک که فقط ۴ سکشن داشت و هیچ state management پیچیده‌ای نداشت.این همان اشتباهی است که بر اساس State of JS Survey 2024، بیش از ۶۸٪ از توسعه‌دهندگان فرانت‌اند در مسیر حرفه‌ای خود تجربه می‌کنند: Over-Engineering یا مهندسی بیش از حد.ریشه مشکل: Comfort Zone Technologyوقتی سال‌ها روی یک تکنولوژی کار می‌کنیم، مغز ما به‌طور خودکار آن را به‌عنوان راه‌حل اول پیشنهاد می‌دهد. این پدیده در روان‌شناسی شناختی به Availability Heuristic معروف است. ما تمایل داریم از ابزارهایی استفاده کنیم که بیشترین دسترسی ذهنی را برای ما دارند، نه لزوماً مناسب‌ترین ابزار برای آن پروژه خاص.مطالعات Stack Overflow Developer Survey نشان می‌دهد که ۷۳٪ از توسعه‌دهندگان تمایل دارند از فریم‌ورک‌هایی استفاده کنند که با آن راحت‌تر هستند، حتی اگر پروژه به آن نیاز نداشته باشد.هزینه‌های پنهان Over-Engineering1. Performance Penaltyطبق گزارش Web Almanac 2024 از HTTP Archive:متوسط bundle size پروژه‌های React: ۱۴۲ کیلوبایت (minified + gzipped)متوسط bundle size پروژه‌های Next.js: ۱۸۵ کیلوبایتمتوسط bundle size پروژه‌های vanilla HTML/CSS/JS: ۲۸ کیلوبایتهر ۱۰۰ کیلوبایت اضافه می‌تواند Time to Interactive را تا ۱ ثانیه افزایش دهد، که به‌طور مستقیم بر conversion rate تأثیر می‌گذارد.2. Complexity Taxهر dependency اضافی:احتمال vulnerability امنیتی را ۱۲٪ افزایش می‌دهد (طبق تحقیقات Snyk Security)زمان build را طولانی‌تر می‌کندlearning curve برای توسعه‌دهندگان جدید را سخت‌تر می‌کندtechnical debt آینده را افزایش می‌دهد3. SEO و User Experienceگوگل در Core Web Vitals خود به‌صراحت اعلام کرده که:۵۳٪ کاربران موبایل سایتی را که بیش از ۳ ثانیه طول بکشد ترک می‌کنندهر ۱۰۰ میلی‌ثانیه تأخیر می‌تواند conversion را تا ۷٪ کاهش دهدمعماری هوشمند: Right Tool for Right Jobبعد از سال‌ها تجربه و مطالعه case studyهای مختلف، به این framework تصمیم‌گیری رسیدم:سناریو ۱: Landing Pages و وب‌سایت‌های معرفیبهترین انتخاب: Pure HTML/CSS/JavaScript یا Static Site Generators سبک مثل Eleventyدلیل:۹۰٪ سریع‌تر از SPA frameworksSEO بهینه به‌صورت nativezero JavaScript تا زمانی که واقعاً نیاز باشدهاست رایگان و آسان (GitHub Pages, Netlify)مثال واقعی: سایت معرفی Stripe را با HTML/CSS ساده‌سازی کردند و bounce rate آن‌ها ۳۴٪ کاهش یافت.سناریو ۲: Web Applications با تعاملات پیچیدهبهترین انتخاب: React، Vue یا Svelteدلیل:state management پیشرفتهcomponent reusability بالاecosystem غنی از کتابخانه‌هاdeveloper experience عالیکی استفاده نکنیم:وقتی محتوای زیادی static استوقتی SEO اولویت اول استوقتی target audience اینترنت کند داردسناریو ۳: E-commerce، SaaS، و پلتفرم‌های محتواییبهترین انتخاب: Meta-frameworks مثل Next.js، Nuxt.js، SvelteKitدلیل:SSR و SSG برای SEO بهینهAPI routes برای backend logicImage optimization خودکارFile-based routingscalability بالانکته مهم: فقط زمانی که واقعاً به SSR نیاز دارید. طبق آمار Vercel، ۶۰٪ از پروژه‌های Next.js اصلاً از SSR استفاده نمی‌کنند!چک‌لیست تصمیم‌گیری برای انتخاب تکنولوژیقبل از شروع هر پروژه، این سؤالات را از خود بپرسید:۱. الزامات عملکردی:آیا state management پیچیده نیاز دارم؟چند صفحه دارد؟ چند component مشترک؟آیا real-time updates نیاز است؟سطح تعامل کاربر چقدر است؟۲. الزامات غیرعملکردی:SEO چقدر حیاتی است؟target audience اینترنت چه سرعتی دارد؟قابلیت نگهداری در آینده چقدر مهم است؟budget hosting چقدر است؟۳. محدودیت‌های تیم:expertise تیم در چیست؟زمان توسعه چقدر است؟آیا نیروی جدید جذب خواهیم کرد؟درس‌های کلیدیبعد از سال‌ها تجربه، این اصول را یاد گرفتم:۱. کمتر، بهتر استهر خط کد، هر dependency، هر abstraction یک هزینه دارد. اول نیاز واقعی را اثبات کنید، بعد راه‌حل را اضافه کنید.۲. Performance is Featureکاربران به bundle size شما اهمیت نمی‌دهند. آن‌ها به سرعت بارگذاری اهمیت می‌دهند. مطالعات نشان می‌دهند که ۱ ثانیه تأخیر می‌تواند ۱۱٪ pageviews را کاهش دهد.۳. Progressive Enhancementاز ساده شروع کنید و در صورت نیاز پیچیدگی اضافه کنید، نه برعکس. این همان اصلی است که در JAMstack architecture به آن تأکید می‌شود.۴. Measure, Don&#039;t Assumeاز ابزارهایی مثل Lighthouse، WebPageTest و Chrome DevTools برای سنجش واقعی performance استفاده کنید. داده‌ها دروغ نمی‌گویند.نتیجه‌گیری: از Maximalist به Pragmatistبهترین توسعه‌دهنده کسی نیست که بیشترین تکنولوژی را بلد باشد، بلکه کسی است که می‌داند کی و چرا از هر تکنولوژی استفاده کند.اشتباه من این بود که فکر می‌کردم پیچیدگی تکنیکی برابر است با حرفه‌ای بودن. اما واقعیت این است که simplicity نیاز به تخصص بیشتری دارد.همان‌طور که Antoine de Saint-Exupéry گفت: &quot;Perfection is achieved not when there is nothing more to add, but when there is nothing left to take away.&quot;</description>
                <category>Mahan</category>
                <author>Mahan</author>
                <pubDate>Sat, 14 Feb 2026 08:43:58 +0330</pubDate>
            </item>
                    <item>
                <title>هوش مصنوعی بدون اینترنت؛ افسانه یا واقعیت؟</title>
                <link>https://virgool.io/@zandim221/%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C-%D8%A8%D8%AF%D9%88%D9%86-%D8%A7%DB%8C%D9%86%D8%AA%D8%B1%D9%86%D8%AA-%D8%A7%D9%81%D8%B3%D8%A7%D9%86%D9%87-%DB%8C%D8%A7-%D9%88%D8%A7%D9%82%D8%B9%DB%8C%D8%AA-ekquzr6elvto</link>
                <description>ollamaدر شرایط فعلی امکان قطعی دوباره اینترنت بسیار بالا است.برای اینکه در دوران قطعی اینترنت به هوش مصنوعی بدون اینترنت دسترسی داشته باشیم میتونیم از https://ollama.com/ استفاده کنیم.اول ollama رو نصب کنید سپس با توجه به قدرت سخت افزاری سیستممون و نوع استفادمون (مثلا اگه نیاز به متن فارسی داریم مدل هایی برای این موضوع وجود داره , برای کد نویسی و... مدل های مختلفی وجود داره) مدل مد نظرمونو انتخاب میکنیم. &#039;در سایتش لیست کامل مدل ها وجود داره و میتونید حجم دانلود و سایر جزئیات اون مدل رو برسی کنید&#039;با دستور ollama list لیست مدل هایی که در سیستممون نصبه رو نمایش میده - در شروع چون مدلی رو نصب نکردیم طبیعتا چیزی نشون نمیدهبا دستور (ollama pull اسم مدل) نمونه اش : ollama pull glm-4.7-flash شروع میکنه به نصب اون مدل و با دستور (ollama run اسم مدل) نمونه اش : ollama run glm-4.7-flash اون مدل رو اجرا میکنه و داخل محیط cmd یا ترمینالتون میتونید ازش استفاده کنید و با دستور /bye چتتونو ببندین.با ollama help هم تمامی دستور هارو مشاهده کنید.محیط گرافیکی هم برای کار با ollama وجود داره که واقعا جذابه تاریخچه چتتونو ذخیره میکنه و اگه به اینترنت دسترسی داشته باشید میتونید مدل های cloud پر قدرت رو هم استفاده کنید.همچنین کاربرد های ollama به اینجا محدود نمیشه , دوستانی که برنامه نویس اند میتونن اکستنشن Continue رو در vscode نصب کنن وتجربه ای مشابه cursor داشته باشند (با قدرت خیلی کمتر)یا اینکه از api هاش استفاده کنید و روی پروژه هاتون استفاده کنید - (نمونه اش رو در لینکدین من مشاهده کنید)-- (گیت هاب پروژه چت باتی که با ollama ایجاد کردم ‍‍&quot;متن باز&quot;)یا با ابزار هایی مثل n8n در automasion ازش استفاده کنید.ابزار خیلی خوبیه و بهتون پیشنهادش میکنم ازش انتظار chatgpt رو نداشته باشین چون در هر صورت هر سیستمی توان پردازش مدل های خیلی خوب رو نداره و از همه مهمتر اینکه این مدل هایی که استفاده میکنید open source.#ollama#gpt#ai#نت_ملی</description>
                <category>Mahan</category>
                <author>Mahan</author>
                <pubDate>Sun, 08 Feb 2026 23:29:29 +0330</pubDate>
            </item>
            </channel>
</rss>