Front Cast – Telegram
Front Cast
1.89K subscribers
395 photos
2 videos
463 links
برنامه نویسی به زبان ساده.

@MasoodSadri

frontcast.ir
Download Telegram
مقایسه کوتاه: interface و type

در تایپ اسکریپت هر دو برای تعریف شکل و ساختار داده‌ها استفاده می‌شن، اما کاربرد و توانایی‌هاشون کمی با هم فرق داره.

☑️ interface:
برای تعریف قرارداد بین بخش‌های مختلف کده (مثل مشخص کردن ساختار یک آبجکت یا کلاس).
می‌تونه با استفاده از extends از چند interface دیگه ارث‌بری کنه و به راحتی گسترش پیدا کنه.

☑️ type:
انعطاف‌پذیرتره و فقط برای آبجکت‌ها نیست.
می‌تونه ترکیبی از چند نوع مختلف (مثل union یا intersection) باشه و حتی برای primitiveها هم استفاده بشه.

🔰 جمع‌بندی:
اگر ساختار یک آبجکت یا کلاس رو تعریف می‌کنی، interface گزینه تمیزتر و استانداردتریه.
اما وقتی با انواع پیچیده‌تر یا ترکیبی از چند نوع سروکار داری، type قدرت بیشتری در اختیارت می‌ذاره.

#مقایسه_مفاهیم #کدنویسی #توسعه_وب

———————————
@frontcast | فرانت کست
👍83
کار با Enum در تایپ اسکریپت: روش‌ها و نکات پیمایش

اگر با Enum در تایپ اسکریپت سروکار داری، بدون که همه روش‌های پیمایش عملکرد یکسانی ندارن.
در Enumهای عددی، تایپ اسکریپت هم کلیدها و هم مقدارها رو برمی‌گردونه که می‌تونه گمراه کننده باشه. در حالی‌که Enumهای رشته‌ای فقط کلیدها رو برمی‌گردونن و قابل اطمینان‌ترن.
انتخاب روش پیمایش مناسب، به ساختار Enum و اهمیت تایپینگ در پروژه بستگی داره.

ادامه مطلب

———————————
@frontcast | فرانت کست
5
🔍 عمیق‌تر نگاه کنیم: useActionState در React 19

چطور بدون useState و useReducer، می‌تونیم state فرم‌ها رو مدیریت کنیم؟

📖 توضیح:
هوک جدید useActionState توی React 19 کمک می‌کنه حالت فرم و سرور اکشن‌ها رو باهم مدیریت کنی.

💡 نکته کلیدی:
دیگه لازم نیست چندتا state جدا داشته باشی، همه چیز خودکار آپدیت میشه.

🛠 کاربرد:

const [state, action] = useActionState(submitForm);


اینجا state وضعیت فعلی فرم (مثل pending یا success) رو نگه می‌داره و action هم تابعی هست که فرم باهاش ارسال میشه.

#فهم_عمیق #برنامه_نویسی

———————————
@frontcast | فرانت کست
👍73
📋 چک‌لیست پروژه: بهینه‌سازی فرانت‌اند

بهینه‌سازی فرانت‌اند باعث می‌شه سرعت بارگذاری بالا بره، تجربه کاربری بهتر بشه و سئو سایتت رشد کنه.

فشرده‌سازی و کوچک‌سازی فایل‌های CSS و JS
استفاده از تصاویر بهینه (WebP/AVIF) و Lazy Loading
حذف کدها و پکیج‌های غیرضروری
استفاده از CDN برای فایل‌های استاتیک
بررسی Lighthouse برای سنجش Performance

📌 پیشنهاد:
به طور منظم با ابزارهایی مثل Google Lighthouse پروژه‌ات رو تست کن تا مشکلات پرفورمنس سریع‌تر مشخص بشن.

#چک_لیست #توسعه_وب

———————————
@frontcast | فرانت کست
11
مقایسه کوتاه: Flexbox و Grid

انتخاب سیستم چیدمان مناسب در CSS باعث می‌شه طراحی رابط کاربری سریع‌تر و تمیزتر انجام بشه.

☑️ Flexbox:
برای چیدمان یک‌بعدی (ردیف یا ستون) طراحی شده. انعطاف‌پذیر و عالی برای ساخت المنت‌های ریسپانسیو در محور واحد.

☑️ Grid:
برای چیدمان دوبعدی (ردیف و ستون همزمان) ساخته شده. کنترل کامل روی شبکه‌بندی و طراحی‌های پیچیده ارائه می‌ده.

🔰 جمع‌بندی:
برای ساختار ساده‌تر و یک‌بعدی از Flexbox استفاده کنین؛ اما برای طراحی‌های پیچیده و دوبعدی، Grid انتخاب ایده‌آله.

#مقایسه_مفاهیم #کدنویسی #توسعه_وب

———————————
@frontcast | فرانت کست
10👏3👍1
افزایش سرعت توسعه پروژه؛ چگونه می‌توانیم پروژه‌ها را سریع‌تر بسازیم؟

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

