منابع آموزشی و پژوهشی، برای دانشگاه و مدرسه
پشتیبانیانتشار محتوا
مسیر یادگیری

جاوااسکریپت ۲؛ دورهٔ متوسط و پروژه‌های کاربردی

دورهٔ دوم و رایگان جاوااسکریپت، تألیف تحریریه درس‌آوند؛ ادامهٔ دورهٔ «جاوااسکریپت از صفر تا پروژه». ۲۴ درس سطح متوسط با مثال عملی، تمرین و پاسخ و سه پروژهٔ مدیریت هزینه، فروشگاه و API محلی تیکت. پیش‌نیاز: تسلط بر مبانی دورهٔ اول و HTML مقدماتی. زمان هر درس برآورد مطالعه و تمرین است؛ این نسخه ویدیو ندارد.

۲۴ درس۱٬۱۰۰ دقیقه۰ درس کامل‌شده
پرسش دربارهٔ این دوره
API تیکت، آزمون و کیفیت · درس ۲۴

۲۴. تحویل دورهٔ متوسط؛ سه پروژه و یک ارزیابی مستقل

دورهٔ رایگانثبت‌نام و پیشرفت یادگیری در حساب شما نگهداری می‌شود.ورود / ساخت حساب

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

یک اجرای قابل تکرار تحویل بدهید

بسته را در پوشه‌ای تازه باز کنید و از ریشه، دستورات زیر را اجرا کنید. Node.js نسخهٔ ۲۴ یا بالاتر لازم است. پروژه به نصب وابستگی شخص ثالث نیاز ندارد. npm test آزمون‌های پاسخ و پروژه را اجرا می‌کند؛ npm run practice مسیر تمرین ناقص را باز می‌کند و تا تکمیل TODOها انتظار شکست دارد. این دو خروجی را با هم اشتباه نگیرید.

bash
node --version
npm test
npm start

پس از شروع، نشانی کامل چاپ‌شده در ترمینال، معمولاً http://127.0.0.1:4173 را باز کنید و هر سه پروژه را از صفحهٔ آزمایشگاه ببینید. استفاده از localhost ممکن است با بررسی میزبان دقیق این سرور سازگار نباشد؛ همان نشانی چاپ‌شده را به کار ببرید. برای توقف Ctrl+C بزنید. پوشهٔ .data دادهٔ تیکت محلی را نگه می‌دارد؛ در تحویل عمومی از دادهٔ ساختگی استفاده کنید و پیام شخصی را وارد بسته نکنید.

پروژهٔ اول؛ دفتر هزینه با بازیابی قابل اعتماد

حداقل تحویل شامل ثبت، ویرایش، حذف، فیلتر و محاسبهٔ مجموع است. مبلغ باید قرارداد رقم فارسی و عربی و سقف معتبر را رعایت کند. خروجی پشتیبان JSON را بگیرید و در یک محیط آزمایشی تازه وارد کنید؛ فقط دانلود فایل بدون آزمودن بازگردانی، شاهد پشتیبان قابل استفاده نیست. فایل خراب یا شناسهٔ تکراری باید رد شود و دادهٔ قبلی باقی بماند. خطای ذخیرهٔ مرورگر هم نباید پشت پیام موفقیت پنهان شود.

گزارش دسته‌ها در نسخهٔ همراه با تابع categorySummary و رابط آماده وجود دارد. چالش توسعهٔ مستقل این است که فیلتر بازهٔ تاریخ به گزارش اضافه کنید، بدون اینکه دادهٔ اصلی تغییر کند. نمونهٔ زیر یک الگوریتم ساده برای دادهٔ معتبر است؛ خروجی آن را با categorySummary مقایسه کنید و سپس نسخهٔ دارای بازهٔ تاریخ را جدا آزمون کنید.

javascript
function totalsByCategory(items) {
  const sums = new Map();
  for (const item of items) {
    const next = (sums.get(item.category) ?? 0) + item.amount;
    if (!Number.isSafeInteger(next)) throw new Error('Unsafe total');
    sums.set(item.category, next);
  }
  return [...sums].map(([category, amount]) => ({ category, amount }));
}
console.log(totalsByCategory([
  { category: 'آموزش', amount: 20000 },
  { category: 'آموزش', amount: 30000 }
])); // [{ category: 'آموزش', amount: 50000 }]

