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

عمر قره محمد

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

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

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

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

    40

كل منشورات العضو عمر قره محمد

  1. اهم ما يجب ان يوجد في الموقع الشخصي هو الـ cv الخاص بك بشكل pdf قابل للتحميل وكذلك اعمالك السابقة وروابط لتصفح هذه الاعمال في حال كانت مرفوعة على الانترنت. وبعد هذه الامور تأتي باقي مكونات الـ cv والتي يمكنك وضعها في موقعك الشخصي أو ان لا تضعها. وميزة الموقع الشخصي عن الـ cv هو انك يمكن عرض الـ cv الخاص بك مع ابهار بصري من ناحية التصميم. ويمكنك العثور على الكثير من الامثلة عن مواقع شخصية من خلال البحث عن العبارة Web developer portfolio templates في الانترنت. وقد يفيدك الاطلاع على النقاش التالي :
  2. مرحباً مروان، يمكنك فعل ذلك باستخدام الدالة التالية =CONCATENATE(MAP(A:A, B:B, LAMBDA(X , Y , IF(Y = 1, " "&X&" " , " ")))) CONCATENATE هي عبارة عن دالة تقبل مصفوفة من العناصر وتقوم بجمعها، =CONCATENATE(A1:A4) الدالة السابقة ستقوم بجمع كل العناصر من A1 حتى A4. MAP هي وظيفة تأخد عدة مصفوفات وتسمح لك بعمل LAMBDA لك عنصر من هذه العناصر بشكل حلقة تكرارية حيث في كل دورة يكون المعامل الاول والثاني ..إلخ (عدد المعاملات بحسب عدد المصفوفات) هو عبارة عنصر من هذه المصفوفات. أي أن LAMBDA في اول دورة ستأخذ A1 و B1 ليكونوا بدلاً من X و Y في الدالة التي ارفتها لك وفي الدورة الثانية A2 و B2 حتى تدور على كل المصفوفة المدخلة، وتقوم بإعادة الخانة الثالثة فيها والتي وضعت فيها الشرط التالي : IF(Y = 1, " "&X&" " , " ") والذي يقول : إذا كان Y وهو يعبر عن كل خانة من العمود C وفي الدورة الاولى سيكون C1 مساوياً لـ 1 قم بإرجاع X مع مساحة قبله وبعده " "&X&" " حيث الـ & هي الرمز الخاص بجمع النصوص و X هو يعبر عن كل خانة في العمود A وهو A1 في الدورة الاولى، وإذا لم يكن مساوياً للـ 1 يقوم بإعادة "" وهو عبارة عن نص فارغ. لاحظ النتيجة :
  3. هل يمكنك إيضاح سؤالك بشكل اكبر، هل الـ 20 الف نص هي تكرار لنفس الكلمة ؟ هل هي في خانة واحدة ؟ هل هي في عمود واحد ؟
  4. هل لديك node على جهازك ؟ جرب كتابة الأمر التالي في موجه الأوامر : node -v في حال حصلت على نتيجة تشبه التالي v16.13.1 فهذا يعني انه موجود، وإذا لم تحصل عليها فهذا يعني انك بحاجة لتنزيل node. حيث ان المشروع الخاص بك لايحتوي على اي package ويبدو انك لم تقم بإنشاء ملف package.json حتى.
  5. لا اظن ان هذه المشكلة سببها بطئ في npm أو node. غالباً المشكلة في سرعة شبكة الانترنت لديك، جرب الاتصال بشبكة افضل وحاول مرة اخرى. في بعض الاحيان يكون هنالك بعض المشاكل بسبب الموقع الجغرافي، يمكنك محاولة تشغيل بروكس VPN و المحاولة مرة ثانية.
  6. يمكنك انشاء state باسم refresh باستخدام useStete وتمرير الوظيفة الخاصة بها setrefresh إلى كل المكونات الفرعية. وفي اي وقت تريد تحديث الصفحة قم بتغيير قيمة الـ refresh بإضافة 1 إلى القيمة الاصلية.
  7. يمكنك فعل ذلك بالشكل التالي : <body> <form> <label for="userName"> ادخل الاسم هنا </label> <input type="text" id="userName" name="userName" minlength="3" maxlength="36" required /> <button id="button" type="submit">إرسال</button> </form> <script> const button = document.querySelector("#button"); const url = "http://localhost:3000/"; const handleSubmit = async (e) => { e.preventDefault(); const userName = document.querySelector("#userName").value; try { const response = await fetch(url + "name", { method: "POST", mode: "cors", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ userName }), }); console.log(await response.json()); } catch (error) { console.log(error); } }; button.onclick = handleSubmit; </script> </body> وسيرفر ال node يكون بالشكل : const bodyParser = require("body-parser"); const express = require("express") var cors = require('cors') const app = express(); app.use(bodyParser.urlencoded({ extended: false })) app.use(bodyParser.json()) app.use(cors()) app.get("/", (req, res) => { return res.status(200).json({ message: "express server working Successfully" }) }) app.post("/name", (req, res) => { console.log("hi"); const { userName } = req.body; return res.status(200).json({ message: "Successfully Registered", userName }) }) app.listen(3000, () => { console.log("server listening "); })
  8. JavaScript (يُشار إليها عادةً بالاختصار JS) هي لغة برمجة مُفسَّرة (interpreted، وليست مبنية compiled) وديناميكية وعالية المستوى؛ تُشكِّل أحد الأُسس التي ترتكز عليها صفحات الويب (إضافةً إلى HTML و CSS). تُستخدَم لغة JavaScript لإنشاء صفحات ويب تفاعلية، ولتوفير تطبيقات ويب بما في ذلك الألعاب؛ وهي مُستعمَلة من أغلبية المواقع، وتدعمها جميع المتصفحات تقريبًا دن الحاجة إلى إضافات خارجية. إنها تقنية أساسية لمواقع الويب الحديثة ولا يمكنك استخدام اي لغة اخرى للقيام بذلك. اكمل القرائة عنها من موسوعة حسوب فإذا كان توجهك نحو تطوير الويب فلايمكنك الاستغناء عن JavaScript ولاسيما ان كنت تريد ان تصبح طوراً للواجهات الامامية على وجه الخصوص، وقد يفيدك المقال التالي في حال كنت تميل لهذا المجال : أما ّإذا كنت تسأل لتدأ تعلم البرمجة بشكل عام فإنصحك بالاطلاع على الفيديو و المقال التاليين حتى تعرف ماهي اللغة التي تناسبك في مجال البرمجة : ومالقال :
  9. هنالك بالفعل طلب كبير على المبرمجين ولكن عليك العثور على الشركة المناسبة، لا يمكنك ان تكون مبدأ ومن ثم تذهب إلى الشركات الكبيرة. وكذلك فإن وجود cv جيد هو من الامور المهمة ايضاً، فتصور انك مكان صاحب العمل فهل سترضى ان توظف شخص ما لم يقم بتصميم موقع كامل من قبل، أو هل سترضى ان توظف شخص لتعلمه كيفية العمل ويمكنك توظيف شخص صاحب خبرة. وبالنسبة للشهادة الجامعية فبالتأكيد سيريد منك شهادة جامعية إن لم يكن لديك cv جيد فهو بحاجة إلى ما يثبت له انك على معرفة ولو بسيطة بهذا المجال، فهذا المجال ليس وظيفة بسيطة لتبدأ العمل ومن ثم تتعلم بل يجب ان يكون لديك درجة مبدئية من الخبرات (صممت موقع حقيق واحد على الاقل وعدة مواقع تدريبية). فالحل هو في امرين : 1 - قم ببناء cv جيد بالنسبة للوظيفة التي تريد التقدم لها. 2 - اعثر على شركة محلية كي تبدأ منها ومن ثم تدرج شيئاً فشيئاً وفي نفس الوقت الذي تبحث فيه عن وظيفة قم بالعمل الحر وابني ال cv الخاص بك بشكل تدريجي. عند التقدم لوظيفة معينة والرفض، قم بسؤالهم عن الامور التي يريدونها تحديداً وقم بتطوير هذه المهارات لديك. وكذلك فعليك ان تعرف كيف تروج لنفسك وتقنع مسؤول التوظيف بأن لديك الخبرات الكافية وأن لا تيأس من اول محاولا ولا من اول 10 محاولات قد يفيد الاطلاع على المقالة التالية والتي تظهر خريطة الطريق لمطور الخلفية ولتعرف ماهي الامور التي تنقصك : وهذه قد تفيدك ايضاً :
  10. يتم اضافات مسارات جديدة بشكل دوري في الأكاديمية ويتم تحديث المسارات الموجودة كذلك والمسارات السابقة تضاف لخانة المسارات الاقدم، وهي تحتوي على معلومات جيدة في كثير من الاحيان ويمكنك اعتبارها للاطلاع فقط وقد تكون مفيدة في تعلم بعض التقنيات القديمة و تفيد كذلك في التدرب على المعلومات التي تعلمتها في المسارات الفعلية. و لا يوجد داعٍ لمشاهدة أرشيف المسارات القديمة إذ ان مشاهدة المسارات الحديثة يُعد كافياً.
  11. قد تكون المشكلة من سرعة الاتصال بالأنترنت لديك، جرب استخدام فاحص خارجي مثل pagespeed
  12. هنالك عدة امور يمكنك فعلها واهمها هو الترويج للموقع وإلا فكيف سيعرف المستخدمين بوجود موقع يقدم مثل هذه الخدمة. وقد يفيدك الاطلاع على المقالات التالية في هذا المجال : وكذلك المقال التالي : وانصحك بمتابعة مقالات حاسوب في مجال التسويق حيث ستفيدك كثيراً في هذا المجال من هنا، ويمكنك البدء من سلسلة الاساسيات والتدرج بعد ذلك نحو المواضيع الاعمق. وكذلك من المهم تطوير الموقع بشكل جيد ولاسيما من ناحية seo حتى يظهر في محركات البحث وقد يفيد الاطلاع على المقالات التالية :
  13. يمكنك تحسين هذه الارقام من خلال رؤية المشاكل التي تظهر لك اسفل هذه الارقام وحلها كلها، حيث ان وظيفة هذا الفحص هو اظهار المشاكل الموجودة في الموقع الخاص بك وكذلك قد تؤثر احياناً الاستضافة التي ترفع الموقع عليها على هذه الارقام. فالحل هو الاطلاع على المشاكل وحلها و رفع الموقع على استضافة ذات مواصفات جيدة.
  14. لا نقوم بحل الاسئلة الامتحانية ، قومي بحل الاسئلة لوحدك وفي حال حصل معك خطأ ما فيمكنك مشاركة الخطأ الحاصل و الكود.
  15. لقد دخلت على الموقع بعد قراءة سؤالك ويبدو انه يعمل، تأكد من اتصالك بالأنترنت وجرب بروكسي وكذلك جرب فتح الموقع من متصفح مختلف
  16. اذا قم بالتدرب على حله وفي حال واجهتك مشكلة قم بمشاركة الكود والمشكلة التي تواجهها.
  17. لا يمكنني حل الاسئلة الامتحانية لك، ولكن قومي بمشاركة الكود الخاص بك وقد نساعدك في حل الاخطاء التي قد تواجهيها.
  18. يمكنك حل المشكلة بتعديل الوظيفة subCategoryProducts إلى الشكل التالي : const subCategoryProducts = (item) => { let subCategory = item.target.innerText.toUpperCase(); localStorage.setItem("category", subCategory); }; وتقوم بإضافة الكود التالي إلى صفحة الـ SubCategory.jsx : const [filteredData, setFilteredData] = useState([]); useEffect(() => { const subCategory = localStorage.getItem("category"); let subCategoryArray = data.filter((prod) => prod.category.toUpperCase() === subCategory); setFilteredData(subCategoryArray); }, []); ولا تنسى استدعاء كل من : import { useEffect, useState } from "react"; import data from "../../components/data"; ولكن سيظل هذا عبارة عن حل سريع، حيث ان الطريقة الافضل هي استخدام الـ dynamic routes حيث تحدد الـ category باستخدام الـ route وإذا لم تكن على دراية بها فأنصحك بالتعلم عنها واستخدامها.
  19. الـ useEffect يتم استدعائها مرة واحدة عند تحميل المكون عندما يكون الـ parameter الثاني يساوي []. وبالتالي فإنها سيتم استدعائها في كل مرة تقوم بفتح المكون Shop أو App وعند الانتقال بين الصفحات والخروج من المكون Shop سيتم اغلاقه وعند العودة إلى المكون Shop سيتم فتح المكون Shop مرة ثانية وبالتالي سيتم استدعاء الـ useEffect الخاص به. أما المكون App فلن يتأثر بالانتقال بين الصفحات لأنك لا تغلقه ولا تفتحه في عملية الانتقال فهو الاب لكل المكونات ويتم تحميله مرة واحدة عند تحميل الصفحة.
  20. هي يمكنك مشاركة ملفات المشروع حتى استطيع الاطلاع على المشكلة
  21. الفرق انه في طريقة الـ useEffect سيتم تنفيذ الأمر لمرة واحدة فقط عند تحميل الصفحة بينما في الطريقة الأخرى سيتم تنفيذ الأمر في كل مرة يحدث refresh للمكونات الخاصة بك. ولكن بما انه لا يوجد أي شيء يسبب الـ refresh في الكود الخاص بك فلا اعتقد انه يوجد فرق فعلي بين الطريقتان بالنسبة للكود الخاص بك. ويمكنك التأكد من ذلك باختبار الكود التالي : import { useEffect, useState } from "react"; export default function Home() { const [refresh, setRefresh] = useState(0); useEffect(() => { { console.log("hi from use effect"); } }, []); return ( <div> {console.log("hi from return")} <button onClick={() => setRefresh(refresh + 1)}>refresh</button> </div> ); }
  22. لقد راجعت الكود الخاص بك وهو يعمل على ما يرام، جرب حذف ملف الـ node-module ثم إعادة تنزيله باستخدام الأمر : npm i ثم جرب تشغيل المشروع مرة ثانية، فقد تكون المشكلة قد حدثت اثناء تنزيل الحزم في في node-module
  23. هي يمكنك مشاركة ملفات المشروع بالكامل ماعدا node-module
  24. هل يمكنك مشاكرة ملفات المشروع حتى استطيع الاطلاع على المشكلة.
×
×
  • أضف...