GyaanSetu جاوااسکریپت

اکوسیستم جاوااسکریپت و تایپ‌اسکریپت.

100 articlesDeep, practical knowledge

من هفته گذشته را صرف درک نحوه عملکرد واقعی دامنه‌های .night کردم؛ نه از طریق مطالعه مشخصات فنی، بلکه با ساختن چیزی...

من هفته گذشته را صرف درک نحوه عملکرد واقعی دامنه‌های .night کردم. نه از طریق مطالعه مشخصات فنی، بلکه با ساختن چیزی که مستقیماً با زنجیره در ارتباط است. نتیجه یک پروژه کوچک...

جاوااسکریپت · 5 min read

اکثر اپلیکیشن‌های وب هنوز با آپلود تصاویر مانند یک جعبه سیاه برخورد می‌کنند. کاربر فایلی را در آن می‌اندازد، مرورگر آن را ارسال می‌کند و سرور

اکثر اپلیکیشن‌های وب هنوز با آپلود تصاویر مانند یک جعبه سیاه برخورد می‌کنند. کاربر فایلی را در آن می‌اندازد، مرورگر آن را ارسال می‌کند و سرور یا داده‌ها را می‌پذیرد یا خطای 413 را صادر می‌کند که هیچ...

جاوااسکریپت · 5 min read

هر توسعه‌دهنده Node.js دیر یا زود با چالش مشابهی روبرو می‌شود. کاربر روی یک دکمه کلیک می‌کند و هندلر مسیر شما شروع به...

هر توسعه‌دهنده Node.js دیر یا زود با چالش مشابهی روبرو می‌شود. کاربر روی یک دکمه کلیک می‌کند، هندلر مسیر شما مشغول انجام یک کار سنگین می‌شود و درخواست HTTP همان‌جا معطل می‌ماند...

جاوااسکریپت · 5 min read

وقتی با Node.js برنامه‌نویسی می‌کنید، مدیریت خطا در ابتدا تقریباً بیش از حد آسان به نظر می‌رسد. شما یک مسیر را در یک try-catch قرار می‌دهید و ارسال می‌کنید

وقتی با Node.js برنامه‌نویسی می‌کنید، مدیریت خطا در ابتدا تقریباً بیش از حد آسان به نظر می‌رسد. شما یک مسیر را در یک try-catch قرار می‌دهید، کد وضعیت ۵۰۰ را ارسال می‌کنید و کلاینت تصمیم می‌گیرد که در مرحله بعد چه کاری انجام دهد...

جاوااسکریپت · 5 min read

اگر تا به حال از یک برنامه‌نویس خواسته‌اید «لوگو را بزرگ‌تر کند» یا به یک طراح گفته‌اید «خطای پایگاه داده را اصلاح کند»، شما نیستید

اگر تا به حال از یک برنامه‌نویس خواسته‌اید «لوگو را بزرگ‌تر کند» یا به یک طراح گفته‌اید «خطای پایگاه داده را اصلاح کند»، تنها نیستید. اکثر افراد خارج از حوزه فناوری، از اصطلاحات «طراحی وب‌سایت» و «...» استفاده می‌کنند.

جاوااسکریپت · 3 min read

همه آن پوشه را دارند. همان پوشه‌ای که پر از آموزش‌های نیمه‌تمام، پروژه‌های جانبی رها شده و فایل‌های README است که...

همه آن پوشه را دارند. همان پوشه‌ای که پر از آموزش‌های نیمه‌تمام، پروژه‌های جانبی رها شده و فایل‌های README است که بیش از آنچه انجام می‌دهند، وعده می‌دهند. این گورستانی از ایده‌های خوب است که...

جاوااسکریپت · 6 min read

بازیکنان از اینکه یک دور بازی را به خاطر مسائل فنی از دست بدهند متنفرند. سکو صاف بود، زمان‌بندی درست بود، و بعد بازی آن‌ها را از پا درآورد.

بازیکنان از اینکه یک دور بازی را به خاطر مسائل فنی از دست بدهند بیزارند. سکو صاف بود، زمان‌بندی درست بود، و بعد بازی آن‌ها را از پا درآورد، نه به این دلیل که اشتباهی کرده بودند، بلکه به این دلیل که مرورگر...

جاوااسکریپت · 6 min read

بازنویسی تایپ‌اسکریپت ۷ با زبان Go، زمان کامپایل VS Code را ۱۱.۹ برابر کاهش داد و به ۱.۳ ثانیه رساند

مایکروسافت با جایگزینی موتور قدیمی مبتنی بر Node، کامپایلر را با زبان Go بازسازی کرده است. تجزیه و بررسی نوع (type-checking) موازی، زمان کامپایل VS Code را از ۱۷.۵ ثانیه به کمتر از ۱.۳ ثانیه کاهش داده و مصرف حافظه را در پروژه‌های بسیار بزرگ تا ۲۶ درصد کم می‌کند.

