0Pricing
MCP Academy · درس

مشاركة الحالة عبر سياق التطبيق

مرّروا الكائنات المشتركة إلى كل معالج.

مشاركة الحالة عبر سياق التطبيق درس مجاني في MCP Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في MCP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة MCP Academy 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

State That Every Handler Needs

Your tools often need the same objects, like one database pool. You want to create them once and share them everywhere.

The Yielded Value Is the State

Whatever the lifespan yields becomes your shared application state, available to every tool, resource, and prompt.

async def lifespan(server):
    yield {"db": db, "cache": cache}

Prefer a Typed Container

Wrapping state in a dataclass gives you clear field names and editor autocomplete instead of guessing dict keys.

@dataclass
class AppContext:
    db: Database

Build State in Startup

Inside the lifespan, construct each shared object and yield the container so it lives for the whole server run.

async def lifespan(server):
    db = await Database.connect()
    yield AppContext(db=db)

One Source of Truth

Shared state means one source of truth: every handler sees the same connection, so you avoid duplicate, leaking pools.

Don't Use Globals

Skip module-level globals for connections. Passing state through context keeps tools testable and avoids hidden coupling.

State Is Per Server, Not Per Call

App context is created once at boot, not rebuilt per request, so its objects persist across many tool calls.

Reach It Through the Request

Handlers do not import the state directly. They receive a context object at call time that exposes the yielded value.

Mix Connections and Config

Your shared container can hold more than clients: stash config like API base URLs or feature flags loaded at startup.

@dataclass
class AppContext:
    db: Database
    base_url: str

Keep It Immutable-ish

Treat shared state as mostly read-only. Mutating it from many concurrent calls invites subtle, hard-to-trace bugs.

Lifespan Owns the Lifecycle

Because the lifespan creates the state, it also owns tearing it down, so creation and cleanup stay in one tidy place.

Quick Check

What becomes the shared application state your handlers can use?

Recap: Sharing State

You build shared objects once in the lifespan, yield a typed container, and let every handler read it. Next: how to reach it. 🧩

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

هل درس «مشاركة الحالة عبر سياق التطبيق» مجاني؟

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

ماذا ستتعلم في «مشاركة الحالة عبر سياق التطبيق»؟

مرّروا الكائنات المشتركة إلى كل معالج. تتمرن على MCP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

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

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

كم من الوقت يستغرق درس «مشاركة الحالة عبر سياق التطبيق»؟

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

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

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

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

  1. خطاف بدء التشغيل لدورة الحياة
  2. مشاركة الحالة عبر سياق التطبيق
  3. الوصول إلى كائن السياق
  4. الإيقاف النظيف وتحرير الموارد
← العودة إلى MCP Academy