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

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

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

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

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

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

    12

كل منشورات العضو عبدالباسط ابراهيم

  1. توجد العديد من البرامج التي تستخدم مفهوم ال multithreading حيث أن من خلال فهم هذا المصطلح ستجد أن معظم التطبيقات التي تتفاعل مع المستخدم ربما تعمل بهذا المفهوم فمثلاً من الأمثلة الأكثر استخداماً لل multithreading هي الألعاب حيث تستخدم هذا المفهوم بشكل كبير ال IDE و ال text editor نفس فكرة برامج ال office السيرفرات أيضاً تستخدم هذا المفهوم لمعالجة العديد من الطلبات في نفس الوقت
  2. يمكنك إضافة النص الجديد للملف بدون حذف المحتوى القديم عن طريق استخدام appendFile أو يمكنك إضافة ال flag a ليقوم بعمل append وليس overWrite كالتالي fs.writeFile('log.txt', 'Request recieved from 3221', {'flag':'a'}, function (err) { if (err) throw err; console.log('saved'); }); لاحظ ال {'flag':'a'}
  3. هناك إضافة لل Gatsby تقوم بعمل تعطيل لل route تسمى gatsby-plugin-static-site يمكنك تثبيتها كالتالي npm install @wardpeet/gatsby-plugin-static-site --save ثم قم بإضافتها لملف ال gatsby-config.js كالتالي plugins: [{ `@wardpeet/gatsby-plugin-static-site`, }]
  4. لقد رأيت المستودع الخاص بك dar-kutubak أعتقد أن الخطأ أنك قمت برفع ملفات ال src للمستودع الذي تريده أن يكون في ال github pages وذلك خطأ حيث أننا نستخدم المجلد dist فقط عند استخدام هذا المستودع لل github pages لذلك قم بإنشاء مستودع جديد ولكن قم برفع مجلد ال dist فقط في المستودع وقم بتسمية المستودع كالتالي "alishouaa.github.io" حيث أن أي إسم غير ذلك لن يعمل
  5. يمكنك إضافة ال noThrow لل redirect ليكون كالتالي return ( <Redirect noThrow to={`/posts`} /> ) حيث أن ال redirect تعمل مع ال componentDidCatch حتى تمنع إعادة عمل rerendering لذلك تقوم react بتوليد هذا الخطأ أعتقد أن من بعد الإصدار 16 لا يظهر هذا الخطأ من الأساس
  6. إذا لم يكن هناك خبرة بتطوير واجهات المستخدم بالطبع يفضل تعلم هذه الدورة أولاً حيث أن هناك بعض الأمور التي تتطلب بعض الخبرة في ال html و ال css وعموماً الأفضل لك البدأ بتطوير واجهات المستخدم
  7. من الطبيعي أن يقابلك قليل من الدروس التي تستصعبها في البداية وذلك يحدث مع الجميع سواء في تعلم البرمجة أو أي شئ آخر لذلك قم بطرح السؤال في الدرس الخاص به فمثلاً لو هناك خاصية مصطلح أو مفهوم معين يمكنك طرح السؤال وسيجيب عليك أحد من المدربين حتى تستطيع فهم الدرس جيداً فقط قم بطرح السؤال في الدرس الخاص به فمثلاً بالنسبة لتعلم لغة برمجة لأول مرة مثل javascript كما في الدورة ستواجهك بعض المفاهيم والمصطلحات التي يظهر لك أنها معقدة ولكن هي في نهاية الأمر سهلة جداً ومع الوقت ستجد أن المصطلحات الجديدة يمكنك معرفة وظيفتها من خلال ترجمة المصطلح ولكن المطلوب فقط فهم الدرس وإن لم تفهمه بنسبة 100% ستجد أنه مع التطبيق أنك بدأت تستوعب ما كنت تستصعبه قديماً
  8. مجال تصميم صفحات الويب مختلف عن تطبيقات الجوال لذلك ستحتاج لدورتين فمثلاً يمكنك أخذ دورة تطوير واجهات المستخدم لتعلم تصميم صفحات الويب عن طريق ال html css و مكتبات ال javascript والعديد من التقنيات الأخرى التي تزيد من مستواك ك front-end developer اي مطور واجهات المستخدم أما بالنسبة لتطوير تطبيقات الجوال فيمكنك أخذ دورة تطوير التطبيقات باستخدام الجافاسكربت حيث في هذه الدورة ستتعمق في تعلم الجافاسكربت وتعلم أطر العمل المشهورة حالياً لجافاسكربت و تعلم تطوير تطبيقات الجوال باستخدام react native وتعلم ال back-end ايضاً ولمزيد من التفاصيل يمكنك الدخول لكل دورة لمعرفة الأهداف من كل دورة لتحديد الدورة المناسبة لك
  9. أولاً يعتبر ال flutter و react native أطر عمل لتطوير تطبيقات الموبايل لجميع أنظمة التشغيل أي cross platform وكلاً منهما تمكنك من بناء تطبيقات كبيرة حيث ال react native تدعمها facebook و flutter تدعمها google ال react native يستخدم ال javascript إعتماداً على الإطار react بينما ال flutter تحتاج لتعلم لغة البرمجة Dart أما بالنسبة للأفضل فذلك يرجع لك فأي لغة برمجة تتقنها ويعتبر أيضاً كلا الإطارين على نفس المستوى من الإنتشار بين المطورين ولكن هناك بعض المميزات ل flutter يوفر flutter العديد من ال components أكثر من react native يوفر لك بيئة عمل أكثر إحترافية من react native ولكن إذا كنت بالأساس تتقن javascript فالأفضل لك تعلم react native لأنه لن يأخذ منك الكثير من الوقت
  10. توجد العديد من المشاكل التي يمكن لها تسبب هذا الخطأ منها عدم تثبيت ال loaders ال file-loader استخدام ال file-loader مع إصدار 2 من ال html-loader ولكن أتوقع أنك تستخدم الإصدار الثاني من ال html-loader لأن هذا الإصدار يتعارض مع عمل ال file-loader لذلك تأكد من ملف ال package.json أنك تستخدم الإصدار الأول وإن كنت تستخدم الإصدار الثاني قم بتنفيذ هذا الأمر npm i html-loader@1-D ثم بعد ذلك جرب تشغيل webpack
  11. تأكد من حذف الخاصية publicPath ليصبح الكود كالتالي output: { path: path.resolve(__dirname, 'dist'), filename: 'js/main.js' }, وقم بعد ذلك بتنفيذ الأمر npm run build وبعد الإنتهاء قم بفتح صفحة index.html في المتصفح الموجودة في مجلد dist وليس src وغالباً سيكون السبب أنك لم تستخدم live-srever لذلك لم تحدث الصفحة تلقائياً
  12. ربما يجب علينا تنفيذ الأمر emulator بداخل المسار Android/Sdk/tools/~ ونحاول أولاً معرفة ال avd_name عن طريق تنفيذ التالي cd ~/Android/Sdk/tools/bin && ./avdmanager list avd //إن لم يعمل الأمر بالأعلى يمكنك تجربة الأمر التالي cd ~/Android/Sdk/tools && ./emulator -list-avds وسيظهر لك أسم ال avd_name بعد ذلك قم بتنفيذ التالي cd ~/Android/Sdk/tools && ./emulator -avd NAME_OF_YOUR_DEVICE //NAME_OF_YOUR_DEVICE مكان ال avd_name قم بكتابة ال
  13. نعم يمكنك بناء تطبيق بشيفرة برمجية واحدة وتعمل على أنظمة التشغيل المختلفة ( IOS - Android ) حيث يعتبر ال React Native من النوع cross platform وتستطيع بناء تطبيقات كبيرة بدون مشاكل ولن تواجه أي عقبات في تطوير المواع الكبيرة حيث يعتبر ال React Native من المنصات القوية في بناء تطبيقات الموبايل ويمكنك أن ترى تطبيق ال facebook حيث تم بناءه من خلال ال React Native وتم تطوير ال React Native بواسطة facebook أي أن ليست بشركة ناشئة في المجال وبالنسبة ربط التطبيق مع قواعد البيانات من خلال ال api التي يوفرها ال backend تحتاج لتعلمها أن تكون هناك خبرة في ال javascript وال html بشكل أساسي ولكن تحتاج أيضاً لل css لتنسيق التطبيق و توجد العديد من الدورات لل React Native يمكنك البحث عن الدورة التي تعجبك
  14. تأكد من وضع الملف في المسار ال root أي يعتبر بجوار المجلد src وقم أيضاً بطباعة المتغير بشكل مباشر للتأكد من الوصول للمتغيرات كالتالي console.log(process.env.GATSBY_APP_NAME) حيث أن webpack تقوم بتضمين هذه المتغيرات فقط في المشروع ولذلك لا يمكنك الوصول لprocess.env من المتصفح
  15. يمكنك استخدام الإضافة 'react-helmet' لإضافة بعض الخصائص لل body ومنها يمكنك إضافة وتغيير ال className وستكون الكود كالتالي import Helmet from 'react-helmet' <Helmet> <body className="class-name" /> </Helmet>
  16. يجب عليك إيجاد طرق للتسويق للأعمال التي تقوم بتصميمها ويفضل أيضاً القراءة عن التسويق حيث أن مهما كانت أعمالك إحترافية لن تجد من يشتريها حتى تسوق لاعمالك فمثلاً بالنسبة للتصميمات يمكنك التسويق لها عن طريق رفعها على المواقع التي تجمع المصممين والعملاء وأعتقد أن موقع behance مناسب جداً يمكنك أيضاً التسويق لأعمالك على مواقع التواصل الإجتماعي لا تقلل من تأثير هذه الطرق على المبيعات حيث يمكنك تكوين علاقات وبناء سمعة جيدة من خلال هذه الطرق تجلب لك العديد من المشاري وبما أنك ذكرت أن الأعمال الخاصة بك إحترافية سيكون الأمر سهل لبناء سمعة جيدة وتذكر أن تطوير مهارات في التصميم أو المهنة التي تجيدها فقط سيجلب لك العديد من المشاريع إنما يجب عليك تطوير طرق التسويق لأعمالك وتختلف الطرق بالنسبة لك مهارة
  17. توجد العديد من الطرق لعمل ذلك فمثلاً يمكنك استخدام ال fonts من خلال ملفات ال css كالتالي @import url('https://fonts.googleapis.com/css?family=Roboto'); html { font-family: 'Roboto', sans-serif; } أو يمكنك استخدام الإضافة gatsby-plugin-google-fonts حيث تقوم بإضافة الخطوط المستخدمة يمكنك تثبيت الإضافة كالتالي yarn add gatsby-plugin-google-fonts // أو npm install gatsby-plugin-google-fonts --save ثم إضافة الخطوط في ملف ال gatsby-config.js كالتالي module.exports = { siteMetadata: { title: `I like Google fonts` }, plugins: [ { resolve: `gatsby-plugin-google-fonts`, options: { fonts: [ `limelight`, `source sans pro\:300,400,400i,700` //style وال weight يمكنك أيضاً تحديد ال ], display: 'swap' } } ] } قم بالإطلاع على المزيد من المعلومات من خلال موقع Gatsby
  18. في حالة أن الموقع frontend فقط ستحتاج عند إضافة منتج مثلاً التعديل في الكود وإعادة رفعه ولذلك يسمى هذا النوع من المواقع مواقع ثابته أي ال frontend والحل للتغيير في الموقع مثل إضافة منتج أو حذفه أو التحكم في محتوى الموقع يتم ذلك من خلال ال backend بحيث سيتم ظهور محتوى الموقع بناء على البيانات الموجودة في قواعد البيانات بحيث عند التغيير في البيانات ستتغير محتويات الموقع تلقائياً ويمكننا التحكم في الموقع عن طريق بناء لوحة تحكم للموقع dashboard وهذا النوع من المواقع يسمى نظام إدارة محتوى CMS وربما تربط هذا المصطلح بال wordpress وذلك صحيح حيث أن ال wordpress هو CMS
  19. بناء الألعاب من أصعب المجالات في البرمجة حيث تحتاج لبناء لعبة لمصمم لتصميم الشخصيات وبالطبع مبرمج وستحتاج لمهندس صوتيات و العديد من المهام الأخرى ولبناء لعبة كبيرة وضخمة تحتاج لشركة وليس فرداً واحداً ولكن هناك طريق أكثر سهولة ويمكنك أيضاً من بناء ألعاب على مستوى كبير وهو محركات الألعاب حيث توجد بعض المحركات مثل unreal و unity وهذه المحركات توفر لك الكثير من المهام حيث تجد شخصيات وتصاميم جاهزة ستحتاج فقط لبرمجة اللعبة باستخدام لغة برمجة التي يعمل بها المحرك فمثلاً unity تحتاج لتعلم لغة برمجة #c ويعتبر محرك قوي لبناء الألعاب الكبيرة وتوجد بالفعل العديد من الألعاب المشهورة باستخدام هذا المحرك unreal يعتبر هذا المحرك من أفضل المحركات إن لم يكن الأفضل ويتحتاج للغة البرمجة ++c للتعامل مع هذا المحرك للعلم تم بناء لعبة Pubg باستخدام هذا المحرك
  20. يوفر لك ال material UI نظام يعتمد على ال flexbox ولكن طريقته مختلفه عن ال bootstrap قليلاً لذلك أنصحك بالقراءة عنه من الموقع حيث يختلف عن ال bootstrap بعض الشئ
  21. يوجد العديد من الإطارات المستخدمة مع react ويمكنك استخدام الإطار المفضل بالنسبة لك ولكن من الإطارات الشائعة Material UI يوفر لك هذا الإطار الكثير من ال components ويعتبر من أشهر وأفضل الإطارات المستخدمة مع ال React إن لم يكن أفضلهم ويتبع هذا الإطار التوصيات المتبعة من Google’s Material Design React Bootstrap من الإطارات الجميلة أيضاً Semantic UI React Foundation مثل ال react- bootstrap هذا الإطار يعتمد على إطار Foundation ويمكنك أيضاً استخدام الإطار tailwind وهو إطار css ولكن يمكنك استخدامه مع React بدون مشاكل وهو إطار جميل جداً أنصحك بالإطلاع عليه
  22. دورة علوم الحاسوب هي مدخل ولتعلم علوم الحاسوب عموماً فتبدأ معك ب حول علوم الحاسوب أساسيات البرمجة أنظمة التشغيل قواعد البيانات الويب لكل مسار من المسارات السابقة مجال واسع ومتفرع فمثلاً أنظمة التشغيل عي فرع من علوم الحاسوب وكذلك مجال ال IT فهو مجال كبير ومتفرع لعدة مجالات أخرى ولا يمكن لدورة واحدة أن تكفيه و تعتبر هذه الدورة مدخل لعلوم الحاسوب وبما في ذلك أساسيات ال IT فستتعلم قواعد البيانات أساسيات الويب أساسيات البرمجة و أنظمة التشغيل وهذه تعتبر من أساسيات مجال ال IT أيضاً ولكن نرجع للسؤال هل دورة علوم الحاسوب هى مجال الIT المتعارف عليه فى سوق العمل؟؟؟ ليست هذه الدورة مختصة بال IT تحديداً إنما علوم الحاسوب عموماً
  23. كما وضح يوسف في التعليق السابق فما تريد هنا يسمى 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 } )
  24. يمكنك البحث في موقع مستقل كمثال وستجد العديد من التطبيقات المشابه لما تريد ما عليك إلا البحث في المشاريع المطروحة أما بالنسبة للميزات الفريدة فيمكنك أيضاً الحساب بالوقت ولكن إذا كان تطبيق يحتاج للكثير من الإحترافية والخبرة فالطبع ستقوم بزيادة سعر الساعة لديك فلا يوجد سعر موحد للساعة لدى كل المبرمجين فيمكن أن تصل سعر الساعة لدي المبرمجين المحترفين ل 50$ ويمكن أن تصل ل 100$ فيعتمد علة خبرة المبرمج
  25. يعتمد ذلك أولاً على نوع التطبيق هل هو تطبيق ويب تطبيق أندرويد تطبيق ios أو تطبيق متعدد المنصات فالسعر يخختلف على حسب التقنية المستخدمة التقنية المستخدمة يمكن للمبرمج تقدير الوقت المطلوب لتنفيذ التطبيق حيث ربما قام قبل ذلك ببناء تطبيق مشابه لذلك يكون على دراية بالوقم المطلوب بالنسبة للأسعار فتختلف على حسب التطبيق ولكن عموماً يمكنك معرفة ذلك من خلال الإطلاع على الأعمال والمشاريع المشابه للتطبيق على منصات العمل الحر حتى تعرف متوسط الأسعار ويمكنك أيضاً تقدير سعر التطبيق من خلال حساب عدد الساغات المطلوبة لبناء التطبيق مضروبة في سعر الساعة لدى المبرمج وأعتقد أن هذه الطريقة أفضل وعادلة للطرفين
×
×
  • أضف...