جاوااسکریپت · 2 min read

افشای شکست‌های بی‌صدای Supabase-JS توسط یک Wrapper جدید Mutate در TypeScript

یک Wrapper سبک در TypeScript، توسعه‌دهندگان را ملزم می‌کند فیلد `error` بازگشتی از supabase-js را مدیریت کنند؛ این ابزار هر عملیات نوشتنِ رد شده را در Sentry ثبت کرده و از نمایش نشان‌های «موفقیت» در رابط کاربری که باعث پنهان ماندن داده‌های تغییرنیافته می‌شوند، جلوگیری می‌کند.

جاوااسکریپت · 4 min read

SolidJS 2.0 به تیم‌های React اجازه می‌دهد تا هنگام به‌روزرسانی داده‌ها، پایداری رابط کاربری را حفظ کنند

SolidJS 2.0 یک مدل داده‌های ناهمگام (async-data) بومی را معرفی می‌کند که در آن Promiseها مقادیر واکنش‌پذیر درجه اول محسوب می‌شوند؛ به این ترتیب، حالت جایگزین (fallback) تنها در بارگذاری اولیه نمایش داده می‌شود. بازخوانی‌های بعدی داده‌ها، DOM موجود را روی صفحه حفظ می‌کنند و از نمایش ناگهانی نشانگرهای انتظار (spinners) که در Suspense مربوط به React رخ می‌دهد، جلوگیری می‌کنند.

جاوااسکریپت · 5 min read

تیم‌های ری‌اکت با تقسیم تسک‌های طولانی و استفاده از startTransition، مقدار INP را به زیر ۲۰۰ میلی‌ثانیه کاهش دادند

حتی با امتیازات کامل Lighthouse، زمان Interaction to Next Paint (INP) برای کاربران واقعی می‌تواند از ۵۰۰ میلی‌ثانیه فراتر رود. با تکه‌تکه کردن تسک‌های طولانی با استفاده از scheduler.yield، قرار دادن به‌روزرسانی‌های غیرضروری در startTransition و حذف DOMهای خارج از صفحه، می‌توانید INP را به زیر آستانه ۲۰۰ میلی‌ثانیه‌ای (معیار «سریع») برسانید.

جاوااسکریپت · 2 min read

تایپ‌اسکریپت ۷ با بررسی موازی اعلان‌ها، زمان بیلد مونو‌رپوها را کاهش می‌دهد

حالت جدید «اعلان‌های ایزوله» (isolated declarations)، فرآیند بررسی فایل‌های .d.ts را بین هسته‌های CPU توزیع می‌کند که باعث کاهش چشمگیر چرخه‌های کامپایل در مخازن دارای صدها پکیج شده و منجر به صرفه‌جویی فوری در منابع عامل‌های CI که بر روی سخت‌افزارهای چند هسته‌ای اجرا می‌شوند، می‌گردد.

جاوااسکریپت · 2 min read

نسخه آلفای pnpm v12 با بازنویسی به زبان Rust، زمان نصب گرم را از ۳۸۱ میلی‌ثانیه به ۱۲ میلی‌ثانیه کاهش می‌دهد

باینری بومی جدید Rust زمان نصب گرم را تا ۳۰ برابر کاهش می‌دهد، نصب‌های بدون کش را به ۴۰ میلی‌ثانیه می‌رساند و زمان نصب کامل درخت را به ۲.۲ ثانیه کاهش می‌دهد؛ این تغییر ضمن حفظ پرچم‌های CLI و فرمت lockfile، نویدبخش خط لوله‌های CI بسیار سریع‌تر است.

جاوااسکریپت · 2 min read

جعبه‌های سیاه حذف اطلاعات فریبنده بودند – روشی جدید صفحات حساس را به تصویر تبدیل می‌کند

این ویرایشگر به‌طور کامل در مرورگر اجرا می‌شود و تنها صفحاتی را که حاوی حذف اطلاعات هستند به بیت‌مپ‌هایی با مقیاس سه برابر تبدیل می‌کند، در حالی که بقیه سند را به صورت برداری باقی می‌گذارد تا قابلیت جستجو حفظ شده و حجم فایل نیز کم بماند.

جاوااسکریپت · 3 min read

Auto-Animate انیمیشن‌های لیست بدون نیاز به کد را به Marko 6 اضافه می‌کند

پکیج جدید @formkit/auto-animate/marko از طریق npm در دسترس است؛ این پکیج والدِ یک لیست را با <AutoAnimate> محصور کرده و با استفاده از یک MutationObserver، عملیات افزودن، حذف و تغییر ترتیب را بدون نیاز به هیچ کد جاوااسکریپت اضافی یا lifecycle hookهایی، به صورت انیمیشن اجرا می‌کند.

جاوااسکریپت · 2 min read