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

Hassan Hedr

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

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

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

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

    38

كل منشورات العضو Hassan Hedr

  1. حاول إعادة تشغيل ملف تنصيب Composer كمسؤول يبدو أنك تواجه مشكلة في صلاحية الوصول لبعض الملفات ضمن جهازك
  2. مبروك حصولك على الشهادة نتمنى لك التوفيق، التحقق يظهر أنك حصلت على الشهادة ومسجلة باسمك ولا يوجد على ما يبدو مشاكل تواصل مع مركز المساعدة في حال كانت لديك مشاكل أخرى
  3. الشهادة الرسمية تظهر لك عند وضع كود الشهادة والضغط على التحقق، وبهذه الطريقة يمكن لأي جهة التأكد من أن شهادتك حقيقية وممنوحة من قبل الأكاديمية، في حال كنت تواجه أي مشاكل أو لديك استفسارات بخصوص الشهادة تواصل مع مركز المساعدة واطرح استفسارك وسيتم مساعدتك
  4. الأفضلية نسبية، لكل لغة نقاط قوة ونقاط ضعف تقاس بعدة عوامل، أحيانًا تلك العوامل غير متعلقة باللغة نفسها حتى، من بعض العوامل التي تمكنك من تفضيل لغة على أخرى: نوع المشروع المراد تطويره، هل هو تطبيق ويب، واجهة أمامية، تطبيق جوال مهارتك باللغة نفسها المكتبات المتاحة والمجتمع حول اللغة متطلبات المشروع نفسه البنية التحتية للمشروع يجب تحديد أهدافك من اختيار اللغة حتى تتمكن من قياس أفضل لغة تناسب تلك الأهداف، يمكنك مراجعة أجوبة الأسئلة التالية فهي تعتمد نفس المبدأ:
  5. في حال كنت مبتدئًا في تطوير تطبيقات الويب يفضل التركيز على تطوير التطبيقات أولًا، بعد تمكنك من ذلك يمكنك أن تتعلم عن الاختبارات وكيفية بناءها وتنفيذها وحتى البدء بها لبناء التطبيقات، الاختبارات مفيدة في حال كان المشروع كبير نسبيًا أو مخطط أن يستمر لفترة طويلة أو في حال كنت تعمل ضمن فريق يمكنك الاستفادة من قراءة المقالات التالية لتتعرف على كيفية اختبار تطبيقاتك باستخدام Jest ومعلومات عامة عن اختبارات الوحدة Unit Tests
  6. لا مشكلة في الجمع بين مجالين أو أكثر في حال كان لديك الوقت الكافي لدراستهما بشكل جيد، تنسيق الوقت يفيدك كثيرًا في ذلك، وفي حال كنت تهدف من دراستك للمجالين دخول سوق العمل ركز على التدريب العملي على مشاريع وهمية تحقق لك أكبر مردود تعليمي عملي ممكن، أما إذا كانت دراستك أكاديمية تنظيم وقتك سيساعدك في ذلك والأساس وجود الوقت الكافي والمدة الزمنية اللازمة خلال السنوات القادمة لتغطية ذلك، يمكنك الاستفادة من قراءة المقالات التالية:
  7. يجب التحقق من إنشاء الاتصال بنجاح مع قاعدة البيانات بعد استدعاء التابع mysqli_connect، قد يحدث عدة مشاكل تسبب فشل الاتصال كأن تكون قاعدة البيانات لا تعمل بالأساس تأكد من ذلك أولًا، ثم أضف الشيفرة التالية والاستفادة من التابع mysqli_connect_errno بعد استدعاء التابع mysqli_connect لمعرفة ما إذا تم الاتصال بنجاح وطباعة رسالة توضح السبب والخروج من البرنامج في حال ذلك: // انشاء الاتصال @$conn = mysqli_connect($host,$username,$pass,$dbname); // التحقق من صحة الاتصال if (mysqli_connect_errno()) { echo "فشل الاتصال بقاعدة بيانات MySQL: " . mysqli_connect_error(); exit(); // الخروج من البرنامج مباشرةً }
  8. يمكنك تنفيذ الأمر التالي الذي سيعدل ملف قائمة المصادر etc/apt/sources.list/ ويضيف universe لنهاية أسطر المصادر المتاحة لديك: sudo add-apt-repository universe بعد تفعيل المستودع نفذ أمر تحديث قوائم الحزم sudo apt-get update يمكنك الاستفادة من قراءة المقال التالي:
  9. تواصل مع مركز المساعدة من هنا وسيخبروك بمكان رفعها ويساعدوك في ذلك الأمر
  10. مبروك اتمامك الشهادة نتمنى لك التوفيق، لا مشكلة في ذلك كما ذكر لك يجب إضافة هوية والدك وشهادة ميلادك، تواصل مع مركز المساعدة من هنا واشرح لهم مشكلتك في إضافة شهادة الميلاد وانتظر الرد وسيساعدوك في تلك العملية
  11. توجه إلى حسابات حسوب واختر توثيق الهوية هنا تملئ البيانات باسمك وتاريخ الميلاد بعدها ترفع صورة الهوية أو شهادة الميلاد راجع الفيديوهات التالية وأقرأ قسم توثيق الهوية من هنا لمعرفة الخطوات بشكل تفصيلي أكثر: في حال لا زلت تواجه مشاكل في عملية التوثيق تواصل مع مركز المساعدة واطرح المشكلة التي تواجهها وسيقومون بمساعدتك
  12. يمكنك طرح استفسارك هنا في موقع الأكاديمية وسيتم الإجابة عليه ممن لديه الخبرة، يشترط إرفاق الشيفرة المراد السؤال عنها وتوضيح مشكلتك أو استفسارك باللغة العربية لتحصل على إجابة جيدة لسؤالك، يمكنك قراءة التعليمات من هنا
  13. في حال كانت المصفوفة ببعدين كالمصفوفة السابقة، يمكنك الاستفادة من التابع array_column لتحديد العمود الذي تريد البحث ضمنه وبالتكامل مع التابع in_array تستطيع البحث ضمن المصفوفة، لنفرض أنك تريد البحث عن اسم المستخدم تكون عملية البحث كالتالي: $username_exists = in_array('Saif Al Deen', array_column($userdb, 'username')); وفي حاال كانت عملية البحث أعقد وتعتمد على عدة أعمدة معًا يمكنك المرور على عناصر المصفوفة واختبار قيمها كالتالي: foreach($userdb as $user){ if($user['username'] === 'emad saif' && $user['email'] === 'emad@gmail.com'){ // المستخدم موجود } } يمكن تضمين العملية السابقة ضمن تابع لسهولة الاستخدام وجعل الشيفرة مقروءة بشكل أكبر كالتالي: function user_exists($users, $username, $email){ foreach($users as $user){ if($user['username'] === $username && $user['email'] === $email){ return true; } } return false; } // .. $exists = user_exists($userdb, 'emad saif', 'emad@gmail.com');
  14. أي قيم أخرى يمكن تعديلها مثلًا النصوص كالتالي: ["a", "b", "c"].map(item => item + "1"); // ["a1", "b1", "c1"] أو الكائنات كالتالي: [{ age: 20 }, { age: 21 }, { age: 22 }].map(item => { item.age +=5; return item; }); // [{ age: 25 }, { age: 26 }, { age: 27 }]
  15. كلا التابعين يتبعان للصنف Array ويستخدمان للتعامل مع المصفوفات، forEach يستخدم للمرور فقط على عناصر المصفوفة وتنفيذ عملية ما دون التأثير على عناصر المصفوفة، كأن نطبع محتوى المصفوفة إلى console [1, 2, 3].forEach(item => console.log(item)); // 123 map يستخدم للمرور على عناصر المصفوفة ومعالجتها وتبديلها، أي عناصر المصفوفة الناتجة مختلفة عن الأصلية، كأن نغير قيمة كل عنصر مثلًا بضربه بعنصر آخر [1, 2, 3].map(item => item * 2); // [2, 4, 6]
  16. يمكن ذلك بالاستفادة من التابع onEachside الذي يحدد عدد روابط الصفحات التي ستظهر على كل طرف من زر الصفحة الحالية، يمكن تمرير 5 كمعامل له وسيتم إظهار 5 روابط على كل طرف من رابط الصفحة الحالية: $query->paginate(15)->onEachSide(5); يمكنك الاستفادة أيضًا من قراءة المقال التالي:
  17. عمومًا يمكن تحديد نوع الخطأ المراد التقاطه باستخدام Type Hinting، يمكنك الاستفادة من ميزة Type Hinting بتحديد عدة أنواع محتملة للمتغير لتحديد أنواع الأخطاء التي تريد التقاطها، يتم ذلك بفصل تلك الأنواع بالمحرف "|"، يمكنك التقاط كلا الخطأين AError و BError كالتالي: try { // ... } catch( AError | BError $e ) { // ... }
  18. يمكنك الاستفادة من التابع prompt لتلقي المدخلات من المستخدم وتخزينها ضمن المصفوفة عن طريق التابع push كالتالي: const array = []; array.push(prompt('أدخل قيمة')); ولإدخال أكثر من قيمة يمكنك الاستفادة من حلقة for لتكرار تلك العملية بعدد عناصر المصفوفة التي تريد إضافتها كالتالي: const array = []; for(var i=0; i<3; i++){ array.push(prompt('أدخل قيمة')); } يمكنك التطوير أكثر على الفكرة: طباعة محتويات المصفوفة في النهاية ضمن console جعل طول المصفوفة يحدده المستخدم، بأن تتلقى من المستخدم عدد محتوياتها أولًا ثم تجعل حلقة for تتكرر بحسب ذلك العدد
  19. يمكنك الدخول في أكثر من مجال لا مشكلة في ذلك سيزيد ذلك من مهارتك ويدعم كل مجال الآخر حيث يوجد دومًا تقاطعات بين تلك المجالات، لكن يفضل التركيز على تعلم مجال واحد بمفرده لتجنب التشتت أي حاول إنهاء دورة تطوير الواجهات الأمامية بنجاح ثم اختر مجالًا آخر تبدأ به لا مشكلة في ذلك بالتوفيق
  20. يمكن ضمن ملفات Blade إدراج وسم يحوي رمز csrf ضمن head كالتالي: <meta name="csrf-token" content="{{ csrf_token() }}"> وضمن ملفات جافاسكريبت يمكن الاستعلام عن قيمته لإرفاقه ضمن طلب AJAX باستخدام JQuery كالتالي: const csrfToken = $('meta[name="csrf-token"]').attr('content');
  21. تدرب كثيرًا لتواجه مشاكل جديدة دومًا وفكر في حلول لها وابحث بنفسك وأسأل في حال لم تجد الحل، طبق مشاريع كاملة صغيرة خارجية توظف فيها ما تعلمته لفهمه بشكل أكبر، تطبيق المشاريع هو أكثر ما يغني معرفتك ضمن أي مجال، حاول تنفيذ وتقليد واجهات أو مكونات أعجبتك على الإنترنت. حاول فهم الأفكار الجديدة وتجنب حفظها وكرر تنفيذها ضمن أكثر من فكرة لزيادة الفهم وطريقة التنفيذ، لا تركز كثيرًا على الأدوات فهي دائمة التغيير ركز على الأفكار الأساسية التي توظفها. يمكنك الاستفادة من قسم "نصائح لتعلم البرمجة" ضمن المقال التالي:
  22. الصور الموجودة ضمن موقع Pinterest ليست مستضافة ضمنه بل هي تجميع من قبل المستخدمين من مصادر ومواقع متعددة لكل منها حقوق ملكية مختلفة لتلك الصور، للتأكد من أي صورة تود استخدامها ادخل إليها واضغط على اسمها وسيتم فتح الموقع المصدر لها، هناك حاول البحث عن حقوق ملكية استخدام تلك الصورة
  23. هل كان يعمل المشروع من قبل، بما أنك تستخدم إصدار 5 webpack فيجب استخدام الإضافة css-minimizer-webpack-plugin بدلًا من optimize-css-assets-webpack-plugin بدل ذلك في اعتماديات المشروع وأعد عملية التثبيت مع الحرص على استخدام الاضافة الجديدة بدل من القديمة بشكل صحيح ضمن webpack.config.js
  24. حاول تنفيذ الأمر كالتالي: npm install --ignore-scripts --legacy-peer-deps
  25. هذا الخطأ لا علاقة له بالسؤال الأساسي، حاول تنفيذ أمر التثبيت كالتالي: npm install --ignore-scripts
×
×
  • أضف...