ادامه مطلب

———————————
@frontcast | فرانت کست
6👍2
📋 چک‌لیست پروژه: تست و QA

تست و QA کیفیت نهایی محصول رو تضمین می‌کنه و جلوی بروز خطا در محیط واقعی رو می‌گیره.

نوشتن Unit Testها برای فانکشن‌ها و کامپوننت‌ها
پیاده‌سازی Integration Testها برای ماژول‌ها
انجام تست End-to-End (E2E) روی سناریوهای کاربری
بررسی خودکار با ابزار CI/CD بعد از هر commit
تست دستی رابط کاربری روی مرورگرها و دستگاه‌های مختلف

📌 پیشنهاد:
از ابزارهایی مثل Jest ،Cypress یا Playwright استفاده کن تا فرآیند تست خودکار و قابل اعتماد بشه.

#چک_لیست #توسعه_وب

———————————
@frontcast | فرانت کست
👍72👏1
12👍5👏3
ثبت نام برای پیش‌فروش آموزش Next.js - حل مسئله

مشاهده دوره
4👍3👏2
Front Cast
ثبت نام برای پیش‌فروش آموزش Next.js - حل مسئله مشاهده دوره
ظرفیت کلاس رفع اشکال تکمیل شده.

تا آخر هفته می‌تونید با تخفیف ویژه برای دوره ثبت نام کنید.
7👏1
Front Cast
ثبت نام برای پیش‌فروش آموزش Next.js - حل مسئله مشاهده دوره
امروز آخرین فرصت ثبت‌نام با تخفیف بیشتر از ۵۰ درصد برای آموزش Next.js - حل مسئله هست.

این تخفیف دیگه تکرار نمی‌شه.
4
📂 کد رو از رو نخون: Next.js

export default function Page() {
return <div>{Date.now()}</div>;
}


👀 در نگاه اول:
فکر می‌کنی هر بار که صفحه رو ریفرش کنی، زمان جدید نمایش داده میشه.

⚡️ در واقعیت:
این کد در سمت سرور اجرا میشه، بنابراین ()Date.now در زمان رندر شدن سرور مقداردهی میشه.
در نتیجه، همه کاربران همون زمان ثبت شده در سرور رو می‌بینن، نه زمان واقعی سیستم خودشون رو.

💡 نکته:
در Next.js (به‌خصوص App Router)، حالت‌های مختلفی مثل SSR، SSG و CSR وجود داره.
در SSR و SSG مقادیر پویا مثل تاریخ باید با دقت مدیریت بشن تا داده‌ی کش شده یا زمان اشتباه نمایش داده نشه.

📌 پیشنهاد:
اگر می‌خوای تاریخ یا ساعت لحظه‌ای (زمان واقعی مرورگر کاربر) رو نشون بدی، اون بخش رو با استفاده از 'use client' به کلاینت کامپوننت تبدیل کن و از هوک‌هایی مثل useEffect برای به‌روزرسانی لحظه‌ای استفاده کن.

#کد_رو_از_رو_نخون #Nextjs

———————————
@frontcast | فرانت کست
👍64
مقایسه کوتاه: Relative units (em/rem) و Absolute units (px)

انتخاب واحد اندازه‌گیری در CSS روی ریسپانسیو بودن و تجربه کاربری تاثیر مستقیم داره.

☑️ Relative units (em/rem):
نسبت به اندازه فونت parent (em) یا root (rem) محاسبه می‌شن. برای طراحی‌های ریسپانسیو مناسب‌تر هستن.

☑️ Absolute units (px):
یک اندازه ثابت مشخص می‌کنن. ساده و دقیقن اما در دستگاه‌های مختلف انعطاف‌پذیری کمتری دارن.

🔰 جمع‌بندی:
واحدهای نسبی در طراحی مدرن و ریسپانسیو توصیه می‌شن، درحالی‌که px بیشتر برای المنت‌های دقیق یا موارد خاص کاربرد داره.

#مقایسه_مفاهیم #کدنویسی #توسعه_وب

———————————
@frontcast | فرانت کست
6👍5
بررسی تغییرات 16 Next.js

نسخه ۱۶ فریم‌ورک Next.js منتشر شد. توی این نسخه، React Compiler به مرحله پایدار رسیده، Turbopack برای محیط production آماده شده و DevTools جدید هم معرفی شده. همچنین بهبودهایی در prefetch cache، پردازش تصاویر و رابط Terminal ایجاد شده تا عملکرد پروژه‌ها سریع‌تر و شفاف‌تر باشه.

ادامه مطلب

———————————
@frontcast | فرانت کست
6👍2
📚 کوییز: تایپ اسکریپت

سؤال: در تایپ اسکریپت تایپ unknown با any چه تفاوتی داره؟
Anonymous Quiz
7%
هیچ تفاوتی ندارن
76%
unknown امن‌تره و نیاز به بررسی تایپ داره
14%
any امن‌تره
4%
فقط در Node.js استفاده میشه
👍7👏3
📋 چک‌لیست پروژه: دیپلوی روی لیارا

