هل تبحث عن دليل يمكنك من خلاله تعلم كيفية إنشاء تطبيق blockchain؟ إليك دليل يمكن أن يساعدك في إنشاء تطبيق blockchain من البداية.
في هذه المقالة ، سنبني تطبيق blockchain الخاص بنا. في الآونة الأخيرة ، قمنا بتغطية كيفية بناء blockchain. لقد كان دليلاً كاملاً لبناء blockchain في لغة برمجة Python. التركيز الرئيسي للدرس التعليمي هو التعرف على تقنية blockchain وطريقة عملها الداخلية.
هذا البرنامج التعليمي ، مع ذلك ، يتعلق بكيفية إنشاء تطبيق باستخدام blockchain. سيتمكن التطبيق اللامركزي (dApp) من الاستفادة من خصائص blockchain.
سنقوم ببناء تطبيق blockchain بسيط باستخدام Ethereum. Ethereum هي تقنية blockchain من الجيل الثاني توفر ميزات متقدمة مثل العقود الذكية ، وإثبات الحصة ، والأهم من ذلك ، القدرة على إنشاء تطبيقات لامركزية (dApps).
لذلك ، لنبدأ مع البرنامج التعليمي “كيفية إنشاء تطبيق blockchain”. يستهدف هذا البرنامج التعليمي أيضًا أولئك الذين يتطلعون إلى إنشاء تطبيق blockchain بسيط. لإنشاء تطبيق blockchain بسيط ، سنستخدم شبكة Ethereum.
ولكن ، قبل أن نبدأ ، دعنا نصلح الأساسيات.
تسجيل الآن: دورة أساسيات بلوك تشين للمؤسسات
ما هو dApp?
الخطوة الأولى التي سنتخذها في كيفية إنشاء برنامج تعليمي لتطبيق blockchain هي أولاً تعلم مفهوم التطبيق اللامركزي (dApp).
dApp لتقف على التطبيق اللامركزي. إنه نوع مختلف من التطبيقات يوفر خصائص رئيسية ، بما في ذلك القدرة على العمل بشكل مستقل. يقوم التطبيق أيضًا بتخزين البيانات بشكل مشفر بحيث لا يمكن لأي كيان غير مصرح له الوصول إليها دون إذن مناسب.
كل هذه الخصائص تجعل التطبيقات اللامركزية مفيدة للغاية في بيئة المؤسسة الحالية. يمكن للتطبيقات أيضًا استخدام الرموز المميزة التي يمكن استخدامها للاستفادة من الميزات التي يوفرها التطبيق. علاوة على ذلك ، يمكن للتطبيق أيضًا توزيع الرموز المميزة لتحفيز العقد التي تشارك في جعل dApp يعمل.
اختيار النظام الأساسي – لماذا نختار منصة Ethereum
في الوقت الحالي ، هناك العديد من المنصات التي يمكنك اختيارها لبناء dApp الخاص بك. وهي تشمل منصات blockchain الشهيرة مثل Ethereum و Hyperledger Fabric و Cardano. من بين كل ذلك ، يبدو أن Ethereum هو الخيار الأفضل بسبب المجتمع النشط والأدوات والبرامج التعليمية المتاحة عبر الإنترنت.
سبب آخر لاختيارنا Ethereum هو أنه يستخدم Solidity. صُممت Solidity بشكل صريح لنشر وإنشاء dApps وعقود ذكية. إنه سهل التعلم ويمنحك المرونة في التجربة.
دليل عملي لبناء تطبيق بلوك تشين اللامركزي
قبل أن نتعمق في التعليمات البرمجية ، أود أن أسرد الخطوات التي توضح عملية إنشاء تطبيق blockchain. دعنا نراجعها أدناه.
ابحث عن فكرة
الخطوة الأولى هي إيجاد فكرة للعمل عليها. اللامركزية هي مفهوم جديد رائع يمكن أن يكون له العديد من حالات الاستخدام. بصفتك متعلمًا أو مهندسًا ، يجب أن تأتي بفكرة مفيدة يمكن أن تفيدك أنت أو شركتك. أيضًا ، لا تقلق إذا كنت لا تستطيع أن تأتي بفكرة تغير المشهد. لا بأس في إنشاء تطبيقات dApps بسيطة فقط من أجل التعلم والممارسة.
يمكنك أيضًا البحث عن المشكلات التي تواجهها مع blockchain وربما محاولة حلها بأفضل جهد ممكن. النقطة المهمة هنا هي عرض المشكلة من نقطة الألم لديك ثم محاولة حلها.
إذا كنت تحاول إنشاء تطبيق dApp لعملك أو وفقًا لمتطلبات عملك ، فأنت بحاجة إلى إجراء تحليل مناسب للتكلفة / الفائدة. تحتاج أيضًا إلى استكشاف المخاطر المرتبطة بالمشروع ومعرفة ما إذا كان فريق عملك يمكنه إدارة التطبيق بالعناية الواجبة.
تحت أي ظرف من الظروف ، يجب ألا تتخذ أي قرار متسرع تندم عليه لاحقًا. هذا لأن تطوير blockchain مكلف ، خاصة عندما يتعلق الأمر بإيجاد المواهب لتطويرها وإدارتها. علاوة على ذلك ، هناك ندرة في المطورين الذين يعملون على blockchain. باختصار ، يجب أن تتخذ الخطوات المناسبة عندما يتعلق الأمر بتطوير تطبيق blockchain أو blockchain.
إليك دليل لتطوير dApps يمكنك من فهم الآليات الكامنة وراء إنشاء تطبيق لامركزي جديد.
اختر طريقة إجماع
يتطلب أي تطبيق لامركزي خوارزمية إجماع مناسبة للعمل. إنه يضمن التحقق من صحة المعاملات ، ولا يمكن حدوث أي عمليات احتيال. بصفتك مطورًا أو متعلمًا ، فأنت بحاجة إلى الاختيار من بين أي من طرق الإجماع المتاحة ، بما في ذلك إثبات الحصة ، وإثبات الحصة المفوض ، والتسامح البيزنطي للأخطاء ، وما إلى ذلك! يجب أن يعتمد الاختيار على معرفتك ومتطلبات التطبيق.
اختيار منصة
هنا ، تحتاج إلى اختيار منصة من اختيارك. من الواضح أننا غطينا بالفعل النقطة أعلاه. لديك بشكل أساسي ثلاث منصات للاختيار من بينها ، بما في ذلك Ethereum و Hyperledger Fabric و Cardano.
هناك العديد من أطر عمل blockchain للمؤسسات التي يمكنك استخدامها لهذا الغرض ، لكننا سنذهب مع Ethereum.
وحدة تحكم المشرف وواجهة المستخدم
يجب أن تتمتع التطبيقات بتجربة مستخدم مناسبة. لهذا السبب يجب عليك إنشاء تطبيق blockchain بواجهة مستخدم جيدة. يجب أن يحتوي التطبيق أيضًا على وحدة تحكم المشرف حتى تتمكن من إدارتها دون مشاكل.
فهم مبادئ Blockchain
من الشائع للمطورين بدء برنامج تعليمي لتطوير تطبيق blockchain دون فهم المفاهيم والمبادئ الأساسية. لهذا السبب أوصي بأساسيات blockchain تمامًا قبل البدء في البرامج التعليمية لتطوير التطبيق. قد ترغب أيضًا في القراءة عن نظامها الإيكولوجي ، بما في ذلك أدوات blockchain والأنظمة الأساسية والعملات المشفرة.
ممارسة وتطوير
مارس مهاراتك بقدر ما تستطيع. سيمنحك هذا المهارات اللازمة لتطوير تطبيقات أكثر تعقيدًا في المستقبل.
كيفية بناء تطبيق Blockchain؟ النهج السهل
نعم لقد قرأتها بشكل صحيح. في هذا القسم ، سيكون تركيزنا هو إنشاء تطبيق blockchain مباشر في خمس خطوات بسيطة فقط. إذا لم تكن قد أنشأت تطبيق blockchain مطلقًا ، فستساعدك هذه الخطوات الخمس على فهم العملية بشكل أفضل.
الخطوات الخمس هي على النحو التالي.
- تثبيت التبعيات ومستودعات النسخ.
- تشغيل Ganache CLI
- تجميع العقود
- نشر العقد
- تفاعل العقد
و هذا كل شيء. يمكنك العثور على خطوات أكثر تفصيلاً في المنشور نفسه. إنه تطبيق تصويت بسيط على blockchain.
كيفية بناء تطبيق Blockchain؟ النهج الصعب
على ما يرام! فهمتني! أنت لا تريد الطريقة السهلة ، ولكنك تريد تعلم blockchain بالطريقة الصعبة. لا تقلق ، لأننا في هذا القسم سننشئ تطبيق قائمة المهام باستخدام عقود Ethereum الذكية.
أعمال تطبيق Blockchain
قبل أن نتعمق في إنشاء تطبيق blockchain ، دعنا نحاول فهم كيفية عمل تطبيق blockchain في المقام الأول.
لفهم ذلك ، دعنا نلقي نظرة على كيفية عمل تطبيق بسيط. يتم عرض أي تطبيق يعمل على الإنترنت على كمبيوتر المستخدم باستخدام متصفح أو تطبيق مخصص على windows. على أي حال ، فإنه يطلب من الخادم للصفحات أو المعلومات ، والتي يتم عرضها بعد ذلك على جهاز كمبيوتر المستخدم.
في حالة تطبيق الويب ، يكون كل شيء مركزيًا. هذا يقدم بعض الفوائد ؛ ومع ذلك ، فإنه يترك الكثير مما هو مرغوب فيه عندما يتعلق الأمر بالأمن. تعمل تطبيقات Blockchain بشكل مختلف تمامًا. كل شيء لا مركزي ، بما في ذلك الكود والبيانات المخزنة في التطبيق.
العقود الذكية
المفتاح هنا هو العقد الذكي. العقد الذكي يسهل التطبيق نفسه. يحتوي على جميع الأكواد التي تجعل التطبيق يعمل. كما أنه يقوم بأتمتة العملية ويضمن أنها تعمل على النحو المنشود. في برنامجنا التعليمي ، سنستخدم العقود الذكية لكتابة الوظائف المختلفة لقائمة المهام.
تستخدم العقود الذكية لغة برمجة Solidity. إنه مشابه لـ JavaScript. بمجرد كتابة العقد الذكي ، يصبح كوده غير قابل للتغيير وغير قابل للتغيير. أنت حر في تغيير الكود أثناء النشر. ومع ذلك ، بمجرد نشر التطبيق ، لن تتمكن من تغيير الرمز. يتم ذلك لتحقيق الموثوقية والأمان لتطبيقات blockchain. يعني هذا النهج أيضًا أنك بحاجة إلى توخي مزيد من الحذر وإجراء جميع الاختبارات قبل نشر العقد الذكي. أيضًا ، رموز العقود الذكية عامة بطبيعتها.
هل تريد أن تتعلم كيفية بناء blockchain باستخدام Python؟ إليك برنامج تعليمي لبناء blockchain باستخدام Python يمكنك اتباعه.
صنع تطبيق Blockchain To-Do List الخاص بنا
للتأكد من فهمك للمفهوم ، عليك أولاً معرفة كيفية عمل تطبيق Todo blockchain. سنستخدم Ethereum لإنشاء التطبيق. سيستخدم تطبيقنا عقدة Ethereum واحدة ولديه أيضًا تطبيق من جانب العميل. سنستخدم Solidity لكتابة العقد الذكي ثم نشره.
بصفتك مطورًا ، فأنت بحاجة إلى استخدام محفظة Ethereum – التي يسهل صنعها.
الاستعداد – خلق البيئة
لإنشاء بيئة محلية ، سنحتاج إلى أدوات وحزم متعددة. فلنستعرضها واحدة تلو الأخرى.
غاناش
غاناش هي أداة تطوير Ethereum. يتيح لك إدارة التطبيقات والعقود الذكية والاختبارات ونشرها وتطويرها. سنقوم بتشغيل إصدار Windows للبرنامج التعليمي. إذا كان لديك نظام تشغيل مختلف ، فيمكنك أيضًا تنزيل إصدار Mac أو Linux. بمجرد التثبيت ، يجب أن تكون قادرًا على استخدامه من خلال أداة سطر الأوامر.
Node.js
Node.js هي أداتنا التالية التي يجب تثبيتها. لتشغيل blockchain الخاص على جهازك ، تحتاج إلى تثبيت مدير حزمة العقدة.
بمجرد التثبيت ، افتح الجهاز الخاص بك واكتب الأمر أدناه. إذا تم تشغيله ، فأنت على ما يرام.
عقدة $ -v
محفظة MetaMask Ethereum
نظرًا لأننا سنعمل على Ethereum blockchain ، فنحن بحاجة إلى محفظة يمكن أن تعمل من المتصفح. ميتاماسك هي محفظة متصفح ويب تتيح لك التفاعل مع Ethereum blockchain.
إطار الكمأة
آخر برنامج سنقوم بتثبيته هو إطار الكمأة. يوفر مجموعة واسعة من الأدوات التي تتيح لك العمل بفعالية على dApp الخاص بك. يمكنك استخدام لغة برمجة Solidity لتطوير عقد Ethereum ذكي.
تتضمن بعض ميزات Truffle Framework الرئيسية ما يلي
- إدارة العقود الذكية بشكل سليم
- إدارة الشبكات
- الاختبار الآلي
- وحدة التحكم في التطوير
- عداء السيناريو
- الانتشار والهجرات
- تطوير جانب العميل.
للتثبيت ، تحتاج إلى استخدام ملف أمر npm. ما عليك سوى تشغيل الأمر التالي في سطر الأوامر.
$ npm install -g [البريد الإلكتروني محمي]
سيستغرق التثبيت بعض الوقت حتى يكتمل. لاحظ أيضًا أنك تحتاج إلى تثبيت الإصدار الدقيق لمتابعة البرنامج التعليمي.
هل تريد أن تصبح محترفًا محترفًا في blockchain؟ قم بالتسجيل الآن في الدورة التدريبية الاحترافية المعتمدة على blockchain للمؤسسات!
إنشاء المشروع
رائع! لدينا الآن بيئة التطوير لدينا جاهزة للاستخدام. الآن ، كل ما علينا القيام به هو إنشاء مشروعنا. للقيام بذلك ، نحتاج إلى إنشاء دليل المشروع. دعونا نفعل ذلك أدناه.
$ mkdir dapp-todo
$ cd dapp-todo
بمجرد أن تكون في المجلد ، فأنت بحاجة إلى بدء مشروع الكمأة عن طريق تشغيل الأمر أدناه.
بداية الكمأة $
بمجرد الانتهاء ، ستظهر لك رسالة مثل أعلاه. هذا يعني أنه تم إنشاء المجلد والملفات بنجاح. الآن ، يمكنك فتح المجلد في محرر النصوص المفضل لديك. ولكن قبل القيام بذلك ، تحتاج إلى إنشاء ملف package.json ملف. سيساعدك هذا في تثبيت التبعيات المطلوبة للمشروع.
يمكنك إنشاء الملف يدويًا ثم حفظ المحتويات الموضحة أدناه.
{
“الاسم”: “dapp-todo”,
“الإصدار”: “1.0.0”,
“الوصف”: “قائمة المهام المدعومة من Ethereum”,
“main”: “truffle-config.js”,
“الدلائل”: {
“اختبار”: “اختبار”
},
“نصوص”: {
“dev”: “lite-server”,
“اختبار”: “صدى \” خطأ: لم يتم تحديد اختبار \ ” && sexit 1 ″
},
“مؤلف”: “[البريد الإلكتروني محمي]“,
“ترخيص”: “ISC”,
“devDependencies”: {
“التمهيد”: “4.1.3”,
“شاي”: “^ 4.1.2”,
“chai-as-promised”: “^ 7.1.1”,
“chai-bignumber”: “^ 2.0.2”,
“lite-server”: “^ 2.3.0”,
“nodemon”: “^ 1.17.3”,
“الكمأة”: “5.0.2”,
“عقد الكمأة”: “3.0.6”
}
}
بمجرد الانتهاء ، قم الآن بتشغيل الأمر التالي لتثبيت التبعيات.
تثبيت $ npm
فهم هيكل الدليل
سيبدو هيكل الدليل كما يلي.
دعونا نفهم كل مجلد واحدًا تلو الآخر.
- انكماش: الدليل يحتوي على جميع العقود الذكية. يعالج عقد migrations.sol عمليات الترحيل إلى blockchain.
- الهجرات: يحتوي دليل الترحيل على بيانات الترحيل. ومن هنا تجري الهجرات.
- node_modules: يحتوي على جميع وحدات / تبعيات العقدة.
- امتحان: يحتوي هذا الدليل على ملفات الاختبار.
- الكمأة config.js: يحتوي هذا الملف على تكوين مشروع الكمأة.
إنشاء العقد الذكي
لقد حان الوقت الآن للبدء في إنشاء عقد ذكي. سيتم تخزين عقودنا الذكية في مجلد العقود. دعونا ننشئ ملف عقد ذكي باسم todo.sol
بمجرد الانتهاء من ذلك ، تحتاج الآن إلى كتابة الكود على النحو التالي.
صلابة براغما ^ 0.5.0 ؛
عقد Todo {
// كود هنا
}
يحدد السطر الأول من الكود إصدار Solidity الذي نستخدمه لكتابة العقد الذكي. بعد ذلك ، نحتاج إلى استخدام الكلمة الأساسية للعقد وإنشاء عقد Todo. سيحتوي هذا على رمز العقد الذكي.
الآن ، دعنا نضيف متغيرًا لمعرفة ما إذا كان كل شيء يعمل على النحو المنشود.
صلابة براغما ^ 0.5.0 ؛
عقد Todo {
مهام uint = 0 ؛
}
هنا ، نحدد متغير المهام الذي سيحسب عدد المهام التي لدينا في تطبيق Todo الخاص بنا.
الاتصال بـ Ganache
مع إعداد عقدنا الذكي بشكل صحيح في Truffle ، نحتاج الآن إلى الاتصال بـ blockchain الخاص بـ Ganache الذي أنشأناه. للقيام بذلك ، تحتاج بعض ملفات التكوين إلى التحديث. نحتاج أيضًا إلى إنشاء برنامج نصي للترحيل وتشغيله حتى نتمكن من الاتصال بشبكة blockchain الشخصية.
للبدء ، نحتاج إلى تحديث ملف truffle-config.json. يجب أن يكون ضمن دليل المشروع الأساسي. بمجرد فتحه ، انسخ الكود التالي والصقه.
module.exports = {
الشبكات: {
تطوير: {
المضيف: “127.0.0.1”,
المنفذ: 7545,
network_id: “*” // تطابق معرف الشبكة
}
},
solc: {
المحسن: {
ممكّن: صحيح,
يعمل: 200
}
}
}
مع إنشاء ملف truffle-config.js ، حان الوقت الآن لإنشاء البرنامج النصي للترحيل بحيث يمكن ترحيل العقد الذكي الذي ننشئه إلى شبكة blockchain الشخصية.
سنقدم الاسم كـ 2_deploy_contracts.js
تعتبر عمليات الترحيل مهمة جدًا لتطبيق Todo الخاص بنا. نظرًا لأن blockchain هو نوع من قواعد البيانات ، فنحن بحاجة إلى تغييره من حالة إلى أخرى. هذا هو المكان الذي تساعد فيه الهجرات.
لربط ملفات الترحيل ، نحتاج إلى تحديث إضافة الكود التالي إلى ملف الترحيل الذي تم إنشاؤه حديثًا.
var Todo = artifacts.require (“./ Todo.sol”) ؛
module.exports = function (الناشر) {
Deployer.deploy (Todo)
}
ينشئ السطر الأول من التعليمات البرمجية ببساطة متغيرًا يشير إلى عقدنا الذكي. بمجرد الانتهاء ، نقوم بنشره.
بمجرد الانتهاء من ذلك ، فلنقم بتشغيل أمر الترحيل.
ترافل $ تهاجر
يمكنك أيضًا تشغيل وحدة التحكم باستخدام الأمر أدناه.
وحدة الكمأة $
تطوير تطبيق Todo List الخاص بنا
الآن وقد نجحنا في تشغيل أول عقد ذكي لشركة Ethereum ، فقد حان الوقت الآن لإضافة ميزات إلى dApp الخاص بنا. لدينا dApp بسيط. سوف يسرد المهام في قائمة Todo الخاصة بنا. نحتاج إلى استخدام العقد الذكي لتحقيق ذلك.
دعونا نفعل ذلك أدناه.
صلابة براغما ^ 0.5.0 ؛
عقد Todo {
المهام العامة uint = 0 ؛
مهمة هيكلية {
معرف uint
محتوى السلسلة
اكتمل منطقي ؛
}
}
استخدمنا هنا كلمة أساسية هيكلية لإنشاء مهمة هيكلية جديدة. نستخدمها لتحديد هيكل مهمتنا ، والتي تحتوي على المعرف والمحتوى والقيمة المنطقية المكتملة.
بعد ذلك ، نحتاج الآن إلى تعيين بنية المهام الخاصة بنا وجعلها عامة بحيث يمكن الوصول إليها بواسطة blockchain. للقيام بذلك ، نحتاج إلى إضافة السطر التالي من التعليمات البرمجية.
سيبدو رمز العقد الذكي الآن كما يلي.
صلابة براغما ^ 0.5.0 ؛
عقد Todo {
المهام العامة uint = 0 ؛
مهمة هيكلية {
معرف uint
محتوى السلسلة
اكتمل منطقي ؛
}
رسم الخرائط (uint => المهمة) المهام العامة ؛
}
أخيرًا ، نحتاج الآن إلى إنشاء وظيفة تتعامل مع المهام.
function createTask (string memory _content) public {
TaskCount ++ ؛
مهام [taskCount] = مهمة (عدد المهام ، _content ، خطأ)
}
الوظيفة تشرح نفسها بنفسها في معظم الأحيان. أنشأنا الوظيفة بحيث يمكنها حساب عدد المهام المدرجة في Todo dApp.
أخيرًا ، نحتاج إلى إنشاء مُنشئ لتهيئة فئة Todo.
منشئ () عام {
createTask (“هذه هي مهمتنا الأولى”)
}
يجب أن يبدو ملف todo.sol الخاص بنا الآن على النحو التالي.
صلابة براغما ^ 0.5.0 ؛
عقد Todo {
المهام العامة uint = 0 ؛
مهمة هيكلية {
معرف uint
محتوى السلسلة
اكتمل منطقي ؛
}
منشئ () عام {
createTask (“هذه هي مهمتنا الأولى”)
}
رسم الخرائط (uint => المهمة) المهام العامة ؛
function createTask (string memory _content) public {
TaskCount ++ ؛
مهام [taskCount] = مهمة (عدد المهام ، _content ، خطأ)
}
}
إنشاء المهام
يمكننا أيضًا إنشاء مهام في Todo dApp. للقيام بذلك ، نحتاج إلى إنشاء مشغل عند إنشاء مهمة جديدة. نهجنا هو إنشاء حدث جديد TaskCreated ثم إضافته إلى وظيفة createTask () الموجودة لدينا.
حدث TaskCreated (
معرف uint
محتوى السلسلة,
اكتمل منطقي
) ؛
الآن ، أضف السطر التالي إلى وظيفة createTask ().
انبعث TaskCreated (taskCount، _content، false) ؛
استكمال المهام
يمكن أيضًا إضافة المهام المكتملة باستخدام الحدث. تحتاج إلى إضافة الحدث التالي إلى عقد Todo.
حدث المهمة اكتملت (
معرف uint,
اكتمل منطقي
) ؛
لجعلها تعمل ، تحتاج أيضًا إلى إضافة وظيفة جديدة.
function toggleCompleted (uint _id) عام {
ذاكرة المهام _task = المهام [_id] ؛
_task.completed =! _task.completed ؛
المهام [_id] = _task؛
انبعث TaskCompleted (_id ، _task.completed)
}
تهاني! لقد قمت بإنشاء أول تطبيق dApp على قائمة Todo الخاصة بك على Ethereum blockchain.
ملاحظة ختامية
يقودنا هذا أيضًا إلى نهاية كيفية إنشاء برنامج تعليمي لتطبيق blockchain. هذه هي الطريقة التي تبني بها تطبيق blockchain من البداية.
من هناك ، تحتاج إلى اختبار العقد بشكل صحيح قبل ترحيله أخيرًا إلى blockchain. يمكنك أيضًا إنشاء الواجهة الأمامية للتطبيق واختبارها. إذا لم تكن مهتمًا بالقيام بذلك ، فيمكنك تشغيل وحدة التحكم والوصول إلى المتغيرات والوظيفة لاختبار الأشياء!
ولكن إذا كنت لا تزال غير مدرك للآثار المترتبة على blockchain ، فنحن نحثك على بدء دورة blockchain المجانية لمعرفة المزيد عنها. بدون تعلم أو فهم كيفية عملها ، سيكون من الصعب حقًا استيعاب مفهوم البرمجة بالنسبة لك.