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

محمد أيت لعرايك

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

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

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

كل منشورات العضو محمد أيت لعرايك

  1. المشكلة ليست في المشروع المشكلة في Eclipse. يجب أن تحاول تنظيفه بالنقر على Project -> Clean . سوف يزيل جميع ال classes ويعيد بناء المشروع مرة أخرى . يمكنك معرفة المزيد عن كيفية نتظيف Eclipse من هنا
  2. تعمل الدالات غير المتزامنة async على إرجاع قيمة Promise ، وهو مكون من شأنه أن رجعة قيمة معينة أو أن يرجع قيمة خطا (error) . يعني أن await تطلب من البرنامج التوقف وإنتظار قيمة promise. في بعض الأحيان نضطر أن نستعمل await داخل حلقة loop مثلا: const fruits = ['apple', 'grape', 'pear'] console.log('بداية') for (let index = 0; index < fruits.length; index++) { const fruit = fruits[index] // لنفترض أن هذه دالة تقوم بجلب إسم فاكهة معينة من الخادم const fruitInfo = await getfruitInfo(fruit) console.log('fruitInfo') } console.log('نهاية') } //--------------- نتيجة هذا الكود سوف تكون كالتالي --------------- /* 'بداية' 'Apple' 'Grape' 'Pear' 'نهاية' */ في هذه الحالة await تعمل بالشكل المطلوب كما تريد أن تكون في الكود الخاص بك لكن في حالة كانت getfruitInfo تحتاج إلى callback كمعطى parameter فلن تعمل الحلقة كما يبغي لأن في الحلقة loop يوجد مجموعة من promises لم تنتهي بعد ولذلك تظهر process finished قبل نهاية الحلقة والحل هو إستخدام await Promise.all(arrayOfPromises). وبالتالي الكود الخاص بك يجب أن يكون على الشكل التالي: exports.placeOrders = async (socket, orders) => { for await (order of orders){ console.log("Order ID: " + order.id); socket.emit('requestOrderDetails', order.id); const promises = await socket.on('getDetails' , async (response) => { console.log("order details:" + response); }) } // pormises هنا يجب أن نجبر البرنامج على التوقف حتى نهاية جميع const details = await Promise.all(promises) console.log("Process Finished); }
  3. visual studio 2013 يعمل ب web tools الخاصة به لا يمكن تحديث web tools ومن بينها browser لدا أنا أقترح عليك الطريقة التالية: 1- قم بحفظ المشروع الخاص بك 2- حمل visual studio 2019 من هنا 3- إفتح المشروع الخاص بك في visual studio 2019 تذكر أنه لايمكن تحديث من visual studio 2013 إلى 2019 مباشرة, إدا كنت تريد التحديث المباشر دون تحميل vs 2019 فوجب عليك التحديث من 2013 vs إلى vs 2017 ثم من vs 2017 إلى vs 2019
  4. يمكن كتابة جميع routes في ملف واحد routes.js هكدا import React from 'react'; import { Router, Route } from 'react-router'; import { Template1, Template2, Template3 } from './templates'; const createRoutes = () => ( <Router> <Route exact path="/sessionstate1" component={Template1}/> <Route exact path="/sessionstate2" component={Template2}/> <Route exact path="/sessionstate3" component={Template3}/> // أضف هنا االروتس التي تحتاج إليها </Router> ); export default createRoutes بعد ذلك يمكن تحميل routes في ملف index.js هكذا import ReactDOM from 'react-dom'; // تحميل routes import createRoutes from './routes'; const routes = createRoutes(); ReactDOM.render( routes, document.getElementById('root') );
  5. إدا كنت مبتدء وتريد أن تصبح مطور واجهات المستخدم فعليك أن تتمكن أولا من اللغات الأساسة لتصميم واجهات المستخدم وهنا أتحدث عن : - HTML, CSS, JavaScript بعد ذلك يمكنك الإختيار من بين أطر العمل الشهيرة مثل VueJs / AngularJs / ReactJs ومن الأفضل أيضا إدا كنت تود أن تكون مبرمج محترف أن تتعلم أدوات المطور والتحكم في الإصدار git و تعلم كيفية كتابة الاختبارات للتطبيقات وتجربتها أما بخصوص/ LARAVEL / WORDPRESS فهي تعتمد أساسا على لغة PHP الخاصة بالخادم ولن تفيدك بشيء إدا كنت تود العمل كمطور واجهات المستخدم
  6. VueJs / AngularJs / ReactJs تسمى أطر العمل (framework ) للغة البرمجة javascript لكن لمادا نحتاج أطر العمل (frameworks) مادام عندنا لغة برمجة؟ إن فكرة إنشاء مواقع الويب وتطبيقات الويب مثل بناء منزل - عندما تبدأ في بناء منزل ، يمكنك إنشاء جميع مواد البناء الخاصة بك من البداية والبدء في البناء دون أي مخططات ، ولكن هذا النهج سيكون مضيعة للوقت بشكل لا يصدق ولا لا معنى له كثيرا. من الأرجح أنك ستشتري مواد بناء مسبقة الصنع (خشب ، وطوب ، وأسطح عمل ، وما إلى ذلك) ثم تجميعها بناءً على مخطط يلائم احتياجاتك الخاصة. البرمجة مشابه جدًا لعملية البناء . عندما تبدأ في برمجة موقع ويب ، يمكنك برمجة كل جانب من جوانب هذا الموقع من البداية ، ولكن هناك بعض ميزات مواقع الويب الشائعة التي يكون من المنطقي تطبيقها من أحد النماذج - إذا كنت بحاجة إلى عجلة ، على سبيل المثال من المعقول شراء واحدة بدلاً من إعادة اختراعها. وهنا يأتي دور أطر عمل جافا سكريبت(frameworks) في أبسط صورها ، تعد أطر عمل javascript مجموعات من مكتبات JavaScript البرمجية التي تزود المطورين بكود javascript جاهز مسبقًا لاستخدامه في ميزات ومهام البرمجة الروتينية - التي يحتاجها المبرمج لبناء تطبيق أو موقع إلكتروني
  7. لحل هذه المشكلة يجب عليك إتباع هذه الخطوات: 1) قم بتحديث إصدار PHP الخاص بك لاخر إصدار , إدا كنت تستخدم wamp كخادم محلي يمكنك فقط تغيير إصدار php من الإعدادات 2) قم بتعطيل / التعليق "xdebug" في ملف php.ini الخاص بك إذا كان موجودًا. ثم حاول تجربة الأمر مجددا , إن لم يعمل فجرب هذه الطريقة إفتح terminal و قم بتنفيد الأامر التالية rm -rf vendor/ rm -rf composer.lock php composer install --prefer-dist ثم جرب الأمر مرة أخرى . إدا لم ينجع الأمر قم بتحميل الإصدار القديم ل composer وقد يكون هذا حالا للمشكلة يمكنك تحميل الإصدارات القديمة ل composer من هنا https://getcomposer.org/download/
  8. نعم. يمكن استخدام Python لبرمجة Arduino ، ببساطة عن طريق استيراد pyfirmata ، والتي يمكنها ربط اردوينو مع Python. يمكنك أن تتعلم من C (AVR) كيفية عمل المستشعرات ولكنها تحتاج إلى مزيد من الوقت للتعلم . لتتمكن من العمل ب Python مع Arduino تتبع الخطوات التالية: - قم بإضافة Firmata على Arduino. - اكتب البرمجة التي تريد بلغة Python. - والان يمكنك التحكم في المدخلات والمخرجات الخاصة بـ Arduino.
  9. بطء الموقع الإلكتروني يرجع إلى عدت أسباب من بينها : صور الكبيرة الحجم والغير المحسنة : يمكن أن يؤدي تحميل الصور الأكبر حجمًا ثم تصغيرها إلى زيادة حجم صفحة الويب دون داعٍ - مما يؤدي إلى بطء تحميل موقع الويب الخاص بك. مشاكل javascript : إذا تم برمجة جافا سكريبت بشكل غير صحيح ، فيمكن أن يعيق سرعة تحميل صفحات موقعك على الويب طلبات HTTP الزائدة : يمكن أن يؤدي وجود الكثير من ملفات JavaScript و CSS وملفات الصور إلى العديد من طلبات HTTP. عندما يزور المستخدم صفحة الويب الخاصة بك ، يقوم المتصفح بتنفيذ عدة طلبات لتحميل كل من هذه الملفات - مما قد يقلل بشكل كبير من سرعة تحميل الصفحة. عدم الاستفادة من تقنيات التخزين المؤقت : من المعروف أن التخزين المؤقت يحسن أداء مواقع الويب بسرعة فائقة. إذا كنت لا تقوم بالتخزين المؤقت ، فستفقد الكثير. إنها تقنية تتيح لك تخزين نقاط البيانات المستخدمة بشكل متكرر في "الذاكرة المخبأة". كود غير نظيف : سبب آخر شائع لبطء موقع الويب هو الترميز غير النظيف. عندما تقوم بإنشاء موقع الويب الخاص بك ، فإن المساحات البيضاء الزائدة والأنماط المضمنة والأسطر الجديدة الفارغة والتعليقات غير الضرورية يمكن أن تجعل حجم ورقة أنماط موقع الويب أكبر. عدد كبير جدًا من الإعلانات: لا شك في أن الإعلانات المصوّرة تعتبر رائعة لتحقيق الدخل من مواقع الويب عالية الحركة. ولكن لا ينبغي أن يكون ذلك على حساب الأداء الضعيف أو تجربة المستخدم. لا تجعل الكثير من الإعلانات سببًا آخر لبطء موقعك على الويب! استضافة سيئة: يُحدث مزود خدمة استضافة الويب فرقًا كبيرًا عندما يتعلق الأمر بأداء موقع الويب. نعم ، قد لا تكون سرعة تحميل الصفحة التي تكون أبطأ من المتوسط هي خطأك بالكامل. فيجب عليك إختيار إستضافة قوية تمكن الموقع من الظهور في المتصفح بسرعة أكبر
  10. المُنشئ ، constructor في البرمجة الكائنية هي دالة خاصة يتم النداء عليها أثناء إنشاء مثيل (instance) و يسمح بتخصيص الذاكرة اللازمة للكائن وتهيئة سماته (attributes) أما Firebase فهو مجموعة من خدمات الإستضافة لأي نوع من أنواع التطبيقات فهي توفر خدمات متعددة من بينها : قاعدة بيانات Realtime - في الوقت الفعلي ، مستضافة على السحابة ، قاعدة بيانات NoSQL خدمة الاشعارات تسجيل دخول المستخدم وهويته التخزين السحابي - تخزين ملفات قابل للتطوير و لتخزين البيانات في firebase فمن الضروري عمل constructors على حسب ما تود تخزينه في قاعدة البيانات مثلا في لغة java نكتب public static class User { public String date_of_birth; public String full_name; public String nickname; public User(String dateOfBirth, String fullName) { // ... } public User(String dateOfBirth, String fullName, String nickname) { // ... } } DatabaseReference usersRef = ref.child("users"); Map<String, User> users = new HashMap<>(); users.put("alanisawesome", new User("June 23, 1912", "Alan Turing")); users.put("gracehop", new User("December 9, 1906", "Grace Hopper", "happy man")); usersRef.setValueAsync(users); وسوف تخزن المعلومات على الشكل التالي { "users": { "alanisawesome": { "date_of_birth": "June 23, 1912", "full_name": "Alan Turing" }, "gracehop": { "date_of_birth": "December 9, 1906", "full_name": "Grace Hopper", "nickname": "happy man" } } }
  11. StrictMode هي ميزة تمت إضافتها في الإصدار 16.3 وتهدف إلى مساعدتنا في العثور على المشكلات المحتملة في أحد التطبيقات. كيفية أستعمال ميزة StricMode في تطبيق React : كل ما عليك فعله لتفعيل StrictMode (من الإصدار 16.3) هو لف المكون الذي تريده في تطبيقك بـ <React.StrictMode>. فيما يلي مثال على إضافة StrictMode إلى مكون (component) : import React from 'react'; function ExampleApplication() { return ( <div> <Header /> <React.StrictMode> <div> <ComponentOne /> <ComponentTwo /> </div> </React.StrictMode> <Footer /> </div> ); } بعد القيام بذلك مباشرة ، ستتمكن من رؤية التحذيرات في وحدة تحكم أدوات المطور. وهذا سبب ظهور التنبيه في console الخاص بك
×
×
  • أضف...