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

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

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

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

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

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

    11

أجوبة بواسطة عبدالباسط ابراهيم

  1. في حالة أن الموقع frontend فقط ستحتاج عند إضافة منتج مثلاً التعديل في الكود وإعادة رفعه ولذلك يسمى هذا النوع من المواقع مواقع ثابته أي ال frontend والحل للتغيير في الموقع مثل إضافة منتج أو حذفه أو التحكم في محتوى الموقع يتم ذلك من خلال ال backend بحيث سيتم ظهور محتوى الموقع بناء على البيانات الموجودة في قواعد البيانات بحيث عند التغيير في البيانات ستتغير محتويات الموقع تلقائياً ويمكننا التحكم في الموقع عن طريق بناء لوحة تحكم للموقع dashboard

    وهذا النوع من المواقع يسمى نظام إدارة محتوى CMS وربما تربط هذا المصطلح بال wordpress وذلك صحيح حيث أن ال wordpress هو CMS 

  2. بناء الألعاب من أصعب المجالات في البرمجة حيث تحتاج لبناء لعبة لمصمم لتصميم الشخصيات وبالطبع مبرمج وستحتاج لمهندس صوتيات  و العديد من المهام الأخرى ولبناء لعبة كبيرة وضخمة تحتاج لشركة وليس فرداً واحداً

    ولكن هناك طريق أكثر سهولة ويمكنك أيضاً من بناء ألعاب على مستوى كبير وهو محركات الألعاب حيث توجد بعض المحركات مثل unreal و unity وهذه المحركات توفر لك الكثير من المهام حيث تجد شخصيات وتصاميم جاهزة ستحتاج فقط لبرمجة اللعبة باستخدام لغة برمجة التي يعمل بها المحرك فمثلاً

    • unity تحتاج لتعلم لغة برمجة #c ويعتبر محرك قوي لبناء الألعاب الكبيرة وتوجد بالفعل العديد من الألعاب المشهورة باستخدام هذا المحرك
    • unreal يعتبر هذا المحرك من أفضل المحركات إن لم يكن الأفضل ويتحتاج للغة البرمجة ++c للتعامل مع هذا المحرك للعلم تم بناء لعبة Pubg باستخدام هذا المحرك

     

  3. بتاريخ 19 دقائق مضت قال Ahmed Khaled18:

    تمام هل الmaterial UI يوجد بيه نظام الأعمدة والنظام الشبكي مثل bootstrap؟؟؟ 

    يوفر لك ال material UI نظام يعتمد على ال flexbox ولكن طريقته مختلفه عن ال bootstrap قليلاً لذلك أنصحك بالقراءة عنه من الموقع حيث يختلف عن ال bootstrap بعض الشئ

    • أعجبني 1
  4. يوجد العديد من الإطارات المستخدمة مع react ويمكنك استخدام الإطار المفضل بالنسبة لك ولكن من الإطارات الشائعة 

    • Material UI يوفر لك هذا الإطار الكثير من ال components ويعتبر من أشهر وأفضل الإطارات المستخدمة مع ال React إن لم يكن أفضلهم ويتبع هذا الإطار التوصيات المتبعة من  Google’s Material Design
    • React Bootstrap من الإطارات الجميلة أيضاً

    • Semantic UI

    • React Foundation مثل ال react- bootstrap  هذا الإطار يعتمد على إطار Foundation 

    ويمكنك أيضاً استخدام الإطار tailwind وهو إطار css ولكن يمكنك استخدامه مع React بدون مشاكل وهو إطار جميل جداً أنصحك بالإطلاع عليه

  5. دورة علوم الحاسوب هي مدخل ولتعلم علوم الحاسوب عموماً فتبدأ معك ب 

    • حول علوم الحاسوب
    • أساسيات البرمجة
    • أنظمة التشغيل 
    • قواعد البيانات 
    • الويب

    لكل مسار من المسارات السابقة مجال واسع ومتفرع فمثلاً أنظمة التشغيل عي فرع من علوم الحاسوب وكذلك مجال ال IT فهو مجال كبير ومتفرع لعدة مجالات أخرى ولا يمكن لدورة واحدة أن تكفيه و تعتبر هذه الدورة مدخل لعلوم الحاسوب وبما في ذلك أساسيات ال IT فستتعلم قواعد البيانات أساسيات الويب أساسيات البرمجة و أنظمة التشغيل وهذه تعتبر من أساسيات مجال ال IT أيضاً

    ولكن نرجع للسؤال هل دورة علوم الحاسوب هى مجال الIT المتعارف عليه فى سوق العمل؟؟؟ 

    ليست هذه الدورة مختصة بال IT تحديداً إنما علوم الحاسوب عموماً

  6. كما وضح يوسف في التعليق السابق فما تريد هنا يسمى event delegation ولكن ماذا يحل هذا المصطلح ؟ 

    كما قلت فالعنصر لم  يكن موجود عند إنشاء ال DOM لذلك عندما قمت بطباعة العنصر 

    console.log(document.querySelectorAll('select#products option'));

    لم يظهر شئ لذلك الحل يكون عن طريق وضع ال event على العنصر الأب لأنه موجود وسيتم إضافة نفس ال event للعناصر بداخله وذلك يسمى event bubbling 

    إذا لا تقوم بإضافة الحدث لل options بل للعنصر الأب وهو في حالتك ال "select#products"(إذا كان موجود في ال DOM مسبقاً)

    فمثلاً تريد إضافة الحدث click لل options ستقوم بإضافة هذا الحدث لل select#products كالتالي

    document.querySelector('select#products').on('click',function(event){
      //event.target عن طريق options  يمكنك هنا تحديد الحدث لل 
      if(event.target.tagName === "OPTION" ){
         	//your code
         }
    )

     

  7. بتاريخ 1 دقيقة مضت قال جوزيف ناثان:

    شكرا للرد 

    لو تطبيق اورد زي طلبات او المنيو  للـــــاندرويد فقط كم يكون سعره

    تطبيق شات مثل واتس اب للــــاندرويد فقط كام يكون سعره

    هل يمكنك ارفق لينك لامثله للاسعار من مواقع العمل للمستقلين ؟

    و هل يقاس بالوقت ايضا اذا طلب مميزات فريد مثل اضافة مكلمات صوتية مثل واتس اب

    يمكنك البحث في موقع مستقل كمثال وستجد العديد من التطبيقات المشابه لما تريد ما عليك إلا البحث في المشاريع المطروحة

    أما بالنسبة للميزات الفريدة فيمكنك أيضاً الحساب بالوقت ولكن إذا كان تطبيق يحتاج للكثير من الإحترافية والخبرة فالطبع ستقوم بزيادة سعر الساعة لديك فلا يوجد سعر موحد للساعة لدى كل المبرمجين فيمكن أن تصل سعر الساعة لدي المبرمجين المحترفين ل 50$ ويمكن أن تصل ل 100$ فيعتمد علة خبرة المبرمج

  8. يعتمد ذلك أولاً على نوع التطبيق هل هو تطبيق ويب تطبيق أندرويد تطبيق ios أو تطبيق متعدد المنصات فالسعر يخختلف على حسب التقنية المستخدمة التقنية المستخدمة

    • يمكن للمبرمج  تقدير الوقت المطلوب لتنفيذ التطبيق حيث ربما قام قبل ذلك ببناء تطبيق مشابه لذلك يكون على دراية بالوقم المطلوب
    • بالنسبة للأسعار فتختلف على حسب التطبيق ولكن عموماً يمكنك معرفة ذلك من خلال الإطلاع على الأعمال والمشاريع المشابه للتطبيق على منصات العمل الحر حتى تعرف متوسط الأسعار ويمكنك أيضاً تقدير سعر التطبيق من خلال  حساب عدد الساغات المطلوبة لبناء التطبيق مضروبة في سعر الساعة لدى المبرمج وأعتقد أن هذه الطريقة أفضل وعادلة للطرفين
  9. ملفات ال sass التي نقوم بكتابتها في اي مشروع webpack أو غيره سواء كان ملف واحد أو أكثر سوف تترجم إلى css أي بمعنى أن ملفات ال sass لن يفهمها المتصفح وبالتالي لن نرفع هذه الملفات إلى الإستضافة وبالإضافة للتعليق السابق فإنه يمكنك تقسيم ملفات ال sass إلى مكونات صغيرة مثل صفحة لل header وصفحة لل navbar وأيضاً لكل صفحة html صفحة sass ويمكنك تقسيمها حسب ماتريد ولكن في الأخير سيكون ملف css واحد 

    • أعجبني 1
    • ال GraphQl  هي لغة إستعلام لجلب البيانات من السيرفر عن طريق ال api وهي إختصار لل application programming interface وتعتبر تقنية جديدة عن ال rest
    • strapi هو headless cms ويعني ببساطة نظام إدارة محتوي مثل ال wordpress ولكن يختلف عنه أنه يقوم بالتواصل مع ال frontend من خلال ال api فقط للعمل مع الإطارات مثل react  على عكس wordpres
    • Gatsby هو static site generator وهو مخصص لل react يمكنك من بناء مواقع ديناميكية ولكن بدون استخدام قواعد البيانات وبالتالي بدون استخدام أي لغة backend
    • أعجبني 1
  10. للعمل على محرك الألعاب unity

    • ستحتاجين لتعلم لغة البرمجة #c ويوجد أيضاً لغة أخرى ولكن لغة #c هي الأفضل والمنتشرة في الشروحات على الإنترنت 
    • تعلم كيفية استخدام المحرك نفسه ويمكنك أن تجدي الكثير من الدورات عليك فقط البحث عن الدورات للمحرك ويوجد دورات على موقع المحرك نفسه يمكنك الإطلاع عليها

    يمكنك البدأ ببناء اللعبة وربما تجدي دورة تعليمية يقوم المدرب فيها ببناء نفس اللعبة التي تريديها

    إن واجهتك أي مشكلة يمكننا المساعدة

  11. عموماً أي تعاملات على الإنترنت الأفضل استخدام paypal أو أي خدمة مشابهه له ويعتبر paypal الأفضل وذلك لأن معظم البنوك تضع قيوداً وصعوبات للتعامل على الإنترنت

    وبالنسبة للعمل على الإنترنت فمعظم منصات العمل الحر تضع paypal الخيار الأفضل والأول عند سحب الأموال وبالنسبة لمنصة مستقل فتتعامل فقط مع paypal ولتفعيل paypal في مصر عدة بطاقات  قليلة لتفعيل paypal منها بطاقة easypay من البريد المصري وتعمل معي بدون مشاكل

    • أعجبني 1
  12. أولاً fetch دالة جاهزة في ال javascript بينما axios مكتبة تحتاج لإستدعائها

    بالطبع ليس خطأ والفرق بينهما بسيط ويمكن لكلاهما القيام بنفس الشئ والفرق بينهما

    • fetch لا تدعم IE 11 بينما axios تدعمه
    • عند عمل request يجب أن تقوم بتنفيذ الدالة  json() function لل response بينما لا نقوم بذلك في axios
    • يجب عليك تحويل ال object ل json في ال fetch بينما لا نقوم بذلك في ال axios
    • أعتقد أنه لا يمكنك العمل مع ال service worker لل PWA باستخدام axios فقط fetch

    لذلك يمكنك استخدام كلاهما بدون مشاكل ولكن في التطبيقات الكبيرة ربما تسهل ال axios العمل عن ال fetch

    • أعجبني 4
  13. أولاً يمكنك في python 3 استخدام super كالتالي

    class Child(SomeBaseClass):
        def __init__(self):
            super().__init__()

    ثانياً في المثالين السابقين ستكون النتيجة واحدة ولكن الفرق بينهما؟

    أن في الحالة الأولى لا تحتاج لكتابة SomeBaseClass وبالتالي توفر لك فائدة الوراثة من أكثر من class كالتالي

    class First(object):
        def __init__(self):
            super(First, self).__init__()
            print("first")
    
    class Second(object):
        def __init__(self):
            super(Second, self).__init__()
            print("second")
    
    class Third(First, Second):
        def __init__(self):
            super(Third, self).__init__()
            print("third")
            
    

     

    • أعجبني 1
  14. أولاً تطوير المواقع بستخدام لغة ال php ليست محدودة ومقتصرة على ال cms وأجد أنك تتحدث عن ال wordpress ولكن ال wordpress هو cms أي أنك تحصر إمكانيات اللغة البرمجية  في ال wordpress وللعلم تستطيع عمل أي موقع تريده باستخدام ال php ويمكنك استخدام الإطار laravel بدلاً من wordpress إذا كنت لا تريد بناء موقع cms

    ويمكنك أيضاً بناء api للموقع عن طريق php ولكن هناك خيار يناسب التطبيقات التي تريد بنائها وهو ال node js فيمكنك من خلالها بناء ال api بشكل أفضل وأسهل من ال php

      

    • أعجبني 1
  15. هل تقصد الأكواد الموجودة في دروس هذه المسارات ؟

    إذا كان كذلك فإنه لا يوجد ملفات من دروس اساسيات html أو css حيث يجب عليك فهم طريقة عمل الأكواد والتعرف عليها فقط وحتى تستطيع كتابة الأكواد بنفسك بعد المتابعة مع كل درس بينما في المسارات القادمة ستجد العديد من المشاريع ومع كل مشروع ستجد الملفات الخاصة به

    أما إذا كنت تسأل عن المشروع الموجود بعد دروس اساسيات html أو css وهو بناء موقع شخصي فيمكنك أنه تجده في هذا الدرس أسفل الفيديو

  16. نعم يمكنك إرسالها مع المرفقات وتأكد من تسليم جميع الملفات بشكل سليم ثم بعد ذلك قم بتسليم المشروع ستجد كلمة "تسليم المشروع" ف أعلى اليسار في الموقع في الصفحة الخاصة بالمشروع حتى يوافق عليه العميل يصبح المشروع مكتمل و تصلك الأموال

    • أعجبني 1
  17. يحدث ذلك لأن في صفحة ال navbar يوجد section يسمى home يأخذ إرتفاع الواجهة وبالتالي ال header ينزل إلى بعد ال home وبالتالي قومي بحذف ال home 

    <nav class="nav">
            ...
    </nav>
    
    <section class="home"> <!-- section قومي بحذف هذا ال  -->
    </section>

    أو يمكنك وضع ال header بداخل ال home

  18. من الطبيعي أن يكون صعب فإن كنت مكان العميل من ستختار وتقبل له العرض المستقل الجديد على المنصة الذي لم يكمل أول عمل له أم من له العديد من المشاريع المكتملة والتقييمات العالية؟ 

    حسناً ربما تقول أن العمل مستحيل ولكن ذلك غير صحيح حيث يمكن لأعمالك السابقة أن تجعل العميل يثق في مهاراتك وتوجد العديد من العوامل التي تساعد في الحصول على أول عميل ويمكنك أن تجد ذلك في الإجابات على هذا السؤال

    أو هذا 

    وبالأخير فهذه أرزاق وتعتمد على جهدك والأمر ليس بتلك الصعوبة التي تتخيلها فقط يحتاج للمتابعة 

  19. يحتاج البرنامج لإدارة واستخدام الذاكرة لحفظ المتغيرات والقيم ولذلك يقوم بتخصيص أجزاء من الذاكرة وحذفها عند عدم الاستخدام وهذا هو التعريف ببساطة وتوجد لغات برمجية تقوم بعمل ذلك ذاتياً بدون تدخل منك مثل JavaScript وهناك أيضاً لغات تحتاج لإدارة الذاكرة يدوياً ويالطبع يمكن أن يقل أداء البرنامج لسوء استخدام الذاكرة مما يسبب memory leak 

    وأما بالنسبة لل JavaScript فلا تحتاج لعمل ذلك يدوياً لأن اللغة تقوم بذلك تلقائيا 

    • أعجبني 1
  20. هل تقصد البدأ في التقدم على عمل ومشاريع لعملاء؟

    إذا كان كذلك فالأفضل أن تنتظر لنهاية الدورة لأن توجد بعض المشاريع بعد مسار بناء خمسه صفحات هبوط أكثر إحترافية وستتعلم المزيد من المعلومات و التقنيات  حيث ستكون قادر على تنفيذ العديد من المشاريع المطلوبة كتحويل design إلى html و css والعديد من المشاريع الأخرى الخاصة بال  frontend 

    أما إذا كنت تقصد العمل على مشاريع كتدريب؟

    هذه المشاريع التي تبنيها ستتزيد من خبرتك في المجال وستتطور معها وما يجب عليك عند التطبيق هو فهم كل جزء من الشرح وبعدها أيضاً تستطيع عمل أي مشروع خاص بال frontend

     

    • أعجبني 1
  21. ماذا تقصد بالرقم ؟

    على العموم يمكنك التأكد من وجود قيمة في ال dictionary من خلال ال دالة .values كالتالي

    numbers = {'1': 'one', '3': 'three', '2': 'two', '5': 'five', '4': 'four'}
    'one' in d.values()
    True 

    وتقوم هذه الدالة بإرجاع قيمة true إذا كانت القيمة موجودة أو false إذا لم تكن موجودة

  22. يمكنكي أن تستخدم مكتبة os.path وهي توفر دالة ()exists وهذه الدالة تقوم بإرجاع قيمة true أو false كالتالي

    import os.path
    os.path.exists(file_path)

    وتوجد أيضاً دالة ()isfile  للتأكد إذا كان ملف أم لا كالتالي

    os.path.isfile(file_path)

    ولا تنسي إستدعاء المكتبة

    • أعجبني 1
  23. هماك خطأ بسيط في الكود وهو المجال ل this في ال setTimeout حيث سوف تعود ال this للكائن window وليس ال component ولذلك يمكننا حل هذه المشكلة عن طريق 

    • عمل binding عن طريق توليد دالة جديدة بمجال scope محدد 
      setTimeout(function(){this.setState({count: 1})}.bind(this), 3000);

       

    • أو يمكنك استخدام ال arrow function كالتالي

      setTimeout(()=>this.setState({count: 1}), 3000);

       

    • أعجبني 1
×
×
  • أضف...