1 866
Subscribers
No data24 hours
No data7 days
-230 days
Posts Archive
1 866
✅ مقایسه کوتاه: any و unknown
در تایپ اسکریپت، انتخاب تایپ داده برای کنترل خطا و ایمنی کد اهمیت زیادی داره.
☑️
any:
به هر نوع دادهای اجازه میده بدون بررسی استفاده بشه. کنترل ایمنی رو کاهش میده و ممکنه باعث خطاهای زمان اجرا بشه.
☑️ unknown:
شبیه any هست اما قبل از استفاده باید نوع داده بررسی یا محدود بشه. ایمنی بیشتری به کد اضافه میکنه.
🔰 جمعبندی:
هرچند any راحتتر به نظر میرسه، استفاده از unknown باعث میشه کد امنتر و قابل اعتمادتر باشه.
#مقایسه_مفاهیم #کدنویسی #توسعه_وب
———————————
@frontcast | فرانت کست1 866
📂 کد رو از رو نخون: CSS
div {
width: 100px;
padding: 20px;
}
👀 در نگاه اول:
کل عرض باید 100px باشه.
⚡️ در واقعیت:
چون مقدار پیشفرض box-sizing روی content-box هست، کل عرض 140px محاسبه میشه.
💡 نکته:
در CSS مقدار پیشفرض box-sizing ممکنه باعث گیج شدن بشه.
📌 پیشنهاد:
همیشه box-sizing: border-box; رو ست کن تا محاسبه اندازهها قابل پیشبینیتر بشه.
#کد_رو_از_رو_نخون #CSS
———————————
@frontcast | فرانت کست1 866
📋 چکلیست پروژه: ریسپانسیو و UI/UX
ریسپانسیو بودن و طراحی درست UI/UX تجربه کاربری رو به شدت بهبود میده و برای موبایلفرندلی بودن ضروریه.
✅ طراحی Mobile-first و تست روی اندازههای مختلف صفحه
✅ استفاده از grid و flex برای چیدمان منعطف
✅ رعایت اصول دسترسپذیری (alt برای تصاویر، کنتراست رنگها)
✅ تست روی مرورگرها و دستگاههای متنوع
✅ طراحی یکپارچه و منسجم برای رنگها، فونتها و کامپوننتها
📌 پیشنهاد:
از ابزارهایی مثل Figma یا Storybook برای تست و طراحی رابط کاربری استفاده کن تا هماهنگی بیشتری ایجاد بشه.
#چک_لیست #توسعه_وب
———————————
@frontcast | فرانت کست
1 866
🔍 عمیقتر نگاه کنیم: تغییرات Cache در Next.js 15
چرا متد GET در Next.js 15 دیگه کش نمیشه؟
📖 توضیح:
در نسخه ۱۵، Next.js تصمیم گرفته که cache پیشفرض برای GET route handlerها رو غیرفعال کنه. دلیلش این بوده که رفتار قبلی گاهی باعث بروز مشکلات پیشبینیناپذیر میشد. حالا توسعهدهنده باید صریحاً مشخص کنه که آیا پاسخ باید کش بشه یا خیر.
💡 نکته کلیدی:
این تغییر باعث کنترل بیشتر توسعهدهنده روی performance و رفتار درخواستها میشه.
🛠 کاربرد:
اگه API عمومی داری و میخوای سرعت لود بهتر بشه، میتونی بهصورت دستی کش رو فعال کنی. ولی برای دادههای حساس یا real-time بهتره کش غیرفعال بمونه.
#فهم_عمیق #برنامه_نویسی
———————————
@frontcast | فرانت کست
1 866
بررسی نحوه کار قوانین Lint در جاوااسکریپت
برنامهنویسها همیشه با Linter سر و کار دارن، ولی خیلی وقتا نمیدونن پشت این ابزار دقیقاً چه خبره. در این مقاله توضیح دادیم قوانین Lint در جاوااسکریپت چطور عمل میکنن و چرا ASTها نقش اصلی رو دارن. همچنین یاد میگیریم ESLint چطور از این ساختار استفاده میکنه. درک این مفاهیم کمک میکنه کدی تمیزتر و استانداردتر بنویسیم.
ادامه مطلب
———————————
@frontcast | فرانت کست
1 866
🎉۵۰ درصد تخفیف ویژه برای همه دورهها شروع شد!
✅ از امروز میتونید با ۵۰ درصد تخفیف به همه دورهها دسترسی داشته باشید و یادگیریتون رو شروع کنید.
📌 این تخفیف مدت محدودی فعاله، پس فرصت رو از دست ندید.
💬 در صورتی که نیاز به مشاوره دارید یا میخواید مسیر مناسبتری رو انتخاب کنید، حتما پیام بدید: @MasoodSadri
مشاهده دورهها
1 866
📂 کد رو از رو نخون: جاوااسکریپت
console.log(typeof NaN);
👀 در نگاه اول:
یعنی NaN همون "Not a Number" هست، پس انتظار داری NaN برگردونه.
⚡️ در واقعیت:
خروجی "number" میده. این یه ایراد تاریخی در جاوااسکریپته.
💡 نکته:
همیشه بدون که NaN هم از نوع number محسوب میشه.
📌 پیشنهاد:
برای بررسی NaN بودن مقدار از تابع Number.isNaN() استفاده کن.
#کد_رو_از_رو_نخون #جاوااسکریپت
———————————
@frontcast | فرانت کست1 866
📋 چکلیست پروژه: کار با APIها
طراحی و مصرف درست APIها، ارتباط بین فرانتاند و بکاند رو بهینه و پایدار میکنه.
✅ طراحی API به صورت RESTful یا GraphQL
✅ مدیریت خطاها و وضعیتهای مختلف (loading، error، empty state)
✅ استفاده از ابزارهایی مثل Postman یا Swagger برای تست API
✅ احراز هویت و ارسال توکن در درخواستها
✅ بهینهسازی تعداد درخواستها و استفاده از caching
📌 پیشنهاد:
هنگام مصرف API در فرانتاند، همیشه خطاهای شبکه و سرور رو هندل کن تا تجربه کاربر مختل نشه.
#چک_لیست #توسعه_وب
———————————
@frontcast | فرانت کست
1 866
🔍 عمیقتر نگاه کنیم: جایگزینهای لیست پیوندی
چه زمانی بهتره بهجای لیست پیوندی از ساختار دیگهای استفاده کنیم؟
📖 توضیح:
لیست پیوندی به دلیل نیاز به اشارهگرهای اضافی، حافظه بیشتری مصرف میکنه و در جستجو کارایی پایینی داره.
💡 نکته کلیدی:
برای دسترسی سریع آرایه مناسبتره و برای جستجوهای پرتکرار، جدول هش عملکرد بهتری داره.
🛠 کاربرد:
یک اپلیکیشن دفترچه تلفن با جدول هش کارایی بالاتری داره چون جستجو بر اساس نام رو سریعتر انجام میده.
#فهم_عمیق #برنامه_نویسی
———————————
@frontcast | فرانت کست
1 866
بررسی ویژگیهای پیشرفته AbortController در جاوااسکریپت
ابزار AbortController در جاوااسکریپت فراتر از لغو درخواستهای fetch عمل میکنه.
باهاش میتونیم Event Listenerها رو پاکسازی کنیم، timeout خودکار بسازیم و حتی توابع اختصاصی قابل لغو طراحی کنیم.
توی این مقاله به زبانی ساده و تخصصی، همه ویژگیهای پیشرفته AbortController رو بررسی کردیم.
ادامه مطلب
———————————
@frontcast | فرانت کست
1 866
✅ مقایسه کوتاه: var و let و const
انتخاب نوع متغیر در جاوااسکریپت روی ایمنی کد و مدیریت حافظه تاثیر داره.
☑️ var:
قدیمیترین روش تعریف متغیر با قابلیت hoisting. دارای scope تابعی و مشکلاتی مثل بازنویسی ناخواسته.
☑️ let:
روش مدرنتر با scope بلاکی. امکان تغییر مقدار داره اما از مشکلات var جلوگیری میکنه.
☑️ const:
برای متغیرهایی که نباید بازنویسی بشن. scope بلاکی داره و بهترین گزینه برای تعریف مقادیر ثابت محسوب میشه.
🔰 جمعبندی:
امروز بیشتر از let و const استفاده میشه. var تقریباً منسوخ شده و استفاده از اون توصیه نمیشه.
#مقایسه_مفاهیم #کدنویسی #توسعه_وب
———————————
@frontcast | فرانت کست
1 866
🛠 معرفی ابزار: shadcn/ui
خیلی وقتها برای ساخت رابط کاربری نیاز به یک مجموعه کامپوننت آماده داریم. اینجاست که shadcn/ui مطرح میشه! این ابزار مشکل محدود بودن یا سنگینی بیشتر کتابخونههای UI رو حل میکنه و کد کامپوننتها رو مستقیم داخل پروژه در اختیارت میذاره.
🔹 ویژگیها:
1️⃣ مجموعهای از کامپوننتهای آماده و مدرن با طراحی شیک
2️⃣ استفاده از Tailwind CSS برای استایلدهی سریع و قابل تغییر
3️⃣ بدون وصل شدن به پکیج خارجی، کد کامپوننتها مستقیم داخل پروژه قرار میگیره و هرطور بخوای میتونی تغییر بدی
📌 کاربرد:
با استفاده از shadcn/ui میتونی خیلی سریع رابط کاربری حرفهای برای پروژههای React و Next.js بسازی، بدون اینکه درگیر محدودیتهای یک کتابخونه بسته بشی. این ابزار بهت انعطاف کامل میده تا هم سرعت توسعه بالا بره، هم ظاهر پروژه شیک و مدرن باشه.
#معرفی_ابزار
———————————
@frontcast | فرانت کست
1 866
📋 چکلیست پروژه: مدیریت State در فرانتاند
مدیریت درست state باعث میشه دادهها قابل پیشبینی، مقیاسپذیر و قابل نگهداری باشن.
✅ انتخاب ابزار مناسب (Context API، Redux، Zustand، React Query)
✅ ساختاردهی پوشهها و جداسازی state از UI
✅ مدیریت کش دادهها برای درخواستهای تکراری
✅ تعریف واضح initial state و default values
✅ نوشتن تست برای فانکشنهای مدیریت state
📌 پیشنهاد:
برای پروژههای متوسط و بزرگ، از ابزارهای سبک مثل React Query یا Zustand شروع کن تا پیچیدگی کمتر بشه.
#چک_لیست #توسعه_وب
———————————
@frontcast | فرانت کست
1 866
🔍 عمیقتر نگاه کنیم: Genericها در تایپ اسکریپت
چرا بعضی فانکشنها در تایپ اسکریپت بهجای تایپ مشخص، یک
<T> عجیب دارن؟
📖 توضیح:
جنریکها در تایپ اسکریپت اجازه میدن کدهای عمومیتر و قابل استفاده مجدد بنویسیم بدون اینکه تایپدهی دقیق رو از دست بدیم.
💡 نکته کلیدی:
جنریکها باعث میشن همزمان هم انعطافپذیری داشته باشیم و هم type safety.
🛠 کاربرد:
مثلاً در فانکشنی مثل Array.map تایپ داده ورودی و خروجی بهطور خودکار توسط Genericها هندل میشن.
#فهم_عمیق #برنامه_نویسی
———————————
@frontcast | فرانت کست1 866
بررسی تغییرات نسخه 4 کتابخانه Zod
نسخه ۴ کتابخانه Zod تغییرات قابل توجهی به همراه داره. این نسخه با هستهای کوچکتر، سرعت پردازش بالاتر و مدیریت پیشرفتهتر خطاها، فرآیند اعتبارسنجی دادهها را کارآمدتر میسازه. همچنین برای محیطهای مدرن مانند Serverless و Edge Functionها بهینهسازی شده و امکان استفاده توسعهدهندگان در پروژههای متنوع را سادهتر میکنه.
ادامه مطلب
———————————
@frontcast | فرانت کست
1 866
✅ مقایسه کوتاه: Local Storage و Session Storage
برای ذخیرهسازی داده سمت کاربر، مرورگر گزینههای متفاوتی مثل Local Storage و Session Storage ارائه میده.
☑️ Local Storage:
دادهها بهصورت دائمی در مرورگر ذخیره میشن و بعد از بستن مرورگر هم باقی میمونن (تا زمانی که کاربر پاک کنه).
☑️ Session Storage:
دادهها فقط در طول یک session مرورگر نگهداری میشن و با بستن تب یا مرورگر پاک میشن.
🔰 جمعبندی:
برای دادههای موقت مثل اطلاعات فرم از Session Storage استفاده کنین؛ ولی برای دادههای پایدار مثل تنظیمات کاربر، Local Storage مناسبتره.
#مقایسه_مفاهیم #کدنویسی #توسعه_وب
———————————
@frontcast | فرانت کست
1 866
📂 کد رو از رو نخون: جاوااسکریپت
console.log([] == ![]);
👀 در نگاه اول:
خب [] یه آرایه خالیه و ![] هم false میشه. پس مقایسه باید false برگردونه.
⚡️ در واقعیت:
خروجی true میشه. دلیلش type coercion هست ← [] به true تبدیل میشه، بعد ![] false میشه و در نهایت 0 == 0.
💡 نکته:
مقایسه == میتونه نتایج عجیب تولید کنه.
📌 پیشنهاد:
برای جلوگیری از این خطاها همیشه از مقایسه === استفاده کن.
#کد_رو_از_رو_نخون #جاوااسکریپت
———————————
@frontcast | فرانت کست1 866
📋 چکلیست پروژه: طراحی دیتابیس
طراحی درست دیتابیس باعث افزایش سرعت، مقیاسپذیری و کاهش مشکلات در آینده میشه.
✅ انتخاب نوع دیتابیس مناسب (SQL یا NoSQL)
✅ طراحی جداول یا کالکشنها بر اساس نیازمندیها
✅ نرمالسازی دادهها برای جلوگیری از تکرار
✅ تعریف کلیدهای اصلی و خارجی مناسب
✅ ایجاد ایندکس برای کوئریهای پرکاربرد
📌 پیشنهاد:
قبل از پیادهسازی، یک دیاگرام ER یا Schema طراحی کن تا دید بهتری از روابط دادهها داشته باشی.
#چک_لیست #توسعه_وب
———————————
@frontcast | فرانت کست
1 866
🔍 عمیقتر نگاه کنیم: لیست پیوندی چیست؟
چطور میتونیم دادهها رو بهصورت پویا مدیریت کنیم بدون اینکه نیاز به تغییر اندازه آرایهها داشته باشیم؟
📖 توضیح:
لیست پیوندی ساختاری از گرههاست که هر گره شامل داده و یک یا چند اشارهگر به گرههای دیگه هستش.
💡 نکته کلیدی:
با لیست پیوندی میتونیم عناصر رو بهراحتی اضافه یا حذف کنیم بدون اینکه نیاز به بازسازی کل ساختار داشته باشیم.
🛠 کاربرد:
در پیادهسازی صف (Queue) و پشتهها (Stack) معمولاً بهجای آرایه از لیست پیوندی استفاده میشه.
#فهم_عمیق #برنامه_نویسی
———————————
@frontcast | فرانت کست
1 866
استفاده از ()after در Next.js — راهنمای کامل بهینهسازی اپلیکیشن
قابلیت جدید Next.js 15 به نام
()after به ما این امکان رو میده که عملیات غیرضروری مثل لاگگیری یا تحلیل دادهها رو بعد از ارسال پاسخ انجام بدیم.
با این کار کاربر سریعتر نتیجه میگیره و تجربه بهتری داره.
ادامه مطلب