لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 08/20/24 في كل الموقع
-
السلام عليكم انا عاوز اخود بيانات من المستخدم زي اسم والاميل وكلمه السر وهكذا ازي بقا اقدر احفظ البيانات ده بحيت لو عاوز اعرض البيانات ده علي الشاشه اقدر اعرضه يعني اقدر اهرض كل المستخدمين مش مستخدم واحد ؟ بس من غير كتابت الكود بعد اذن حضرتكم عشان عاوز ادور انا وافكر انا , انا عاوز بس اي المفروض اعملو2 نقاط
-
السلام عليكم اريد ان اعرف موضوع يخص ال multi-vendor كيف بيتم بشكل صحيح وللتوضيح اكثر مثلا موقع مستقل العميل يدفع المبلغ ومستقل ياخذ ال 15% والمبرمج ياخد ال 85% ف فكرتها ان بيتم عمل متغيرين لتخزين القيم لمستقل وللمبرمج مثلا لاكن كيف يتم تحويل المبلغ لبوابتين او لبوابة الاساسية وهي بوابة مستقل بعدها بيتم التحويل لبوابة المبرمج مثلا وشكرا لكم مقدما2 نقاط
-
عندي يوم واخد اشتريت كورس php كانت عندي تجربة مع laravel 10 مثلا في models و controller syntax متغيرة عذا شيء طبيعي لكن نحنا في 2024 و laravel 9 تم اصدارو في 2020 حسيت قديم شوي يعني بعد ما اكمل انشاء الله الدورة راح يفيدني laravel 9 ولا لازمني اطور ل 11 او 10 مع العلم هذا شيء طبيعي لازم اطور من نفسي السؤال المطروح هو : بعد ما اكمل الدورة الاقي شغل ب laravel 9 ولا راح اواجه مشاكل ؟1 نقطة
-
1 نقطة
-
1 نقطة
-
بشكل high-level overview وبدون تفصيل، عليك أولاً إنشاء الـ Models: نموذج البائع Vendor : name: اسم البائع (نص). commission_rate: نسبة عمولة البائع (رقم عشري، افتراضياً 0.15 أي 15%). ونموذج المعاملة Transaction: vendor: الرابط بالبائع الذي تمت المعاملة معه (مفتاح أجنبي). amount: إجمالي قيمة الدفع (رقم عشري). payment_date: تاريخ الدفع (تاريخ ووقت). commission_amount: قيمة عمولة البائع (رقم عشري، افتراضياً 0). admin_amount: قيمة المبلغ الذي يحصل عليه المسؤول (رقم عشري، افتراضياً 0). ثم ربط تطبيق Django ببوابة دفع مثل PayPal أو Stripe وعند قيام العميل بالدفع، ستقوم بوابة الدفع بإرسال إشعار إلى تطبيقك. منطق تقسيم الدفع سيتم كالتالي، عند استلام إشعار الدفع، يتم إنشاء كائن جديد في نموذج Transaction ثم يتم حساب قيمة عمولة البائع وقيمة المبلغ الذي يحصل عليه المسؤول حسب نسبة عمولة البائع. def process_payment(payment_data): vendor = Vendor.objects.get(id=payment_data['vendor_id']) transaction = Transaction.objects.create( vendor=vendor, amount=payment_data['amount'], ) commission_amount = transaction.amount * vendor.commission_rate admin_amount = transaction.amount - commission_amount transaction.commission_amount = commission_amount transaction.admin_amount = admin_amount transaction.save() transfer_funds_to_vendor(vendor, commission_amount) transfer_funds_to_admin(admin_amount) ثم نأتي إلى تحويل الأموال، من خلال تنفيذ الدالتين transfer_funds_to_vendor و transfer_funds_to_admin لتحويل المبالغ المحسوبة إلى حسابات البائع والمسؤول على التوالي، وتستطيع القيام بذلك باستخدام واجهة برمجة تطبيقات بوابة الدفع أو خدمة خارجية، كالتالي: دفع العميل مبلغ 100 دولار للبائع بنسبة عمولة 15٪. ستقوم الدالة process_payment بإنشاء كائن Transaction بقيمة 100 دولار. ستحسب الدالة قيمة عمولة البائع: 100 * 0.15 = 15 دولار. ستحسب الدالة قيمة المبلغ الذي يحصل عليه المسؤول: 100 - 15 = 85 دولار. ستقوم الدالة بتحديث كائن Transaction بالقيم المحسوبة. ستقوم الدالة بتحويل 15 دولارًا إلى حساب البائع و 85 دولارًا إلى حساب المسؤول (المبرمج). بالطبع ذلك مثال مبسط، ويجب مراعاة تنفيذ منطق إضافي للتعامل مع الأخطاء والمبالغ المستردة والحالات الأخرى.1 نقطة
-
1 نقطة
-
ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل، فحاليًا السؤال غير واضح وأسفل الدرس يتم ربط سؤالك بمحتوى الدرس والكود المشروح.1 نقطة
-
السلام عليكم ورحمة الله وبركاته اريد شرح مفصل للدوال عديمة الاسم وما الفرق بينها وبين الدوال المسماة واين استخدم هذه واين استخدم هذه حيث ان في مواقع تحدياتا لبرمجة اغلب الدوال المستخدمة في حل التحديات تكون عديمة الاسم وشكرا مقدما علي الرد1 نقطة
-
عندما اضغط خارج ال popup تختفى فعلا على الرغم من ان هذا هو الكود المكتوب function closeModalOnOutsideClick() { var modal = document.getElementById("successMessage"); window.addEventListener("click", function(event) { if (event.target == modal) { modal.style.display = "none"; } }); } كيف يعمل هذا الكود على الرغم ان الشرط المكتوب يعتبر خاطىء if (event.target == modal) { modal.style.display = "none"; }1 نقطة
-
من فضلك اذا كان هذا سؤال خاص بدرس من دروس الدورة فيرجي إرفاق السؤال أسفل الدرس حيث يوجد صندوق للتعليقات كما هنا حيث يجب وضع السؤال هناك . حيث هنا هو قسم الأسئلة العامة ولا نجيب علي أسئلة الدورات هنا وذلك لمساعدتك بشكل أفضل. أما إذا كان سؤال عام فيرجي ارسال كود و صورة للمشكلة وذلك لمساعدتك بشكل أفضل.1 نقطة
-
1 نقطة
-
وعليكم السلام ورحمة الله وبركاته. ال argv هو قائمة تحتوي على المعاملات التي تم تمريرها إلى البرنامج عند تشغيله من سطر الأوامر. بمعنى عندما تقوم بتشغيل برنامج بايثون من سطر الأوامر، فإن sys.argv يحتوي على المعلومات التالية: العنصر الأول (sys.argv[0]) هو دائمًا اسم السكريبت نفسه. العناصر التالية هي المعاملات الإضافية التي تم تمريرها للبرنامج. على سبيل المثال، إذا قمت بتشغيل برنامج بهذا الشكل: python my_script.py arg1 arg2 arg3 فإن sys.argv ستحتوي على: sys.argv[0] == "my_script.py" sys.argv[1] == "arg1" sys.argv[2] == "arg2" sys.argv[3] == "arg3"1 نقطة
-
وعليكم السلام argv هو اختصار لـ argument vector. يتم استخدامه لجلب قائمة بالوسائط (arguments) التي يتم تمريرها إلى البرنامج عند تشغيله من سطر الأوامر او cmd. sys.argv يمن العناصر. - العنصر الأول (sys.argv[0]) يحتوي على اسم البرنامج أو المسار الذي تم تشغيله من خلاله. - العناصر التالية (sys.argv[1], sys.argv[2])و غيرها. تحتوي على الوسائط التي تم تمريرها من سطر الأوامر عند تشغيل البرنامج. و نوضح ذلك بمثال و نقل ان لديك برنامج بايثون يسمى task.py، وكتبت داخله الكود التالي: import sys # طباعة قائمة الوسائط الممررة إلى البرنامج print("Arguments passed:", sys.argv) # طباعة كل وسيطة على حدة print("Program name:", sys.argv[0]) print("First argument:", sys.argv[1]) print("Second argument:", sys.argv[2]) print("Third argument:", sys.argv[3]) إذا قمت بتشغيل البرنامج من سطر الأوامر CMD على الشكل التالي: python example.py arg1 arg2 arg3 سيظهر لك الناتج التالي: Arguments passed: ['example.py', 'arg1', 'arg2', 'arg3'] Program name: example.py First argument: arg1 Second argument: arg2 Third argument: arg3 و يمكن استخدامه إذا كنت تريد إنشاء برامج تتعامل مع المدخلات القادمة من سطر الأوامر، مثل البرامج التي تعتمد على وسائط لتغيير سلوكها حسب المعطيات التي يتم تمريرها عند التشغيل. و من فضلك إذا كان هذا سؤال خاص بدرس من دروس الدورة فيرجي إرفاق السؤال أسفل الدرس حيث يوجد صندوق للتعليقات كما هنا حيث يجب وضع السؤال هناك . حيث هنا هو قسم الأسئلة العامة ولا نجيب علي أسئلة الدورات هنا وذلك لمساعدتك بشكل أفضل.1 نقطة
-
نفترض أنك تستخدم مكتبة للتعامل مع بوابة دفع مثل Stripe، سسقوم بإعداد دالة لتحصيل المبلغ من العميل، ثم دالة لتوزيع المبالغ بين المنصة والمبرمج، و يمكنك استخدام واجهة برمجة تطبيقات لبوابة الدفع لتحصيل المبلغ، هذا هو مثال مبسط لتحصيل المبلغ: import stripe def charge_customer(customer_id, amount): try: charge = stripe.Charge.create( amount=int(amount * 100), # المبلغ بالـ cents currency="usd", customer=customer_id, description="Payment for services" ) return charge except stripe.error.StripeError as e: print(f"Error charging customer: {e}") return None # تحصيل المبلغ من العميل charge = charge_customer("cus_J5hPjXxU8bF7Zk", total_amount) بعد تحصيل المبلغ، نحتاج الآن لتحويل النسب لكل من المنصة والمبرمج، بهذا الشكل: def transfer_funds(to_account_id, amount): try: transfer = stripe.Transfer.create( amount=int(amount * 100), # المبلغ بالـ cents currency="usd", destination=to_account_id, description="Transfer to account" ) return transfer except stripe.error.StripeError as e: print(f"Error transferring funds: {e}") return None # تحويل العمولة إلى حساب المنصة platform_transfer = transfer_funds("acct_1J5hPj2eZvKYlo2C", platform_fee) # تحويل المبلغ المتبقي إلى حساب المبرمج programmer_transfer = transfer_funds("acct_1J6hKl2eZvKYlo2K", programmer_fee) و يجب أيضا تسجيل جميع العمليات في قاعدة بيانات لمتابعة السجلات ومعالجة أي مشكلات لاحقا، يمكنك استخدام قاعدة بيانات مثل PostgreSQL أو MySQL لتخزين البيانات.1 نقطة
-
نعم عرفت كل هذا بعد عمليات البحث والقراءه ولاكن ايضا اريد توضيح العملية بشكل اكبر برمجيا1 نقطة
-
عندما يدفع العميل المبلغ، يتم تحصيله عبر بوابة دفع مثل Stripe أو PayPal، و في هذه المرحلة المبلغ يتم تحويله إلى حساب المنصة، بعدها تقوم المنصة بحساب النسبة التي سيتم أخذها كعمولة، و يمكن تخزين هذه النسب في متغيرين أو حقول في قاعدة البيانات بهذا الشكل: platform_fee_percentage = 0.15 programmer_fee_percentage = 0.85 total_amount = 1000 # المبلغ المدفوع من قبل العميل platform_fee = total_amount * platform_fee_percentage programmer_fee = total_amount * programmer_fee_percentage بعد حساب النسب، هناك طريقتان لتوزيع المبلغ، حيث يمكن للمنصة، أن تقوم بتحويل المبلغ تلقائيا إلى حساب المبرمج على بوابة الدفع بعد خصم العمولة، في هذه الحالة يتم إجراء تحويلين، تحويل العمولة إلى حساب المنصة، و تحويل المبلغ المتبقي إلى حساب المبرمج. و بعض الأنظمة تحتفظ بالمبلغ بالكامل في حساب المنصة لفترة معينة حتى يتم تأكيد انتهاء العمل، وبعد ذلك يتم توزيع المبالغ، و عند تأكيد العمل يتم تحويل النسبة المستحقة للمبرمج بشكل تلقائي.1 نقطة
-
اشعر بلخبطة متعبه ماهو الفرق بين Polymorphism و Abstract Class و Interface؟ في سي شارب ؟1 نقطة
-
كما شرؤح لك مصطفى بشكل رائع أن الدوال عديمة الاسم أو Anonymous Functions هي دوال تُعرّف بدون اسم محدد. بدلاً من أن يكون للدالة اسم يمكن استدعاؤها به لاحقاً، يتم استخدامها في المكان الذي تم تعريفها فيه. ولكن سأحاول شرح متى نستخدم الAnonymous Functions بشكل عملي أولاً تُستخدم هذه الدوال غالبًا في الأماكن التي تحتاج فيها إلى تمرير دالة كمعامل لدالة أخرى. على سبيل المثال، في المصفوفات عند استخدام map أو filter أو forEach. const numbers = [1, 2, 3, 4]; const squaredNumbers = numbers.map(function(num) { return num * num; }); console.log(squaredNumbers); // Output: [1, 4, 9, 16] ثانياً عندما تحتاج إلى دالة تؤدي مهمة معينة ولا تحتاج إلى تكرارها في أماكن أخرى. setTimeout(function() { console.log("Time's up!"); }, 2000); // يتم تنفيذ الدالة بعد 2 ثانية و أحيانًا تحتاج إلى دالة داخل دالة أخرى لأداء مهمة محددة في نطاق صغير. function outerFunction() { return function() { console.log("Inner function"); }; } const inner = outerFunction(); inner(); // "Inner function"1 نقطة
-
تلك عبارة عن دوال يتم تعريفها بدون اسم، أي بدلاً من تعريفها باستخدام الكلمة المفتاحية function متبوعة باسم، نقوم تعريفها باستخدام الكلمة المفتاحية function فقط، أو باستخدام صيغة arrow function. function() { console.log(" دالة عديمة الاسم!"); } والدوال عديمةالاسم لا نستطيع إعادة استخدامها مباشرًة، فليس لها اسم نستطيع من خلالها استدعائها. أيضًا لا يتم تنفيذ الرفع Hoisting لها، أي لا تستطيع استدعائها قبل تعريفها في الكود أي قبل السطر الخاص بها في الكود، فنحن لا نستطيع ذلك بدون اسم لذا لا يتم رفعها. والفائدة منها هي استخدامها كدالة IIFE أي كـ (Immediately Invoked Function Expression) وهي دوال يتم تعريفها وتنفيذها مباشرةً. (function() { console.log("أنا دالة عديمة الاسم!"); })(); لاحظ الأقواس التي حول الدالة والقوسين بعدها والتي تعني تنفيذها مباشرًة فور الوصول لتلك الدالة في الكود من قبل المترجم. بالتالي في أي موضع لا تحتاج به إعادة استخدام تلك الدالة مرة أخرى في الكود، فقم بكتابتها بدون اسم، مثل دالة IIFE. أو مثلاً كـ دوال Callback والتي تستخدم بكثرة كـ دوال يتم تمريرها كمعامل لدوال أخرى، مثل دوال معالجة الأحداث أو دوال setTimeout و setInterval. setTimeout(function() { console.log("تم تنفيذ هذه الدالة بعد ثانية واحدة"); }, 1000); أيضًا مع دوال ذات ترتيب أعلى Higher-Order Functions مثل map و filter و reduce. const numbers = [1, 2, 3, 4, 5]; const doubledNumbers = numbers.map(function(number) { return number * 2; }); وللعلم توفر جافاسكريبت صيغة مختصرة لكتابة الدوال عديمة الاسم، وهي Arrow Function. const sum = (a, b) => a + b; فلا تحتاج إلى استخدام الكلمة المفتاحية function، ولا تحتاج إلى استخدام الأقواس {} أو الكلمة المفتاحية return إن كان جسم الدالة يتكون من سطر واحد فقط، وترث قيمة this من النطاق scope المحيط بها. وعلى الرغم من أنك تستطيع استخدام المتغير sum لاستدعاء الدالة أي من خلال اسم، لكن الدالة نفسها بدون اسم، لذا الأمر قد يحيرك قليلاً لفهمه.1 نقطة
-
السلام عليكم ورحمة الله وبركاته اريد شرح للدالة sort() في جافاسكريبت وما معني هذا الكود : return elements_array.sort((a,b) => a - b) فهو يرتبلي الarray ترتيبا تصاعديا ولكن ما معني a,b الموجودة وهل هما parameters ام متغيرات1 نقطة
-
بشكل بسيط، تخيل أن لديك مجموعة من الأوراق مكتوب عليها أرقام عشوائية، وتريد ترتيبها تصاعديًا، فدالة sort() في جافاسكريبت تساعدك على فعل ذلك مع عناصر المصفوفة. حيث تستقبل الدالة متغيرًا واحدًا اختياريًا وهو دالة مقارنة comparison function، وتلك الدالة تخبر sort() كيف تقارن بين عنصرين في المصفوفة لتحديد ترتيبهما. بخصوص الكود، elements_array اسم المصفوفة التي تريد ترتيبها. sort((a, b) => a - b): sort() هي الدالة التي تقوم بترتيب عناصر المصفوفة في جافاسكريبت. (a, b) => a - b دالة المقارنة التي تخبر sort() كيف تقارن بين عنصرين، ويحدث بها ما يلي: a و b: هما معاملان parameters يمثلان أي عنصرين يتم مقارنتهما في المصفوفة. a - b تلك هي عملية المقارنة: لو كانت نتيجة a - b سالبة، فإن a يوضع قبل b. في حال نتيجة a - b موجبة، فإن a يوضع بعد b. في حال نتيجة a - b صفر، فإن ترتيب a و b يبقى كما هو. بالتالي الكود يرتب عناصر المصفوفة elements_array تصاعديًا باستخدام دالة المقارنة (a, b) => a - b التي تقارن بين كل عنصرين في المصفوفة وتعيد قيمة سالبة أو موجبة أو صفر لتحديد ترتيبهما. Array.prototype.sort()1 نقطة
-
1 نقطة
-
نقطة الاستعادة أو restore point لا تقوم باستعادة الملفات الشخصية المحذوفة، بل ملفات النظام نفسه. أي سيتعين عليك استخدام برنامج لاستعادة الملفات وتتضاءل احتمالية الاستعادة في حال تم إضافة بيانات جديدة في نفس القرص بعد الحذف، حيث يتم كتابة تلك البيانات على البيانات التي تم حذفها أي تستبدلها. برنامج Recuva لا بأس به.1 نقطة