اذهب إلى المحتوى

Mustafa Suleiman

الأعضاء
  • المساهمات

    13227
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    365

كل منشورات العضو Mustafa Suleiman

  1. نصيحتي إليك هي ألا تشتت نفسك، طالما أنك بدأت مسار برمجي من الأفضل إنهاءه وإنشاء مشاريع ثم تعلم React أو Angular أو Vue.js وإنشاء مشاريع حقيقية أيضًا. بعد ذلك تستطيع العودة ودراسة الخوارزميات وهياكل البيانات وأنماط التصميم، ومن المفترض أنك ستقوم بدراسة الـ OOP من خلال جافاسكريبت أثناء دراستك لمسار الواجهة الأمامية، وإن لم تقم بالتعمق به خلال ذلك فعليك دراسة البرمجة الكائنية أيضًا. وللعلم تستطيع تأسيس نفسك من خلال أي لغة برمجة، لكن من حيث الأفضلية فلغة C++ أفضل وذلك لا يعني أن باقي اللغات سيئة بل يمكنك التعلم من خلال أي لغة، لكن من خلالها ستتعلم الأساسيات بدون تجريد وبشكل أقرب للنظام والعتاد، حيث أن اللغات الأخرى بها طبقات تجريد أي عمليات تحدث في الخلفية بدون علمك. ولكن تأسيسك من خلال C++ لا يعني أنك أصبحت ملم بلغة جافاسكريبت، بل عليك التعمق بها لأنها اللغة الأساسية لك كمطور واجهة أمامية أي عليك دراسة المفاهيم المتقدمة بعد دراسة الأساسيات في جافاسكريبت وليس الاكتفاء بالأساسيات فقط ونصيحتي هي التركيز على ذلك ثم الإنتقال لتعلم الخوارزميات وهياكل البيانات وأنماط التصميم.
  2. يمكنك الإعتماد على مستودعات المشاريع الخاصة بالدورة وستجديها في المقدمة أو المدخل الخاص بكل مسار أو مشروع. في حال قمتي بتطبيق نفس المشروع تستطيعي نسخه واستخدامه كمشروع لك، أو نسخ ما قمتي بتنفيذه بالفعل ثم إكمال ما تبقى، ولكن عليك الإنتباه إلى أنه عند التقدم للإختبار سيتم إختبارك وقياس مدى استيعابك لما قمتي بتنفيذه. ولتجنب تكرار الأمر، أرجو منك رفع المشاريع الخاصة بك إلى GitHub.
  3. الأمر يتوقف على نوع البيانات الذي سيتم تخزينه والتعامل معه، حيث أن لكل قاعدة ميزات معينة كالتالي: PostgreSQL قاعدة بيانات علاقية (Relational Database Management System)، وهي تناسب جيداً لتطبيقات تتطلب بنية بيانات مرنة وتعامل مع البيانات المترابطة بشكل مكرر. تكون مفيدة في مشاريع تتطلب تعقيدات معالجة البيانات مثل الانضمامات (joins) والتراكيب البيانات المعقدة. تُستخدم في التطبيقات التي تتطلب الامتثال لمعايير البيانات والسلامة، مثل التطبيقات المالية أو الصحية كمثال وليس حصرًا. MongoDB قاعدة بيانات NoSQL تستخدم بشكل رئيسي لتخزين البيانات غير المنظمة أو ذات الهياكل المتغيرة مثل الوثائق (Documents). مناسبة لتطبيقات تحتاج إلى مرونة في تخزين البيانات والتعامل مع البيانات النصية أو الهياكل المتغيرة. تُستخدم في تطبيقات الويب والتطبيقات التي تتطلب سرعة في تنفيذ القراءة والكتابة للبيانات. وتستطيع التعمق في MongoDB لوحدها إذا كانت احتياجات المشروع تناسب نموذج البيانات الوثائقي والمزايا التي تقدمها MongoDB، وستحتاج أحيانًا إلى استخدام قواعد بيانات متعددة إذا كان لديك متطلبات خاصة، كالحاجة إلى تخزين البيانات الهيكلية في PostgreSQL والبيانات غير المنظمة في MongoDB، وبالتالي بإمكانك دمج الاثنين في مشروعك. وبالطبع هناك مشاريع تفرض استخدام مزيج من PostgreSQL وMongoDB، وذلك حسب احتياجات المشروع، فمثلا، في تطبيقات الويب الكبيرة التي تتطلب تخزين البيانات المترابطة والبيانات غير المنظمة في وقت واحد. وتستخدم PostgreSQL للبيانات الهيكلية مثل معلومات المستخدمين والمعاملات المالية، بينما تستخدم MongoDB لتخزين السجلات والبيانات الشخصية والبيانات النصية الغير هيكلية. وقد تستخدم تطبيقات التجارة الإلكترونية MongoDB لبيانات المنتجات و PostgreSQL لبيانات المدفوعات. أيضًأ تطبيقات إدارة المحتوى قد تستخدم MongoDB لبيانات المحتوى و PostgreSQL لبيانات المستخدمين. وستجد تفصيل أكثر هنا: وتلك مصادر لتعلم PostgreSQL: https://academy.hsoub.com/devops/servers/databases/postgresql/ https://academy.hsoub.com/devops/servers/databases/mongodb/
  4. لا يتم شرح ذلك في دورة علوم الحاسوب، ومادة التصميم الرقمي المنطقي مادة متخصصة، حيث أنها تعتبر جزءًا مهمًا من مجال تصميم الأنظمة الرقمية والأشياء الذكية وتركز على تطبيق المنطق والرياضيات في تصميم وتطوير الأنظمة والدوائر الرقمية. وبعض المفاهيم الأساسية التي يمكن أن تساعدك في فهم هذه المادة هي: البوابات هي عناصر أساسية في التصميم الرقمي وتُستخدم لتنفيذ العمليات المنطقية، وتشمل البوابات الشهيرة بوابة AND وبوابة OR وبوابة NOT. منطق البوز (Boolean logic) يستخدم لتمثيل القيم المنطقية مثل صح وخطأ (1 و0)، ويتم استخدامه في التصميم الرقمي لاتخاذ قرارات مستندة إلى المنطق. تُستخدم الدوائر المنطقية لتنفيذ العمليات المنطقية على البيانات، وتشمل هذه الدوائر البوابات المنطقية المختلفة وتوصيلها معًا لبناء أنظمة أكبر. في التصميم الرقمي المنطقي يتم استخدام السجلات والتسلسلات لتخزين ومعالجة البيانات بشكل متسلسل. تُستخدم مخططات الدوائر لتمثيل تصميم الدوائر المنطقية بشكل رسومي وتساعد في فهم كيفية توصيل البوابات والعناصر لبناء الأنظمة. تعتبر الذاكرة والتخزين جزءًا هامًا من التصميم الرقمي حيث يتم استخدامها لتخزين واسترجاع البيانات. مشكلة السلم والترجمة وتلك المفاهيم تتعلق بتحويل المعلومات من تمثيل إلى آخر، مثل تحويل البيانات من تمثيل عددي إلى تمثيل بيني. وما يتم شرحه في دورة علوم الحاسوب هو التالي: أساسيات الحاسوب وعلومه والتفكير المنطقي وما هي الخوارزميات وكيف تفيد في البرمجة تطبيقات عملية على أساسيات التفكير المنطقي باستخدام بيئة سكراتش Scratch التفاعلية أساسيات لغة البرمجة JavaScript وتطبيق المفاهيم التي تم شرحها باستخدامها، والتوسع في شرح التطبيقات العملية للغات البرمجة أساسيات أنظمة التشغيل المختلفة وكيفية تثبيت البرمجيات اللازمة للبرمجة عليها أساسيات سطر الأوامر في نظام لينكس، وشرح الأسس التي بني عليها النظام مع تطبيقها عمليًا أنظمة قواعد البيانات المختلفة، مع شرح تفصيلي للغة SQL للتعامل معها مبادئ أساسية في أنظمة قواعد البيانات NoSQL المفاهيم الأساسية التي تبنى فيها صفحات الويب مفاهيم أساسية في الشبكات والخوادم، وكيف يتم استقبال الطلبيات إلى الخادم والرد عليها مبادئ الحماية والأمان في الويب
  5. أرفق مجلد المشروع لتفقد طريقة الحفظ والاسترجاع التي تتم.
  6. ربما لم يتم تمكين شريط الحالة في إعدادات التطبيق، ولتحديد ما إذا كان شريط الحالة ممكّنًا، افتح ملف app.json الخاص بتطبيقك وتحقق من القيمة المحددة لخاصية statusBarHidden، ولو كانت القيمة محددة على true، فذلك يعني أن شريط الحالة مخفي. أو من الممكن أنه تم تحديد ارتفاع شريط الحالة بشكل غير صحيح، وإن كنت تحدد ارتفاع شريط الحالة بشكل غير صحيح، فقد لا يظهر، لذلك استخدم خاصية statusBarHeight في ملف app.json. أو بسبب وجود خطأ في الكود، تحقق من أن شريط الحالة مضاف في الكود كالتالي: import React, { useState } from "react"; import { StatusBar } from "react-native"; const App = () => { const [statusBarHidden, setStatusBarHidden] = useState(false); return ( <View style={{ flex: 1 }}> <StatusBar hidden={statusBarHidden} /> </View> ); }; export default App;
  7. عليك أولاً تثبيت الحزمة من خلال الأمر التالي: gem install hotwire-livereload بعد ذلك عليك تنفيذ أمر تشغيل السكريبت: rails livereload:install وبشكل إفتراضي يتم الاستماع للتغيرات في الـ View وhelpers و assets. وفي حال أردت إضافة مسار آخر للاستماع إليه عليك إضافته كالتالي: config.hotwire_livereload.listen_paths << Rails.root.join("app/assets/builds") وبالطبع يمكنك تغيير مسار الملفات التي تريد الاستماع إليها بأي مسار تريده.
  8. تستطيع إنهاء الدورة في أي وقت فهي متاحة لك مدى الحياة، وبعد الإنتهاء منها والحصول على الشهادة تستطيع الحصول على الميزات التي تقدمها الأكاديمية وهي: سنقدم لك خدمة كتابة السيرة الذاتية مجانًا، ثم سنتابع معك لإعداد حساباتك على مواقع العمل، وحينها إن لم تحصل على عمل يغطي قيمة الدورة التي دفعتها خلال 6 أشهر من حصولك على الشهادة فسنعيد لك ما دفعت، بكل بساطة. لكن نصيحتي إليك هي أن تضع إطار زمني وتلتزم به، حيث أن تعلم أي شيء يتطلب دراسة ممارسة باستمرار خلال فترة زمنية متصلة وليست متقطعة على فترات كبيرة، فمثلاً لا يصح أن تنقطع فترة شهر ثم تعود وتنقطع شهر آخر وهكذا.
  9. لست متأكدًا من إمكانية ذلك عن طريق الهاتف، لكن يمكنك محاولة فعل ذلك عن طريق أحد الحزم التالية: 1- auto-py-to-exe وأمر تحميل وتثبيت الحزمة هو: pip install auto-py-to-exe أمر تحويل الكود إلى ملف EXE: auto-py-to-exe 2- أو من خلال حزمة pyinstaller وعليك تثبيت الحزمة: pip install pyinstaller أمر تحويل الكود إلى ملف EXE: pyinstaller --onefile yourFile.py 3- من خلال حزمة nuitka وأمر التحميل هو: pip install nuitka أمر تحويل الكود إلى ملف EXE: nuitka --one-file yourFile.py وفي الأوامر السابقة الخاصة بحزمتي pyinstaller وnuitka عليك استبدال اسم الملف yourFile.py باسم الملف الرئيسي لديك في المشروع وليكن مثلاً app.py
  10. طالما أنه مشروع جامعي فيمكنك تجربة Google Cloud حيث يوجد خطة تجربة مجانية بقيمة 300 دولار. أو يمكنك الاستفادة من باقة GitHub Student Developer Pack حيث ستحصلي على العديد من المزايا مجانًا لمدة سنة في حال أنك تدرسين بالجامعة ومن ضمن تلك المزايا: DigitalOcean: رصيد بقيمة 100 دولار لمدة عام (استضافة وذلك هو المهم هنا بالنسبة لسؤالك) JetBrains: اشتراك مجاني في جميع أدوات JetBrains IDEs لمدة 12 شهرًا Bitbucket: 5 مستودعات خاصة مجانية Namecheap: اسم نطاق مجاني لمدة عام واحد Canva Pro: اشتراك مجاني لمدة 3 أشهر Codecademy: اشتراك مجاني لمدة 12 شهرًا Pluralsight: اشتراك مجاني لمدة 6 أشهر و اكثر يمكنك قراءة الشروط والتقديم من هنا: https://education.github.com/discount_requests/application أما بخصوص الاستضافات المدفوعة فهناك التالي بأسعار مقبولة: Kamatera Vultr DigitalOcean UpCloud Hetzner
  11. طالما أن بطاقة إيزي باي لديك تعمل حيث أن بعض البطاقات لا تعمل، فعليك التحدث للدعم الخاص بباي بال لمعرفة سبب المشكلة، ولحين حل المشكلة يمكنك تحويل رصيدك لوسيط مالي عن طريق وضع البريد الخاص به بدلاً من بريدك عند السحب من خلال باي بال، أي يقوم بشرائه منك وتستلم أنت أموالك عن طريق حسابك البنكي أو فودافون كاش.
  12. طرق شحن رصيد المعتمدة هي: باي بال بطاقة ماستر كارد (من نوع Debit أو Credit) بطاقة فيزا (من نوع Debit أو Credit) آبل باي وفي حال عدم توفر ذلك في سوريا، فهناك خيار واحد وهو وسيط مالي، ستجد في الجروبات على منصات التواصل وسيط مالي معروف ذو ثقة وليس أي شخص لكي لا تتعرض لعملية نصب، وسيقوم بشحن حساب مقابل نسبة، وإذا أردت يمكنني إرسال حساب وسيط مالي للتواصل معه.
  13. هل قمت بتثبيت الحزم المطلوبة للمشروع، وهل تعلم الطريقة الصحيحة للتعديل على الكود ليتناسب مع مسارات الملفات في جهازك؟ فمثلاً لو قمت بكتابة نفس الكود في الفيديو فستجد به بعض المسارات الخاص بالملفات عليك تعديلها بما يتناسب مع الملفات الموجودة على حاسوبك والتي تريد العمل عليها. ولا يمكن تحديد سبب المشكلة بدون رؤية الخطأ الذي يظهر لك، ومن الأفضل تعلم أساسيات بايثون حتى تتمكن من استيعاب ما يتم شرحه.
  14. بدلاً من استخدام معلمة --onefile استخدم --onedir من أجل تمضين الإعتماديات التي يتم استخدامها في الكود فقط بدلاً من تمضين كافة الحزم. pyinstaller --noconfirm --onedir --console app.py وأيضًا يمكنك استخدام أداة UPX في حال لم تنال ما تريده من خلال الطريقة السابقة، وهي أداة تستخدم للضغط وإخراج ملف exe بحجم صغير بجانب أداة Pyinstaller . عليك تحميلها من هنا: https://github.com/upx/upx/releases/download/v4.1.0/upx-4.1.0-win64.zip ثم قم بفك الضغط وليكن على سطح المكتب مثلاً وستجد مجلد. بعد ذلك استخدم الأمر التالي: pyinstaller --windowed --upx-dir "C:/Users/yourusername/Dependencies/upx-4.0.1" app.py وعليك استبدال المسار بمسار المجلد الخاص بأداة UPX.
  15. لا يتم إنشاء برامج بصيغة EXE في دورة بايثون، بل يتم كتابة البرنامج وتشغيله من خلال منفذ الأوامر، وإليك ما يتم شرحه في الدورة: البرمجة بلغة بايثون Python إنطلاقًا من أبسط المفاهيم وحتى بناء تطبيق حقيقي. كيفية التعامل مع مختلف الخدمات وإنشاء تطبيقات عملية متنوعة باستخدام بايثون ومكتباتها مثل قواعد البيانات والبريد الإلكتروني وأوراق Excel واستخراج البيانات من الويب Web Scraping وغيرها. ستتعلم أساسيات إطار العمل جانغو Django، وتطور تطبيقًا عمليًا لإدارة المهام عبره. أساسيات إطار العمل فلاسك Flask ثم ستتعرف على مفهوم الواجهات البرمجية APIs، وتطور واجهة برمجية. سنستخدم بوابة الدفع سترايب Stripe و PayPal في تطبيقاتنا، وسنتعلم مختلف طرق استعمالها. إنشاء متجر إلكتروني ونقطة بيع وستبني إضافات برمجية يمكنك استخدامها مع نظام أودو Odoo لإدارة الأعمال وفق متطلبات العميل. مبادئ التعامل مع البيانات، ثم تتعمق في التحليل الإحصائي Statistical analysis والتصوير البياني Data visualization، ثم تطبق ما تعلمته عمليًا على أمثلة حقيقية. مبادئ تعلم الآلة Machine learning وأنواعها الأساسية مثل الانحدار Regression والتصنيف Classification والتجميع Clustering، وسنتحدث عن التعليم المعزز Reinforcement learning.
  16. لا تحتاج إلى شهادة للعمل في مجال البرمجة أو الذكاء الاصطناعي، لكن إذا أردت أن تصبح باحثًا في مجال الذكاء الاصطناعي، فسيساعدك ذلك في الحصول على وظيفة في مجال البحث حيث تتطلب معظم الوظائف البحثية في الذكاء الاصطناعي درجة علمية متقدمة، مثل درجة الماجستير أو الدكتوراه في الذكاء الاصطناعي أو مجال ذي صلة، مثل علوم الكمبيوتر أو الرياضيات.
  17. يتمثل الفرق الرئيسي بين الباحث والمطور في مجال الذكاء الاصطناعي في الإهتمامات المخلتفة، حيث يركز الباحثون على تطوير المعرفة والفهم الجديدين في مجال الذكاء الاصطناعي، بينما يركز المطورون على تطبيق المعرفة والتقنيات الحالية لحل المشكلات. ويبحث الباحثون في الذكاء الاصطناعي في أسس الذكاء الاصطناعي، بما في ذلك التعلم الآلي، والمعالجة الطبيعية للغة، والرؤية الحاسوبية ويطورون تقنيات جديدة وتحسينات للتقنيات الحالية، ثم ينشرون أبحاثهم في المجلات العلمية والمؤتمرات. بينما يبني المطورون أنظمة الذكاء الاصطناعي التي تحل المشكلات في مجموعة متنوعة من المجالات، بما في ذلك الرعاية الصحية، والتصنيع، والمالية، والتسويق، ويستخدمون تقنيات الذكاء الاصطناعي الحالية لتطوير منتجات وخدمات جديدة. ولكي تصبح باحثًا في مجال الذكاء الاصطناعي، تحتاج إلى الحصول على درجة علمية متقدمة في الذكاء الاصطناعي أو مجال ذي صلة، مثل علوم الكمبيوتر أو الرياضيات، ويمكنك أيضًا الحصول على خبرة في البحث من خلال العمل في مختبر أو المشاركة في مشاريع بحثية. وبالنسبة لتصبح مطورًا في الذكاء الاصطناعي، تحتاج إلى الحصول على درجة علمية في علوم الكمبيوتر أو أي مجال ذي صلة، بالإَضافة إلى الحصول على خبرة في تطوير الذكاء الاصطناعي من خلال العمل في شركة تكنولوجيا أو المشاركة في مشاريع تطويرية.
  18. من الأفضل استخدامه وJupyter Notebook هو بيئة عمل ممتازة لتعلم الآلة لعدد من الأسباب: يسمح Jupyter Notebook بتنفيذ الشفرة وعرض نتائج التحليل بشكل فوري في نفس الوثيقة، مما يجعل من السهل تجربة أفكار جديدة والتوصل إلى رؤى جديدة. يمكن استخدامه لإنشاء وثائق تفاعلية يمكن مشاركتها بسهولة مع الآخرين، وبالتالي يجعل من السهل تعليم الآخرين حول مشاريع تعلم الآلة الخاصة بك. يوفر مجموعة واسعة من المكونات الإضافية والوحدات النمطية التي يمكن استخدامها لتوسيع وظائفه، مما يجعله قابلاً للتخصيص بسهولة لاحتياجاتك المحددة.
  19. مكتبة face-recognition ومكتبة OpenCV هما مكتبتان للتعرف على الوجوه، ولكنهما تختلفان في بعض الجوانب الرئيسية، بما في ذلك: مكتبة face-recognition مصممة خصيصًا للتعرف على الوجوه، بينما مكتبة OpenCV هي مكتبة عامة للمعالجة الرؤية الحاسوبية، وتتضمن العديد من الوظائف، بما في ذلك التعرف على الوجوه. مكتبة face-recognition أسهل في الاستخدام من مكتبة OpenCV، حيث توفر واجهة برمجة تطبيقات بسيطة تسهل على المطورين إنشاء تطبيقات للتعرف على الوجوه، أما مكتبة OpenCV أكثر تعقيدًا، ولكنها توفر مزيدًا من التحكم في عملية التعرف على الوجوه. ومن حيث الأداء فمكتبة face-recognition أسرع من مكتبة OpenCV، لأنها تستخدم خوارزميات أكثر كفاءة، بينما مكتبة OpenCV قد تكون أبطأ، لكنها توفر مزيدًا من الدقة أي أنها أبطأ أو أسرع حسب الخوارزمية
  20. للأسف منصة فيسبوك بوك أصبحت مسيسة أي تتبع سياسيات فئة معينة من البشر والبقية عليهم الإنصياع، الأمر أشبه بسجن كبير وليس منصة تواصل، وكما هو مذكور عليك الإنتظار لحين إتمام المراجعة وسيتم إخبارك بذلك عند الإنتهاء والأمر يختلف من حساب لحساب ومن شخص لشخص.
  21. تستطيع البحث على اليوتيوب عن تخصيص متاجر سلة، وستجد شروحات توضح لك الأمر، وكل ما تحتاج هو معرفة جيدة بلغة CSS وأيضًا كيفية استخدام أدوات المطور DevTools في جوجل كروم من أجل تفقد عناصر القالب وإختيار العنصر الصحيح وتخصيصه من خلال CSS، وأيضًا إلمام بكيفية تصميم واجهة موقع ويب جيدة من حيث الألوان والخط والأيقونات وإنشاء بعض التصماميم من خلال فوتوشوب إن تطلب الأمر من جانب العميل أو الإكتفاء بالتخصيص من خلال CSS ويوفر لك هو التصاميم والهوية الخاصة بالمتجر. وستجد هنا مصادر جيدة لتعلم ما ذكرته:
  22. إنشاء شبكة تواصل مثل فيسبوك؟ نعم يمكنك ذلك، هل الخوارزميات الخاصة بتلك الشبكة ستصبح مثل فيسبوك في يوم وليلة؟ بالطبع لا، فأنت بحاجة إلى سنوات من أجل تطوير خورازمية ضخمة مشابهة وبحاجة إلى فريق عمل ضخم. أما عن إنشاء تطبيق مثل واتساب، فيمكنك إنشاء تطبيق مماثل ويمكنك البحث على يوتيوب عن What'sApp Clone. أما عن ChatGPT فذلك مستحيل، حيث أن إنشاء نموذج ذكاء اصطناعي مشابه بحاجة إلى سنوات وفريق عمل خبير وليس شخص واحد فقط بالإضافة إلى أموال طائلة، ولكن يمكنك استخدام نموذج ذكاء اصطناعي مفتوح المصدر LLaMA 2 مثل الخاص بفيسبوك وتدريبه على البيانات الخاصة بك مثلاً أو استخدامه في مشروعك.
  23. لاحظ أنك تستخدم دالة بانية باسم Function وهي خاصة بإنشاء الدوال، عليك استخدام إعلان الدالة function declaration من خلال حرف f صغير كالتالي: function(err){ } وليس: Function(err){ } وما أقصد بأنها تقوم بإنشاء دالة فهي تستخدم لإنشاء دالة بالفعل لاحظ المثال التالي: const sum = new Function('a', 'b', 'return a + b'); console.log(sum(2, 6)); // Expected output: 8 قمت بكتابة معاملات للدالة وأيضًا القيمة التي سيتم إعادتها.
  24. ما تتحدث عنه هو الـ Syntax بالإضافة إلى أفضل الممارسات أثناء كتابة الكود حيث يمكن الاطلاع علىPEP 8 وهو مستند يحتوي على مجموعة من المعايير والإرشادات المتعلقة بأسلوب كتابة الأكواد في لغة Python. وتمثل "PEP" اختصارًا لـ "Python Enhancement Proposal"، وهي وثائق تُستخدم لاقتراح تحسينات للغة Python ومكتباتها المرتبطة. والأمر يطول شرحه لكن هناك بعض القواعد الأساسية لكتابة أكواد Python هي التالي: المسافات البيضاء (Whitespace) Python تستخدم المسافات البيضاء (المسافات والتابات) لفهم وتنسيق الأكواد، ويجب أن تكون المسافات محددة بشكل صحيح. for i in range(5): print(i) الهوامش (Indentation) تعتمد بايثون على التعريفات لتنظيم الكود وبالتي يجب أن تكون التعريفات متساوية من حيث التباعد (indentation)، والعادة تستخدم أربع مسافات أو مسافتين (PEP 8 توصي باستخدام أربع مسافات). if x > 5: print("x is greater than 5") التعليقات (Comments) يمكنك إضافة تعليقات لشرح الكود باستخدام الرمز #، والتعليقات لا تؤثر على تنفيذ البرنامج. # هذا تعليق أسماء المتغيرات والدوال يمكن استخدام الأحرف الأبجدية (a-z و A-Z) والأرقام (0-9) وشرطة سفلية (_) في تسمية المتغيرات. ابدأ اسم المتغير بحرف (a-z أو A-Z) أو بشرطة سفلية (_). ليس مسموحًا بالبدء برقم. Python حساسة لحالة الأحرف، مما يعني أن المتغيرات "myVar" و "myvar" تعتبران مختلفتين. لا يمكن استخدام كلمات محجوزة مثل if و while و for كأسماء متغيرات. يُفضل اتباع بعض الممارسات الجيدة في تسمية المتغيرات: استخدم أسماء متغيرات واضحة ومعبرة توضح الغرض من المتغير. استخدم حروف صغيرة لأسماء المتغيرات وفصل الكلمات بواسطة الشرطة السفلية (snake_case). مثال: my_variable. لأسماء المتغيرات الثابتة والمتغيرات التي تعتبر خاصة بالصف تبدأ بحرف تسطيري واحد (underscore), وذلك للإشارة إلى أنها خاصة. مثال: _private_variable. يُفضل استخدام اختصارات لأسماء المتغيرات إذا كان ذلك يزيد من وضوح الكود، مثال: num_of_items يمكن تختصرها إلى num_items. name = "mustafa" التعبيرات الشرطية (Conditional Statements) استخدم تعبيرات شرطية مثل if, elif, و else للتحكم في تدفق البرنامج. if x > 10: print("x is greater than 10") elif x == 10: print("x is equal to 10") else: print("x is less than 10")
  25. ربما المشكلة تكمن في أنك تستخدم متغيرات محلية في شرط المقارنة، وتلك المتغيرات يتم حذفها بعد كل طلب من الصفحة، لذلك حتى لو كانت القيمة صحيحة في البداية، ستصبح غير صحيحة بعد ذلك. حاول استخدام متغيرات عالمية، حيث أن تلك المتغيرات لا يتم حذفها بعد كل طلب، لذلك ستظل صحيحة حتى لو قمت بإعادة تحميل الصفحة. كالتالي: // تعريف متغيرات عالمية $qINkg = $_POST['qINkg']; $sCustomercredit = $_POST['sCustomercredit']; // Check if the quantity is greater than the customer's credit if ($qINkg >= $sCustomercredit) { // Show an error message echo "The quantity is greater than the customer's credit."; exit; } وبخصوص jQuery الكود سيكون كالتالي: let qINkg = $(".qINkg").val(); let sCustomercredit = $(".sCustomercredit").val(); // Check if the quantity is greater than the customer's credit if (qINkg >= sCustomercredit) { // Show an error message Swal.fire( <?php echo json_encode($langs->trans('error')); ?>, <?php echo json_encode($langs->trans('invalidReturn1')); ?>, 'error' ); event.preventDefault(); return false; } أيضًا من الأفضل إضافة فحص إضافي للتأكد من أن المتغيرات ليست فارغة باستخدام الشرط التالي: PHP if (!empty($qINkg) && !empty($sCustomercredit)) { // Check if the quantity is greater than the customer's credit if ($qINkg >= $sCustomercredit) { // Show an error message echo "The quantity is greater than the customer's credit."; exit; } } JS: if (qINkg && sCustomercredit) { // Check if the quantity is greater than the customer's credit if (qINkg >= sCustomercredit) { // Show an error message Swal.fire( <?php echo json_encode($langs->trans('error')); ?>, <?php echo json_encode($langs->trans('invalidReturn1')); ?>, 'error' ); event.preventDefault(); // Prevent form submission return false; }
×
×
  • أضف...