0Pricing
JavaScript Academy · درس

أساسيات Big-O والمسارات الساخنة مقابل الباردة (مكاسب للمبتدئين)

استخدموا حدس Big-O وركّزوا على المسارات الساخنة. واستبدلوا عمليات البحث المتداخلة بـ Set/Map، وتجنبوا العمل المتكرر، وحافظوا على صغر الشيفرة ووضوحها

أساسيات Big-O والمسارات الساخنة مقابل الباردة (مكاسب للمبتدئين) درس مجاني في JavaScript Academy على CoddyKit. هذا هو الدرس 1 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في JavaScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة JavaScript Academy 3 دروس في المجموع.

الصورة العامة

الهدف: تحقيق مكاسب سريعة من دون نظرية معقدة.

  • حدس Big-O: تجنّب الحلقات المزدوجة
  • المسارات الساخنة والباردة: حسّن ما يُنفَّذ غالبًا
  • Set/Map لعمليات البحث السريعة
  • نفّذ العمل مرة واحدة وأعد استخدام النتائج
أساسيات Big-O والمسارات الساخنة مقابل الباردة (مكاسب للمبتدئين) — رسم توضيحي 1

الفحص المتداخل مكلف

يؤدي تداخل عمليات الفحص إلى مضاعفة العمل. فكل استدعاء لـ includes يفحص المصفوفة من جديد.

// Bad pattern: nested scan for membership (can be ~O(n^2))
const haystack = ["a","b","c","d","e"];
const needles = ["b","e","x"];
const foundSlow = [];

for (const n of needles) {
  // includes scans the array each time
  if (haystack.includes(n)) {
    foundSlow.push(n);
  }
}
console.log("slow found:", foundSlow);
أساسيات Big-O والمسارات الساخنة مقابل الباردة (مكاسب للمبتدئين) — رسم توضيحي 2

استخدام Set للتحقق من العضوية

أنشئ Set مرة واحدة؛ واستخدم has للتحقق السريع من العضوية. وبذلك تلغي الفحص الداخلي.

// Better: build a Set once, then O(1)-ish checks (~O(n) overall)
const fastSet = new Set(haystack);
const foundFast = [];
for (const n of needles) {
  if (fastSet.has(n)) {
    foundFast.push(n);
  }
}
console.log("fast found:", foundFast);
أساسيات Big-O والمسارات الساخنة مقابل الباردة (مكاسب للمبتدئين) — رسم توضيحي 3

استخدام Map للعدّ

يخزّن Map أعداد العناصر لقراءات لاحقة بزمن قريب من O(1)؛ فتجنّب إعادة فحص المصفوفات لإعادة العدّ.

// Build a frequency map once instead of scanning many times
const words = ["a","b","a","a","c","b"];
const freq = new Map();

for (const w of words) {
  const old = freq.get(w) || 0;
  freq.set(w, old + 1);
}

console.log("count a:", freq.get("a"));
console.log("count b:", freq.get("b"));
أساسيات Big-O والمسارات الساخنة مقابل الباردة (مكاسب للمبتدئين) — رسم توضيحي 4

نفّذها مرة واحدة (التخزين المؤقت)

إذا تكررت قيمة، فاحفظ النتيجة في ذاكرة مؤقتة. أبقِ الذاكرة المؤقتة صغيرة وواضحة للمبتدئين.

// Do work once and reuse (tiny cache)
function heavy(x) {
  // pretend heavy math
  return x * x + 1;
}

const cache = new Map();

function heavyCached(x) {
  if (cache.has(x)) return cache.get(x);
  const val = heavy(x);
  cache.set(x, val);
  return val;
}

console.log("first:", heavyCached(5));
console.log("second:", heavyCached(5)); // cached
أساسيات Big-O والمسارات الساخنة مقابل الباردة (مكاسب للمبتدئين) — رسم توضيحي 5

ركّز على المسارات الساخنة

المسار الساخن: يُنفَّذ مرات كثيرة (حسّنه هنا). المسار البارد: شيفرة نادرة التنفيذ (أبقها بسيطة).

  • أزل الحلقات الداخلية من الشيفرة الساخنة.
  • استخدم Set/Map في مهام التحقق من العضوية والعدّ الساخنة.
  • قِس لاحقًا؛ وابدأ بالوضوح.
أساسيات Big-O والمسارات الساخنة مقابل الباردة (مكاسب للمبتدئين) — رسم توضيحي 6

اختبار تحسين التحقق من العضوية

فحص سريع: تقليل عمليات الفحص المتداخلة.

أساسيات Big-O والمسارات الساخنة مقابل الباردة (مكاسب للمبتدئين) — رسم توضيحي 7

مراجعة

مراجعة: تجنّب عمليات الفحص المتداخلة، واستخدم Set/Map للبحث والعدّ، ونفّذ العمل مرة واحدة. ركّز على المسارات الساخنة، وأبقِ الشيفرة الباردة بسيطة.

أساسيات Big-O والمسارات الساخنة مقابل الباردة (مكاسب للمبتدئين) — رسم توضيحي 8

الأسئلة الشائعة

هل درس «أساسيات Big-O والمسارات الساخنة مقابل الباردة (مكاسب للمبتدئين)» مجاني؟

نعم — نص درس «أساسيات Big-O والمسارات الساخنة مقابل الباردة (مكاسب للمبتدئين)» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة JavaScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة JavaScript Academy 3 دروس في المجموع.

ماذا ستتعلم في «أساسيات Big-O والمسارات الساخنة مقابل الباردة (مكاسب للمبتدئين)»؟

استخدموا حدس Big-O وركّزوا على المسارات الساخنة. واستبدلوا عمليات البحث المتداخلة بـ Set/Map، وتجنبوا العمل المتكرر، وحافظوا على صغر الشيفرة ووضوحها تتمرن على JavaScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ JavaScript Academy؟

لا تُشترط خبرة سابقة. JavaScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 3.

كم من الوقت يستغرق درس «أساسيات Big-O والمسارات الساخنة مقابل الباردة (مكاسب للمبتدئين)»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس JavaScript Academy هذا؟

نعم. كل درس في JavaScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أساسيات Big-O والمسارات الساخنة مقابل الباردة (مكاسب للمبتدئين)
  2. تجنب تسرّبات الذاكرة — الإغلاقات والمؤقتات والمراجع
  3. مقدمة إلى تحديد الأداء (Node/DevTools) — عادات توقيت صغيرة
← العودة إلى JavaScript Academy