<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های مجید خالقیان</title>
        <link>https://virgool.io/feed/@majid.khaleghian</link>
        <description>Full-Stack Developer</description>
        <language>fa</language>
        <pubDate>2026-04-14 18:37:02</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/893667/avatar/UGqQZU.jpeg?height=120&amp;width=120</url>
            <title>مجید خالقیان</title>
            <link>https://virgool.io/@majid.khaleghian</link>
        </image>

                    <item>
                <title>توضیح مختصر درباره معیارهای کلیدی اصلی وب (Core Web Vitals)</title>
                <link>https://virgool.io/@majid.khaleghian/%D8%AA%D9%88%D8%B6%DB%8C%D8%AD-%D9%85%D8%AE%D8%AA%D8%B5%D8%B1-%D8%AF%D8%B1%D8%A8%D8%A7%D8%B1%D9%87-%D9%85%D8%B9%DB%8C%D8%A7%D8%B1%D9%87%D8%A7%DB%8C-%DA%A9%D9%84%DB%8C%D8%AF%DB%8C-%D8%A7%D8%B5%D9%84%DB%8C-%D9%88%D8%A8-core-web-vitals-kzfpstdoyxbe</link>
                <description>در این نوشته سعی می‌کنیم خیلی خلاصه درباره معیارهایی که گوگل به عنوان مهم‌ترین سنجه‌های بارگذاری یک صفحه وب معرفی کرده توضیح دهیم. یکم: Largest Contentful Paint (LCP)زمان بارگذاری محتوای اصلی صفحه یا به‌عبارتی زمان رنگی شدن بزرگترین المان (Element) در صفحه است. برای مثال اگر یک عکس بیشتر صفحه را گرفته، زمانی که طول می‌کشد تا کامل نمایش داده شود مهم است. این زمان شامل زمان Render هم می‌شود.این معیار باید زیر ۲.۵ ثانیه باشد که با توجه به سرعت اینترنت در ایران رسیدن به آن کمی دشوار است.دوم: Interaction to Next Paint (INP)این معیار چند ماه پیش (اسفند ۱۴۰۲) به عنوان معیار اصلی در نظر گرفته شد. به طور خلاصه این معیار تاخیر زمانی تمامی برهم‌کنش‌های کاربر با صفحه، شامل کلیک، لمس و کیبورد، در کل طول عمر صفحه را بررسی می‌کند.در نظر بگیرید یک سایت یک منوی همبرگری دارد، زمانی که کاربر روی دکمه باز شدن آن کلیک می کند و باز می‌شود اهمیت دارد (البته این یک مثال ساده است).طبیعتا این معیار با پردازشگر دستگاهی که کاربر استفاده می‌کند ارتباط دارد و ممکن است برای برخی از کاربران کند تر باشد. INP برای یک سایت خوب زیر ۲۰۰ میلی ثانیه است.سوم: Cumulative Layout Shift (CLS)به طور خلاصه بررسی جابجایی غیرمنتظره چیدمان است.اگر ساده بخواهیم بگوییم این است که چیزی در صفحه وب به یکباره نپرد. مثلا به صورت ناگهانی یک المان بالای یک المان دیگر ظاهر نشود و همه المان ها به پایین Shift نشوند!! این موضوع معمولا در Single Page Application یا SPA رخ می دهد. برای همین پیشنهاد می شود که وبسایت‌های محتوا محور و سایت‌هایی که ورودی آنها از گوگل هستند SPA نباشند. مواردی مانند زمان بارگذاری طولانی فونت‌ها، CSS و… می‌توانند روی این معیار تاثیر بگذارند چرا که ممکن است ظاهر صفحه به یکباره بپرد.پرسش: چگونه متوجه شویم این معیارها در سایت ما خوب است؟پاسخ: روش‌های مختلفی برای بررسی این معیارها وجود دارد. اما از آنجایی که ممکن است نمره‌هایی که داده می‌شود با توجه به سرعت اینترنت، دستگاه کاربر و… متفاوت باشد، بهترین راه برای نتیجه گیری، تجربه کاربران واقعی است. خوشبختانه گوگل آنچه کاربران واقعی تجربه می‌کنند را با کمک Chrome گردآوری می‌کند. اگر بازدید از یک صفحه به اندازه کافی باشد معدل کاربران واقعی نمایش داده می‌شود. می‌توانید از PageSpeed Insights نتایج هر سایتی را ببینید:https://pagespeed.web.dev</description>
                <category>مجید خالقیان</category>
                <author>مجید خالقیان</author>
                <pubDate>Tue, 28 May 2024 13:56:35 +0330</pubDate>
            </item>
                    <item>
                <title>طنز: VueJs که AngularJS می گرفتی همه عمر…</title>
                <link>https://virgool.io/@majid.khaleghian/%D8%B7%D9%86%D8%B2-vuejs-%DA%A9%D9%87-angularjs-%D9%85%DB%8C-%DA%AF%D8%B1%D9%81%D8%AA%DB%8C-%D9%87%D9%85%D9%87-%D8%B9%D9%85%D8%B1-pl3env7ta5xd</link>
                <description>طنز:  VueJs که AngularJS می گرفتی همه عمر… / دیدی که چگونه Angular آن VueJs گرفتحتما می دانید که VueJs با الهام گیری از AngularJs بسیار مشهور شد. هرچند بعدها ویژگی‌های جدید اضافه کرد.هنگامی که Angular 2 معرفی شد همه با یک چیز متفاوت از AngularJs یا همان Angular 1 مواجه شدند.در نگاه اول VueJs بسیار شبیه تر به AngularJs بود تا Angular و شاید بسیاری از توسعه دهندگانی که به AngularJS عادت کرده بودند به سمت VueJs رفتند.محبوبیت VueJs خیلی خیلی افزایش پیدا کرد حتی در بعضی از نظر سنجی‌ها از ReactJs هم پیشی گرفت.خیلی از کسانی که پروژه‌ها را شروع می‌کردند به دنبال VueJs می رفتند با تصور آنکه با یک Framework جدید و آینده دار کار می‌کنند.بارها پیش آمده بود که به من می‌گفتند Angular دیگر تمام شده، برو به سمت VueJsاما واقعیت آنکه تصور درستی نبود. این روزها دیگر آن رویکرد هیجانی وجود ندارد. نظرسنجی سال ۲۰۲۳ StackOverflow هم نشان داد VueJs محبوبیت پیشین خود را از دست داده است و Angular بالاتر قرار گرفته است.پیش از این در نوشتاری دیگر هم اشاره کرده بودم که بیشتر از آنکه تکنولوژی، زبان برنامه‌نویسی، کتابخانه، چهارچوب و... در موفقیت یک پروژه نقش داشته باشند، اشخاص و توسعه دهندگانی که خوب کار می‌کنند و کار را خوب بلد هستند، نقش دارند!نباید از کسی که تسلط به یک کتابخانه یا چهارچوب دارد، به خاطر اینکه می‌دانیم شخص مسئولیت پذیری است، یا رزومه خوبی دارد، بخواهیم برود یک کتابخانه یا چهارچوب دیگر را یاد بگیرد.بارها دیده‌ام که از یک توسعه دهنده که مثلا Angular کار کرده، می‌خواهند که چیز دیگر یاد بگیرد و وقتی یاد گرفت بیاید و برای آنها کار کند!! این توهین بزرگی به یک توسعه دهنده است که راه خودش را انتخاب کرده و به علاقه و مسئولیت پذیری در حوزه دلخواه دست یافته است.</description>
                <category>مجید خالقیان</category>
                <author>مجید خالقیان</author>
                <pubDate>Wed, 21 Feb 2024 21:02:08 +0330</pubDate>
            </item>
                    <item>
                <title>گفتگوی بانکینو با مجید خالقیان</title>
                <link>https://virgool.io/@majid.khaleghian/%DA%AF%D9%81%D8%AA%DA%AF%D9%88%DB%8C-%D8%A8%D8%A7%D9%86%DA%A9%DB%8C%D9%86%D9%88-%D8%A8%D8%A7-%D9%85%D8%AC%DB%8C%D8%AF-%D8%AE%D8%A7%D9%84%D9%82%DB%8C%D8%A7%D9%86-pt4saovkatdu</link>
                <description>بخش‌هایی از این گفتگو:سامانه‌های تحت وب در بانکینو سامانه‌های پشت صحنه هستند... مهم ترین پروژه تحت وب که بر روی آن کار می‌کنیم، «سامانه جامع مدیریت و پشتیبانی بانکینو» است که کاربران آن، همکاران ما در بانکینو هستند.وبسایت بانکینو و سامانه مدیریت محتوای آن از کارهای مورد علاقه من است و داوطلبانه روی آن کار کردم.تلاش ما در تیم کوچکمان که فقط دو نفر بودیم، تغییر اساسی در وبسایت بود به طوری که حتی با روش‌های متفاوت، این وبسایت را فراتر از یک صفحه کردیم که صرفا با هدف دانلود اپلیکیشن آماده شده بود.بسیاری از سازمان‌ها برای توسعه سامانه‌های پشت صحنه، از ماژول‌ها و کامپوننت‌های آماده استفاده می‌کنند. به ویژه در توسعه سمت کاربر این موضوع رایج است. اما این کار در دراز مدت، مشکلات زیادی را به وجود می‌آورد تا جایی که نمی‌توان با توجه به نیازهای جدید و ویژه سازمان، سامانه را گسترش داد!در ابتدا سامانه‌های پشت صحنه بانکینو از قالب و کامپوننت‌های آماده استفاده کرده بودند.خوشبختانه از پیشنهاد من استقبال شد و این فرصت به ما داده شد که بسیاری از ماژول‌ها و کامپوننت‌ها را خودمان توسعه بدهیم.ادامه را بخوانید:  گفتگو با مجید خالقیان توسعه دهنده ارشد وب در بانکینو</description>
                <category>مجید خالقیان</category>
                <author>مجید خالقیان</author>
                <pubDate>Tue, 16 Aug 2022 09:16:47 +0430</pubDate>
            </item>
                    <item>
                <title>از نوشتن کامپوننت‌ها استقبال کنیم</title>
                <link>https://virgool.io/@majid.khaleghian/%D8%A7%D8%B2-%D9%86%D9%88%D8%B4%D8%AA%D9%86-%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA-%D9%87%D8%A7-%D8%A7%D8%B3%D8%AA%D9%82%D8%A8%D8%A7%D9%84-%DA%A9%D9%86%DB%8C%D9%85-on2texkhqcx9</link>
                <description>به نظرم یک Front-End Developer باید از نوشتن کامپوننت‌ها استقبال کنه تا اینکه از کامپوننت‌های آماده استفاده کنه.باید مسئولیت مواردی رو بر عهده بگیره که خودش ساخته.تعجب می‌کنم از سرپرست تیم‌هایی که نیروهارو مجبور میکنن از packageهای آماده استفاده کنن و در نهایت هم وقتی پروژه دچار مشکل شد از برنامه نویس ایراد می‌گیرند!به نظرم package های آماده برای کسانی است که شغل اصلی اونها فرانت نیست</description>
                <category>مجید خالقیان</category>
                <author>مجید خالقیان</author>
                <pubDate>Fri, 15 Jul 2022 10:13:31 +0430</pubDate>
            </item>
                    <item>
                <title>توسعه سمت کاربر و شاعری!!</title>
                <link>https://virgool.io/@majid.khaleghian/%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%D8%B3%D9%85%D8%AA-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1-%D9%88-%D8%B4%D8%A7%D8%B9%D8%B1%DB%8C-fdohmn70evtw</link>
                <description>به این فکر میکنم که توسعه سمت کاربر (فرانت) بیشتر شبیه به نویسندگی و شاعری است!هر چه بیشتر تفکر کنی و خلاقیت و هنر داشته باشی نتیجه بهتر هست. خیلی از Developer ها زندگیشون مثل هنرمندان میشه. از شب بیدار موندن گرفته تا کارهای دیگهالبته هنوز مطمئن نیستم که تشبیه درستی باشه!</description>
                <category>مجید خالقیان</category>
                <author>مجید خالقیان</author>
                <pubDate>Fri, 15 Jul 2022 10:10:50 +0430</pubDate>
            </item>
                    <item>
                <title>ایجاد Proxy برای API Calls در Angular</title>
                <link>https://virgool.io/@majid.khaleghian/%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-proxy-%D8%A8%D8%B1%D8%A7%DB%8C-api-calls-%D8%AF%D8%B1-angular-mml6q71lptzr</link>
                <description>نمیدونم تا به حال با دردسرهای فراخوانی سرویس‌های backend روی port جدا از front هنگام توسعه مواجه شدید یا نه؟!از گیرهایی که مرورگرها میدن تا مشکلات امنیتی!یک امکان فوق العاده در Angular که با ایجاد یک proxy کاری می‌کنه که در یک address و port بیان بالا: اینجا را بخوانید</description>
                <category>مجید خالقیان</category>
                <author>مجید خالقیان</author>
                <pubDate>Fri, 15 Jul 2022 10:02:08 +0430</pubDate>
            </item>
                    <item>
                <title>انتخاب بهتر: NestJS</title>
                <link>https://virgool.io/@majid.khaleghian/%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8-%D8%A8%D9%87%D8%AA%D8%B1-nestjs-nthucqh8qjpk</link>
                <description>شاید خیلی‌ها تصور می‌کردند Deno می‌تواند پیشرفت خیلی خوبی داشته باشد و NodeJS را کنار بزند. ولی Deno تا الان توفیق چندانی نداشته است!اما به نظرم یک Framework که خیلی خوب و منطقی کار کرده NestJS است. NestJS بر پایه ExpressJS هست ولی ساختار خیلی تمیز، شیک و مدرن دارد.مشخص است که به راحتی نمی‌شود NodeJS را کنار گذاشت و وقتی Framework های خوب بر اساس NodeJS تهیه شوند خیلی منطقی تر است.واقعا وجود این Framework خبر خوبی برای کسانی است که Angular کار می‌کنند چراکه TypeScript هست و CLI کاملا شبیه به Angular دارد.اگر زمانی MAEN Stack برای کسانی که Angular کار می‌کردند جذاب بود، شاید رفته رفته یه چیز جدید مثلا MAN Stack یعنی MongoDB و Angular و NestJS برای کسانی که مسلط به Angular هستند جذاب بشود.</description>
                <category>مجید خالقیان</category>
                <author>مجید خالقیان</author>
                <pubDate>Fri, 15 Jul 2022 09:52:56 +0430</pubDate>
            </item>
                    <item>
                <title>تا به حال شده که آرزو کنید که از وردپرس خلاص بشید؟!</title>
                <link>https://virgool.io/wptips/%D8%AA%D8%A7-%D8%A8%D9%87-%D8%AD%D8%A7%D9%84-%D8%B4%D8%AF%D9%87-%DA%A9%D9%87-%D8%A2%D8%B1%D8%B2%D9%88-%DA%A9%D9%86%DB%8C%D8%AF-%DA%A9%D9%87-%D8%A7%D8%B2-%D9%88%D8%B1%D8%AF%D9%BE%D8%B1%D8%B3-%D8%AE%D9%84%D8%A7%D8%B5-%D8%A8%D8%B4%DB%8C%D8%AF-zwqukzkgwc7j</link>
                <description>من چند سال درگیری فراوانی با WordPress داشتم که البته برای یک سایت شخصی استفاده می‌کردم! ولی چون بیش از ۴۰۰ تا مطلب پژوهشی توی این سایت بارگذاری شده بود و حدود ۲۵۰۰ برچسب گذاری و دسته بندی داشت. هیچ وقت جرئت نمی‌کردم برم به سمتی که تغییرش بدم.ولی در چند ماه اخیر دل رو به دریا زدم و نشستم از اول با Angular و Node.js  نوشتم! انتقال مطالب به ساختار جدید خیلی سخت و نفس گیر بود ولی نتیجه فوق العاده بود! علاوه بر اینکه سایت سبک شد و سرعت خیلی بهتر شد، کار backup گرفتن راحت تر شد و عجیب اینکه در خیلی از جستجوها که قبلا صرفا توی صفحه اول گوگل بودیم، اومدیم مورد اول قرار گرفتیم و حتی از ویکی پدیا هم بالاتر!باید قبول کرد که WordPress دیگه یک سامانه قدیمی و پر از اشکال شده! یه زمان کارهای حرفه‌ای رو در زمان اندک با WordPress انجام می‌دادن ولی الان اصلا مناسب کار حرفه‌ای نیست و شاید یک برگه اینستاگرام کارکرد بهتری داشته باشه!وقتی من این مطلب را در لینکدین (LinkedIn) گذاشتم، انتقادهای زیادی دریافت کردم. بعضی از نقدها سازنده بودند و البته برخی هم غیر سازنده!اکثرا می‌گفتند چون من مسلط به وردپرس نیستم دچار مشکل شدم و آنطور که از صحبت‌ها متوجه شدم باید یک متخصص و توسعه دهنده ورد پرس داشته باشیم.اتفاقا ابهام اصلی من همین است! دوستان عزیز، وردپرس یک فریم ورک یا یک بستر توسعه نرم افزاری نیست و چنانچه کسی به این منظور ازش استفاده می‌کنه به نظرم اشتباهه. وردپرس یک محصول آماده است که باید کار رو برای ما ساده و کم هزینه کنه. پرسش و ابهام اصلی من اینه که اگر من بخوام هزینه توسعه بدم آن هم برای یک سایت شخصی چرا باید برم به سمت وردپرس؟! تکنولوژی‌های بسیار قوی تر با توسعه‌دهنده‌های قوی وجود دارند که محدودیتی برای ما ایجاد نمی‌کنند!شاید یکی از دلایلی که خیلی ها فکر می‌کنند سامانه‌های تحت وب قابلیت کافی ندارند و به سمت اپلیکیشن می‌روند همین ذهنیت استفاده از محصولات آماده در فضای وب باشه.برخی از منتقدان هم می‌گفتند وردپرس باعث شده درآمد برنامه نویسان وب پایین بیاد، بنابراین برنامه نویسان دید بدی به وردپرس دارند!در پاسخ به این انتقاد باید بگویم که من خودم سالها برنامه نویس هستم و سالها از وردپرس استفاده میکنم. برعکس ذهنیت برخی از دوستان که تصور می‌کنند وردپرس کار مارو از سکه انداخته، باید بگم که اتفاقا خیلی اوقات کار مارو راحت کرده بود. مثلا وقتی من استخدام یک شرکت بودم و از من یک بلاگ می‌خواستن سریع می‌رفتم وردپرس نصب می‌کردم و خودمو خسته نمی‌کردم! اگر از اول خودم می‌نوشتم حقوق من همین بود. بنابراین چنین ذهنیتی هم اشتباه است.برخی هم معتقدند شرکت‌های بزرگ ایران برای بلاگ‌هاشون از وردپرس استفاده می‌کنند و صحبت امثال من درست نیست! ولی باید گفت که بسیاری از مواردی که دوستان مثال می‌زنند به عنوان یک مجله محتوا محور چیز خاصی ندارند و خودشان هم نمی‌خواستند که چیز فوق العاده‌ای در بلاگ داشته باشن! چرا که کار اصلی آنها چیز دیگری است و بلاگ را صرفا برای تقویت کار اصلی خود استفاده می‌کنند. چه بسی استفاده از وردپرس در این سازمان‌ها همان داستانی باشد که سالها ما هم داشتیم. یعنی مدیران و توسعه دهندگانی که فرصت کافی برای توسعه یک وبسایت محتوا محور از ابتدا نداشتند و اگر هم از ابتدا تولید می‌کردند حقوقشان تغییری نمی‌کرد. پس وردپرس براشون بهترین و ساده ترین گزینه بود.تا جایی که من می دانم کمتر خبرگزاری بزرگ که کار اصلی آنها محتواست به سمت وردپرس رفتند.بیایید قبول کنیم که وردپرس با همه خوبی‌هایی که داشت و دارد الان در برابر اَبَر تکنولوژی‌های این روزها قدیمی شده و مشکلات زیادی رو ایجاد میکنه!هر چه زود تر از شرش خلاص بشیم بهتره! ?</description>
                <category>مجید خالقیان</category>
                <author>مجید خالقیان</author>
                <pubDate>Fri, 27 May 2022 20:43:47 +0430</pubDate>
            </item>
                    <item>
                <title>تیم Angular گام‌های درستی برداشت ولی Vue.js با الهام گیری از AngularJS محبوب تر شد!!</title>
                <link>https://virgool.io/@majid.khaleghian/%D8%AA%DB%8C%D9%85-angular-%DA%AF%D8%A7%D9%85-%D9%87%D8%A7%DB%8C-%D8%AF%D8%B1%D8%B3%D8%AA%DB%8C-%D8%A8%D8%B1%D8%AF%D8%A7%D8%B4%D8%AA-%D9%88%D9%84%DB%8C-vuejs-%D8%A8%D8%A7-%D8%A7%D9%84%D9%87%D8%A7%D9%85-%DA%AF%DB%8C%D8%B1%DB%8C-%D8%A7%D8%B2-angularjs-%D9%85%D8%AD%D8%A8%D9%88%D8%A8-%D8%AA%D8%B1-%D8%B4%D8%AF-x3fhbw387er8</link>
                <description>حتما می‌دانید که بستر توسعه‌ای که امروز با نام Angular می‌شناسیم، پیش از این با نام AngularJS شناخته می‌شد که اساسا یک Framework دیگر بود و برای نسخه جدید، صرفا از برند آن استفاده کردند و با نام Angular 2 معرفی شد.هنگامی که Angular 2 معرفی شد همه با یک چیز جدید که شباهت اندکی به نسخه قبلی داشت مواجه شدند. یادگیری آن برای بسیاری دشوار به نظر می‌رسید و خیلی‌ها تصمیم گرفتند به دیگر کتابخانه‌ها و چهارچوب‌ها مراجعه کنند.واقعیت آنکه در نگاه اول VueJs بسیار شبیه تر به AngularJS است تا Angular کنونی و شاید بسیاری از توسعه دهندگانی که به AngularJS  عادت کرده بودند به مرور به سمت VueJs رفتند.در راهنماهای مربوط به نسخه‌های قبلی سایت رسمی VueJs به الهام بخش بودن AngularJS اشاره کرده و نوشته بود:Some of Vue’s syntax will look very similar to AngularJS (e.g. v-if vs ng-if). This is because there were a lot of things that AngularJS got right and these were an inspiration for Vue very early in its development. There are also many pains that come with AngularJS however, where Vue has attempted to offer a significant improvement (1).این در حالی است که امروز باید گفت VueJs بسیار بسیار محبوب شده است و بر اساس برخی از آمارها محبوب ترین Framework در حوزه Front End است. شاید چند سال پیش کمتر کسی تصور می‌کرد که VueJS  بتواند از ReactJS و Angular محبوب تر شود ولی بر اساس برخی از آمارها این اتفاق افتاده است.سوال آنجاست که چطور VueJs با فلسفه AngularJS توانست تا این حد محبوب شود ولی خود Angular نتوانست به این جایگاه برسد.به نظر من Angular در میان همه کتابخانه‌ها و چهارچوب های سمت کاربر، راه درست تری را انتخاب کرده است. تبدیل شدن به یک بستر توسعه که بسیاری از مشکلاتی که در حوزه برنامه نویسی سمت کاربر بود را رفع کرده است. این بستر می‌تواند در برابر این سرعت عجیب و فزاینده به روز شدن این حوزه همواره به روز بماند. بوسیله Angular ما می‌توانیم همیشه با به روزترین تکنولوژی‌ها، توسعه‌ای که در سال‌های قبل شروع کردیم را ادامه دهیم. برای همین همانطور که سایت Angular ادعا کرده است به راستی Angular یک Development Platform است (۲).ولی این ایده که امروز تقریبا به نتیجه رسیده است، قطعا نیاز به ایجاد یک تحول عظیم داشت و شروع  این تحول عظیم باعث ریزش شدید استفاده کنندگان از این Angular شد.همانطور که پیش از این هم ذکر شد، هنگامی که AngularJS تبدیل به Angular 2 شد همه با یک چیز جدید که شباهت اندکی به نسخه قبلی داشت مواجه شدند. یادگیری آن برای بسیاری دشوار به نظر می‌رسید.جدا از این در ابتدا ورژن‌هایی که پس از AngularJS می‌آمدند، مدام تغییر می‌کردند و همین خاطره بدی در ذهن‌ها به جای گذاشته است.خوشبختانه آن مشکلات سابق در ورژن‌های جدید Angular وجود ندارد. نه تغییرات زیاد است و نه خروجی‌ها سنگین است و به نظر من دیگر یادگیری آن هم دشوار نیست و حتی با توجه به Angular CLI کار کردن با آن بسیار ساده شده است.تقریبا هر چیزی که به عنوان نقاط ضعف Angular می‌گویند مربوط به ورژن‌های قدیمی آن است و در ورژن های جدیدتر حل شدند.درست است که تیم Angular گام های بزرگی برداشتند، کاری کردند کارستان، ولی با همه این تلاش‌ها نتوانستند اعتماد بسیاری از برنامه نویسان را جذب کنند.به جای آن VueJs با الهام گیری از AngularJS و ارائه یک چهارچوب جذاب و ساده توانست مخاطبان بسیاری را جذب کند تا جایی که اگر پیش از این بسیاری از افراد VueJs را صرفا برای کارهای استارتاپی و دم دستی انتخاب می‌کردند امروز پروژه‌های مهمی را با آن انجام می‌دهند. حتی برخی از برنامه نویسان ویژگی‌هایی را در VueJS دیدند که ReactJS را هم کنار گذاشتند!قطعا برای شخص من به عنوان کسی که چند سال است Angular کار می‌کند این موضوع جذاب نیست. برخی از مقالاتی که در سایت‌های گوناگون می‌خوانم برای محبوب تر شدن Angular امیدی ندارند. چرا که معتقدند Angular هر چه می‌خواست انجام دهد تا الان انجام داده است.ولی من تصور می‌کنم اگر تیم Angular بتواند تفهیم کند که خاطرات تلخ گذشته برای گذشته بوده است و ما امروز با یک بستر مدرن و تمیز روبرو هستیم که کیفیت بالایی دارد می‌تواند به نتایج مثبتی برسد.شاید در آینده با فراگیر شدن اینترنت‌های پرسرعت (مانند 5G) و همچنین قوی تر شدن سخت افزارها و استفاده بیش از پیش از اپلیکیشن های تحت وب،‌ ارزش Angular بیشتر آشکار شود و در نتیجه محبوبیت آن بیشتر شود.باید دید چه پیش می آید…1- https://vuejs.org/v2/guide/comparison.html2- https://angular.io/guide/what-is-angular</description>
                <category>مجید خالقیان</category>
                <author>مجید خالقیان</author>
                <pubDate>Wed, 29 Dec 2021 15:07:51 +0330</pubDate>
            </item>
                    <item>
                <title>مقایسه ملال آور Angular و React</title>
                <link>https://virgool.io/@majid.khaleghian/%D9%85%D9%82%D8%A7%DB%8C%D8%B3%D9%87-%D9%85%D9%84%D8%A7%D9%84-%D8%A2%D9%88%D8%B1-angular-%D9%88-react-sphcfizpyohx</link>
                <description>همواره در حوزه برنامه نویسی درباره استفاده از زبان‌ها، ابزارها، تکنولوژی‌ها و... بحث و جدل بوده است. به ویژه در مواردی که می‌توان با دو یا چند تکنولوژی کارهای مشابه انجام داد.البته اینگونه بحث ها تا حدودی جذاب است ولی گاهی ملال آور می‌شود. هزاران نوشته در این باره نوشته می‌شوند و برنامه‌نویسان و توسعه‌دهندگان که هر کدام طرفدار یکی هستند گاهی دشمنان خونی هم می‌شوند!!این موضوع درباره Angular و React وجود دارد که تکنولوزی‌های مطرح در حوزه توسعه سمت کاربر وب هستند. طرفداران هر کدام از برتری یکی بر دیگری می‌نویسند. البته نوشته‌های بی طرف فراوانی هم وجود دارند که درباره هر کدام توضیح مفصل می‌دهند و با توجه به آمارها و قابلیت‌های هر کدام نظر می‌دهند.در این میان برخی غرض‌ورزی‌هایی هم می‌‌کنند به طوری که نوشته‌ای خواندم که گویا نویسنده آن به دنبال ریشه کن کردن Angular می باشد و در جایی نوشته است:If you’re a web developer, Angular is harming you and your world, even if you’re not using it. The more support it gets in the developer world, the less support there will be for more sensible approaches to development [1].من با چندین نوشته از این دست برخورد کردم که گویا برخی با Angular مشکل اساسی دارند. بسیاری از نویسنده‌های اینگونه نوشته‌ها توسعه دهندگانی هستند که با React بیشتر کار کردند. با این حال Angular به راه خود ادامه می‌دهد و نسخه های جدیدتر و بهتر ارائه می‌دهد.مهم ترین تفاوت React و Angular آن است که React یک کتابخانه (library) است در صورتی که Angular یک چهارچوب (Framework) است و البته سایت رسمی Angular آن را یک بستر توسعه (Development Platform) معرفی می‌کند [2].این را هم باید توجه داشته باشیم که React کتابخانه‌ای مانند jQuery نیست که بتوان آن را در بسترهای مختلف استفاده کرد و این خود می‌تواند مزایا و معایبی داشته باشد.به هر حال اکثر نوشته‌های منطقی ذکر کردند که تعداد توسعه دهندگان React بسیار بیشتر است و این کتابخانه بسیار محبوب است. از طرفی Angular برای توسعه برنامه های Enterprise و پروژه‌های بزرگ بسیار مناسب است.قطعا من به عنوان کسی که با Angular بیشتر کار کردم و تسلط بیشتری روی آن دارم نگاهم بیشتر به سمت Angular است.به نطر من چند نکته در Angular بسیار جذاب است۱- ابزارهایی مانند Angular CLI که باعث آسانی توسعه، به همراه دقت و نظم در کار می‌شود.۲- چهارچوب (Framework) بودن Angular که باعث می‌شود package‌های خارج از فضای Angular را کمتر نصب کنیم.۳- ساختار و معماری بسیار جالب Angular که کاملا بر اساس نیازهای برنامه نویسی سمت کاربر می‌باشد. نیازهایی که در طول چندین و چند سال به دست آمده است. این ساختار به کار گروهی کمک شایانی می‌کند.۴- با توجه به تحولات بسیار زیاد در حوزه توسعه سمت کاربر وب به ویژه تغییرات و ویژگی‌های جدید در زبان JavaScript باید پذیرفت که وجود یک بستر مطمئن که برای سال‌های آینده هم قابل استفاده باشد از نیازهای اساسی توسعه سمت کاربر است. چهارچوب Angular با استفاده از TypeScript و دیگر موارد این امکان را فراهم کرده است تا اگر امکانات جدیدی در حوزه توسعه سمت کاربر ایجاد شد با همان کدهای پیشین در نسخه های جدید این امکانات جدید و کاربردی قابل استفاده باشند. گرچه نسخه‌های چند سال پیش طبیعتا تحت تاثیر دنیای پر از تحول توسعه سمت کاربر بودند و تغییرات فراوانی در نسخه‌های مختلف Angular مشاهده می‌شد که خوشبختانه چند وقتی است که تغییرات  اندک شده و بیشتر ویژگی اضافه شده و بر روی زیرساخت‌ها و Performance کار شده است.واقعیت آنکه کسانی که بر روی موارد تسلط کافی ندارند نمی‌توانند نظر دقیقی دهند. برای مثال اگر React را با ذهنیت انگولاری بررسی کنیم به جای خوبی نمی‌رسیم. همچنین اگر بر عکس این کار را انجام دهیم.برای مثال برخی می‌گویند Angular دارای Performance خوبی نیست. البته که شاید برای پروژه‌های کوچک آن Performance که با Vue یا React توسعه داده می شود را نداشته باشد ولی درباره پروژه‌های بزرگ قصیه کاملا متفاوت است. شاید هم نسخه‌های قدیمی Angular این ذهنیت را ایجاد کرده است ولی در نسخه‌های جدیدتر، Performance بهبود قابل توجهی پیدا کرده است به ویژه از زمانی که از Ivy استفاده شد.اما اگر از این بحث‌ها و مقایسه‌هایی که گاه ملال آور می‌شود بگدریم من فکر می‌کنم بیشتر از آنکه تکنولوژی، زبان برنامه‌نویسی، کتابخانه، چهارچوب و... در موفقیت یک پروژه نقش داشته باشند، اشخاص و توسعه دهندگانی که خوب کار می‌کنند و کار را خوب بلد هستند، نقش دارند!یعنی این پشتکار، مسئولیت پذیری و علاقه توسعه دهنده است که باعث می‌شود یک محصول عالی رقم بخورد.بسیاری از تصمیم گیرندگان و مدیران و... تلاش می‌کنند با توجه به قابلیت‌های تکنولوژی‌ها یک مورد را انتخاب کنند. البته این کار کاملا منطقی و درست است ولی به نظرم وقتی کارهای مشترک با تکنولوژی ها می توان کرد، بیشتر از آنکه تکنولوژی اثر بخش باشد اشخاص تاثیر گذار هستند.از سوی دیگر به نظرم اصلا نباید از کسی که تسلط به یک کتابخانه یا چهارچوب دارد، به خاطر اینکه می‌دانیم شخص مسئولیت پذیری است، یا رزومه خوبی دارد، بخواهیم برود یک کتابخانه یا چهارچوب دیگر را یاد بگیرد.بارها دیده‌ام که از یک توسعه دهنده Angular می‌خواهند که Vue یا React یاد بگیرد و وقتی یاد گرفت بیاید و برای آنها کار کند!! این توهین بزرگی به یک توسعه دهنده است که راه خودش را انتخاب کرده و به علاقه و مسئولیت پذیری در حوزه دلخواه دست یافته است.البته که برای خود توسعه دهندگان بسیار مفید است که با تکنولوژی های مختلف آشنا باشند ولی اگر این موضوع تحمیلی یا از سر ناچاری برای دریافت حقوق بیشتر باشد تاثیرات بسیار نامطلوبی می گذارد. موضوعی که متاسفانه در ایران زیاد دیده می‌شود.پانویس:1- Brown, Mike (May 5, 2018). Angular — Stop Already!. Medium.2- What is Angular?. Angular</description>
                <category>مجید خالقیان</category>
                <author>مجید خالقیان</author>
                <pubDate>Sat, 21 Aug 2021 00:33:00 +0430</pubDate>
            </item>
                    <item>
                <title>روشی ساده برای پیاده سازی lazy load در Angular</title>
                <link>https://virgool.io/@majid.khaleghian/%D8%B1%D9%88%D8%B4%DB%8C-%D8%B3%D8%A7%D8%AF%D9%87-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%BE%DB%8C%D8%A7%D8%AF%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C-lazy-load-%D8%AF%D8%B1-angular-qdlq8kpk18m0</link>
                <description>در این چند سال که از آمدن Modern Angular می گذرد وقتی با برخی از با همکاران و دوستان برنامه نویس درباره lazy load  و modular بودن پروژه‌هایangular  صحبت می‌کنم به نظرم می‌رسد که بسیاری از دوستان از این موضوع فرار می کنند! ولی باید گفت یک پروژه خوب و استاندارد که با Angular پیاده سازی شده است باید این شرایط را داشته باشد.شاید دلیل سخت بودن آن برای دوستان، ایجاد module به همراه routing و قرار دادن فایل ها در پروژه است.ولی یکی از مزایای Angular  نسبت به Library‌ها و Framework های دیگر CLI بسیار کاربردی و قوی آن است. برای lazy load هم می توانیم از یک دستور جالب استفاده کنیم که ساختار منظم به همراه فایل ها را به وجود می آورد و کار را بسیار راحت تر می کند.آن هم دستور زیر است:ng g m --routing</description>
                <category>مجید خالقیان</category>
                <author>مجید خالقیان</author>
                <pubDate>Sun, 13 Jun 2021 17:27:17 +0430</pubDate>
            </item>
                    <item>
                <title>راه جالب برای debug در Angular</title>
                <link>https://virgool.io/@majid.khaleghian/%D8%B1%D8%A7%D9%87-%D8%AC%D8%A7%D9%84%D8%A8-%D8%A8%D8%B1%D8%A7%DB%8C-debug-%D8%AF%D8%B1-angular-lrcvpnebq8x6</link>
                <description>معمولا افرادی که در حوزه Web Front End فعالیت می‌کنند از راه هایی مانند console.log یا debugger برای debug کار خود بهره می‌برند. ولی در Angular یک راه جالب وجود دارد که در برخی مواقع کاربردی تر از راه های مرسوم است.کافی است همان selector که برای component تعیین شده است را در نظر داشته باشید و دستور زیر را در console اجرا کنید (در اینجا برای مثال &#x27;app-root&#x27; را گذاشته ایم):ng.getComponent(document.getElementsByTagName(&#x27;app-root&#x27;)[0])کامپوننت مورد نظر شما با تمام جزئیات به همراه نوع و مقدارشان نمایش داده می‌شوند.می‌توانید با همه تغییرات دستور را اجرا کنید و مقادیر و تغییرات کامپوننت را ببینید.</description>
                <category>مجید خالقیان</category>
                <author>مجید خالقیان</author>
                <pubDate>Sun, 13 Jun 2021 16:28:39 +0430</pubDate>
            </item>
                    <item>
                <title>نگارش با خط میخی پارسی باستان در فضای مجازی</title>
                <link>https://virgool.io/@majid.khaleghian/%D9%86%DA%AF%D8%A7%D8%B1%D8%B4-%D8%A8%D8%A7-%D8%AE%D8%B7-%D9%85%DB%8C%D8%AE%DB%8C-%D9%BE%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A8%D8%A7%D8%B3%D8%AA%D8%A7%D9%86-%D8%AF%D8%B1-%D9%81%D8%B6%D8%A7%DB%8C-%D9%85%D8%AC%D8%A7%D8%B2%DB%8C-n73cwt20c5gl</link>
                <description>سامانه بومیش یک سامانه رایاتاری (تحت وب) است که با کمک آن می‌توانیم به میخی پارسی باستان نگارش کنیم و یک‌راست در انجمن‌ها و پایگاه‌های رایاتاری (شبکه‌های اجتماعی و وب‌سایت‌ها) در میان بگذاریم.سامانه بومیش تفاوت بنیادین با برخی از نمونه‌های دیگر دارد که از «فونت خط میخی» یا تصاویر حروف خط میخی استفاده می کنند دارد چرا که سامانه بومیش بدون هیچ میانجی در همه جا نمایش داده می‌شود و از یونیکد بهره می‌برد.از پیوند زیر می‌توانید به سامانه بومیش دسترسی داشته باشید: https://kheradgan.ir/cuneiform</description>
                <category>مجید خالقیان</category>
                <author>مجید خالقیان</author>
                <pubDate>Wed, 12 May 2021 14:29:38 +0430</pubDate>
            </item>
            </channel>
</rss>