دیپلوی مرحله‌ای حساسه که تضمین می‌کنه پروژه‌ات به درستی در دسترس کاربر قرار بگیره. این چک‌لیست، مسیر دیپلوی روی لیارا رو ساده می‌کنه.

ساخت اکانت و ایجاد سرویس در لیارا
کانفیگ دیتابیس (MongoDB, MySQL و ...) در پنل لیارا
تنظیم متغیرهای محیطی
اتصال ریپازیتوری به لیارا و تنظیم CI/CD
تست نهایی بعد از دیپلوی (عملکرد APIها و صفحات فرانت‌اند)

📌 پیشنهاد:
قبل از دیپلوی، از فایل env. و dependencyهای پروژه یک بار روی لوکال تست کامل بگیر.

#چک_لیست #توسعه_وب

———————————
@frontcast | فرانت کست
4👍4
📂 کد رو از رو نخون: Node.js

console.log(this);


👀 در نگاه اول:
شاید فکر کنی مثل مرورگر، خروجی window باشه.

⚡️واقعیت:
اما در Node.js ماجرا فرق داره؛
اگه این کد رو بیرون از هر تابعی بنویسی، مقدارش {} (آبجکت خالی) نشون داده میشه.
ولی داخل تابع یا کلاس، this دیگه {} نیست، ممکنه undefined باشه یا به global اشاره کنه (بسته به نوع تابع و حالت strict).

💡 نکته:
تو مرورگر، this معمولاً به window اشاره می‌کنه،
اما تو Node.js به چیزی مثل global مربوطه و در ماژول‌ها مقدارش {} هست.

📌 پیشنهاد:
برای اینکه کاملاً درک کنی، این کد رو هم تو مرورگر اجرا کن و هم تو Node.js.
تفاوتش رو خودت ببینی، هیچ توضیحی مثل تجربه مستقیم نیست.

#کد_رو_از_رو_نخون #Nodejs

———————————
@frontcast | فرانت کست
👍43👏2
مقایسه کوتاه: Tailwind و Bootstrap

انتخاب فریم‌ورک استایل روی سرعت توسعه و ظاهر پروژه تاثیر مستقیم داره.

☑️ Tailwind:
یک فریم‌ورک utility-first که کلاس‌های کوچک و آماده برای استایل‌دهی ارائه می‌ده. سبک، قابل سفارشی‌سازی و مناسب طراحی‌های مدرن.

☑️ Bootstrap:
یک فریم‌ورک آماده با کامپوننت‌های از پیش طراحی‌شده. سریع برای شروع پروژه‌ها اما ظاهر پروژه‌ها ممکنه شبیه به هم بشه.

🔰 جمع‌بندی:
فریم‌ورک Tailwind برای طراحی‌های یونیک و سفارشی بهتره؛ Bootstrap برای پروژه‌هایی که سرعت شروع و کامپوننت آماده اهمیت داره مناسب‌تره.

#مقایسه_مفاهیم #کدنویسی #توسعه_وب

———————————
@frontcast | فرانت کست
8👏7👍4
نکات جاوااسکریپت: شش رفتار کم‌تر شناخته شده در جاوااسکریپت

جاوااسکریپت پر از جزئیات ظریفه که گاهی حتی برنامه‌نویس‌های باتجربه رو هم غافلگیر می‌کنه.
توی این مقاله، شش رفتار مهم و کم‌تر شناخته شده اونو با مثالدبررسی کردیم. از تفاوت Function Declaration و Expression تا تغییرناپذیری داده‌های Primitive رو مرور کردیم.
درک این مفاهیم، پایه‌ای برای کدنویسی دقیق‌تر و پیش‌بینی‌پذیرتر فراهم می‌کنه.

ادامه مطلب

———————————
@frontcast | فرانت کست
3👏3👍1
📚 کوییز: Node.js

سؤال: دستور ()require در Node.js چه کاری انجام می‌دهد؟
Anonymous Quiz
4%
ایجاد سرور
8%
نصب پکیج
80%
ایمپورت ماژول
8%
اجرای async function
👍14
📋 چک‌لیست پروژه: نگه‌داری و مانیتورینگ

نگه‌داری و مانیتورینگ منظم باعث می‌شه مشکلات سریع‌تر شناسایی بشن و پروژه پایدار بمونه.

پیاده‌سازی لاگ‌گیری مناسب در بک‌اند
مانیتورینگ منابع سرور (CPU، RAM، Disk)
به‌روزرسانی منظم وابستگی‌ها و پکیج‌ها
استفاده از ابزار مانیتورینگ (Sentry، New Relic، Grafana)
تهیه بکاپ دوره‌ای از دیتابیس و فایل‌ها

📌 پیشنهاد:
یک داشبورد مانیتورینگ داشته باش تا همیشه وضعیت سرور و سرویس‌ها رو در لحظه بررسی کنی.

#چک_لیست #توسعه_وب

———————————
@frontcast | فرانت کست
👍7👏63