مثال بالا را با categorySummary آماده در projects/expenses/model.mjs مقایسه کنید؛ تابع پروژه علاوه بر مجموع، تعداد و میانگین گرد‌شدهٔ هر دسته را هم می‌دهد. توسعهٔ بازهٔ تاریخ تمرین شماست: تاریخ ابتدا و انتها باید معتبر باشند، مرزهای بازه را روشن تعریف کنید و ورود بازهٔ وارونه را رد کنید. معیار تحویل، جمع صحیح برای بازهٔ شامل دو مرز، رفتار بدون نتیجه و نداشتن تغییر روی ورودی است. دادهٔ نمایشی فارسی باید از عدد محاسباتی جدا بماند؛ خطا را با صفر یا موفقیت ساختگی جایگزین نکنید.

پروژهٔ دوم؛ فروشگاه آموزشی با قواعد سبد

کاتالوگ، فیلتر، مرتب‌سازی، موجودی، تعداد و بازیابی سبد را تحویل دهید. تغییر قیمت در DOM نباید مدل محاسبه را عوض کند. دکمهٔ بررسی نهایی صرفاً آموزشی است و پرداخت ندارد. چالش مستقل، افزودن دکمهٔ حذف کامل یک ردیف از سبد همراه بازگرداندن فوکوس مناسب است. قبل از نوشتن handler، قانون مدل را با setQuantity و quantity:0 بررسی کنید؛ سپس آزمون و در پایان رابط را اضافه کنید.

برای ارزیابی، موجودی یک کالا را در کپی کاتالوگ کاهش دهید و سبد قدیمی را باز کنید. پروژه باید ناسازگاری را آشکار کند؛ اعتماد به تعداد ذخیره‌شدهٔ مرورگر قابل قبول نیست. در گزارش توضیح دهید کدام بخش در یک فروشگاه واقعی باید روی سرور اجرا شود. ادعای «آمادهٔ فروش اینترنتی» برای این نمونهٔ محلی درست نیست.

پروژهٔ سوم؛ تیکت با مالکیت و تعارض

با آلیس بسازید، با باب دسترسی مستقیم را امتحان کنید و با کارشناس آزمایشی پاسخ بدهید. سپس دو تب با نسخهٔ یکسان را به تعارض برسانید. متن تب بازنده باید باقی بماند و بعد از بازخوانی، کاربر بتواند آن را بازبینی کند. بستن و بازگشایی نیز باید گردش وضعیت روشن داشته باشد. چالش پیشنهادی، طراحی و آزمون «ذخیرهٔ پیش‌نویس محلی» است؛ آن را به هویت و شناسهٔ تیکت وابسته کنید تا متن یک هویت در فرم هویت دیگر ظاهر نشود.

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

بازبینی و معیار پایان

برای ارزیابی خود، ۳۰ امتیاز به صحت مدل و اعتبار داده، ۲۵ به سناریوهای خطا و حفظ اطلاعات، ۲۰ به آزمون‌های معنادار، ۱۵ به رابط و صفحه‌کلید و ۱۰ به راهنمای اجرای قابل تکرار بدهید. این معیار پیشنهادی است و گواهی رسمی یا نمرهٔ دانشگاهی تولید نمی‌کند. هر امتیاز باید شاهد مشخص داشته باشد؛ مثلاً نام آزمون یا شرح مراحل بازتولید.

تحویل نهایی شامل کد، README اجرا، فهرست محدودیت‌ها، نمونهٔ دادهٔ ساختگی و نتیجهٔ بررسی دستی است. یک نفر دیگر باید بتواند بدون راهنمای شفاهی برنامه را اجرا کند. اگر پاسخ تمرین را دیده‌اید، توسعهٔ مستقلی مانند گزارش دسته‌ها در بازهٔ تاریخ را بدون کپی پاسخ انجام دهید. این تفاوت میان شناخت کد آماده و توان ساختن است. قدم بعدی می‌تواند TypeScript، آزمون مرورگری و معماری محصول باشد؛ پیش از آن سه پروژهٔ همین دوره را با معیارهای بالا کامل کنید.

منابع رسمی برای ادامهٔ مسیر

https://nodejs.org/docs/latest-v24.x/api/test.html
https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Testing
https://www.typescriptlang.org/docs/handbook/intro.html

تألیف و مثال‌های اختصاصی: تحریریه درس‌آوند.

منبع تکمیلی و فایل این درسدریافت فایل بر اساس مجوز حساب بررسی می‌شود.
یکجا انتخاب کن، راحت‌تر دریافت کن

انتخاب‌های من ۰ منبع

مجموعهٔ مطالعه‌ات را بساز.

کنار مقاله‌ها «انتخاب» را بزنید تا چند فایل را با هم دریافت کنید.

انتخاب مقاله‌های رایگان