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

Adnane Kadri

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

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

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

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

    52

كل منشورات العضو Adnane Kadri

  1. المورد او resource في إطار تطبيق لارافيل، يمكن أن يكون أي شيء يتم التعامل معه عن طريق API. على سبيل المثال، إذا كان التطبيق هو تطبيق مدونة، فإنه يمكن أن يكون المورد هو المقالات أو التعليقات. يمكن أن يكون المورد مصدرًا للبيانات المختلفة مثل العملاء أو الطلبات أو المبيعات أو أي شيء آخر يتم التعامل معه من خلال API. ولذلك فإنك ستجد مثل هاته الكلمة متكررة كثيرا في تطبيقات لارافيل. فالمستخدم هو مورد، والمقالة هي ايضا. وكذلك أي نموذج بيانات معين او مصدر للبيانات.
  2. يتم التعامل مع عمليات التوجيه في تطبيقات الخادم بهاته الأفعال غالبا، ولكل منها دلالة معينة رغم أن بعضها قد يشترك في طريقة عمله او تخاطبه بوساطة بروتوكول الـ HTTP. ولكن بشكل عام: GET: تُستخدم للحصول على المعلومات من المورد، مثل الصفحات أو البيانات من قاعدة البيانات. مثال: طلبية عرض صفحة المستخدم. POST: تُستخدم لإنشاء مورد جديد عند إرسال البيانات إلى الخادم. مثال: طلبية انشاء مستخدم جديد. PUT: تُستخدم لتحديث المورد بالكامل، مثال: طلبية تحديث بيانات مستخدم معين، بحيث يتم تحديثها بالكامل. PATCH: تُستخدم لتحديث المورد بشكل جزئي، مثال: طلبية تحديث بيانات مستخدم معين، بحيث يتم تحديثها بشكل جزئي. DELETE: تُستخدم لحذف المورد بشكل كامل. وهاته هي افعال وطرق HTTP، وتتواجد كتوابع للصنف Route بالاضافة الى بعض التوابع الأخرى. لتشير الى نفس الشيء ايضا. فالتابع get يولد مسارا بالطريقة GET و التابع post يولد مسارا بالطريقة POST وما الى ذلك .. اما بالنسبة للتابع view فهو يستعمل لتصيير صفحة عرض انطلاقا من المسار. على سبيل المثال: Route::view('/home' ,'main-page'); عند طلب المسار home/ سيقوم تطبيق لارافيل لديك بالبحث عن ملف العرض main-page.blade.php لتصييرها كصفحة. فكر بالأمر بمدلوله ليسهل عليك التعامل معه، فـ PATCH بالانجليزية تعني ترقيع، والترقيع قد يشير الى ضبط جزئية او تعديل جزء معين من الكل. في حين أن الوضع أو PUT تحمل مدلولا الى وضع شيء بدل الآخر، وهذا هو الفرق بينهما ببساطة فالفعل PATCH يستخدم للطلبيات التي يتم تحديث فيها جزئية معينة، في حين ان PUT يستخدم للطلبيات التي يتم فيها تحديث المورد بشكل كامل.
  3. بجانب إمكانية حقن شيفرة HTML مثلما أشار اليك المدرب مصطفى فإنه يمكنك أيضا حقن شيفرة HTML في صفحة التدوينة لديك أيضا. اذ ويكون ذلك عن طريق: الانتقال إلى صفحة التحرير في المدونة اختيار خيار "HTML" في شريط الأدوات. اذ سيتيح لك ذلك إدراج أي كود HTML تريده في منشوراتك أو صفحات المدونة. يمكنك استخدام هذه الطريقة لتخصيص التصميم وإضافة المزيد من الوظائف إلى مدونتك وما الى ذلك. مما يعني أنه يجب عليك توخي الحذر عند إضافة الكود HTML إلى مدونتك، حيث يمكن أن يؤثر على تصميم المدونة وسرعة التحميل. لذلك، يجب عليك اختيار الكود بعناية والتأكد من عدم تأثيره سلبًا على تجربة المستخدمين.
  4. تحتوي أكاديمية حسوب على واحدة من أحسن الدورات في هذا الخصوص، فهي تخصص مسارا كاملا نظريا عن NodeJS واكثر من مسار عملي. هاته الدورة هي دورة تطوير التطبيقات باستخدام جافاسكربت، فهي بجانب تعليمك NodeJS ستعلمك كلا من: أساسيات لغة JavaScript أساسيات React.js أساسيات Node.js تطوير تطبيق جوال باستخدام React Native تطبيق دردشة يشبه WhatsApp تطوير تطبيق سطح مكتب باستخدام Electron.js إنشاء تطبيق أسئلة وأجوبة باستخدام Next.js تطوير تطبيق جوال للتواصل الاجتماعي باستخدام Ionic تطبيق حجز مناسبات باستخدام GraphQL تفاصيل إضافية
  5. أشجعك على اهتمام بالبرمجة في مثل هذا العمر، وبالطبع سيفيدك الاستزادة منها والتوغل في مفاهيمها، ولكن لا اقترح عليك العجلة في الأمر. فإن كان هدفك العمل، فقد لا يكون مناسبا لك في عمر صغير، فهو يتطلب بعض المتطلبات الأخرى التي يمكن أن تتوفر في عمر مناسب. ولكن بشكل عام، الدخول في المجال في سن مبكرة سيشجعك على الإبداع مستقبلا، وباستطلاع بسيط سيمكنك معرفة أن حتى المبرمجين المحترفين عالميا قد بدأو البرمجة في سن مبكرة. وبما أن دورات الأكاديمية ذات وصول دائم، فستحصل على إشعار بأي تحديثات مستقبلية مما سيعني أنك ستحصل على محتوى قيم بشكل دائم، بشكل يواكب أي تغييرات قد تحصل حتى بلوغك السن الطبيعي للعمل. ولحد ذلك، سيمكنك تطوير استيعابك وتفكيرك البرمجي والرياضي والقدرات المنطقية لديك، بشكل يجعلك قادرا على الإبداع مستقبلا.
  6. السؤال عن الفرق بين main و master هو سؤال عام جدا فقد يكون لكلمة main دلالة معينة مثلا في لغة جافا او c++، وفي سياق git في مثالك هما مثلما أشير اليه سابقا.
  7. الفرق بين main و master يختلف حسب السياق الذي يستخدم فيه كل منهما، ولكن بشكل عام: في Git: كان يتم استخدام الفرع الافتراضي "master" للإشارة إلى النسخة الرئيسية من المستودع، ولكن في الآونة الأخيرة، تم تغيير اسم الفرع الافتراضي إلى "main" في الإصدارات الحديثة من Git، تماشيًا مع الجهود العالمية للحد من استخدام المصطلحات التي قد تسيء إلى بعض الأشخاص مثلما اشار المدرب مصطفى. أما في البرمجة بشكل عام: فعند كتابة برنامج، يعتبر الدالة main هي دالة البداية التي يتم تشغيلها في البداية، وتعتبر بمثابة الباب الرئيسي للبرنامج، ويتم العودة إليها في النهاية. يجب الانتباه إلى أن استخدام "main" أو "master" يختلف تبعاً للسياق ويمكن أن يختلف في الاستخدام بين اللغات البرمجية وأدوات إدارة المشاريع المختلفة. وفي حالتك، هو ليس أكثر من تسمية الفرع الرئيسي لمستودع git لديك.
  8. مرحبا اسامة، سعر الاشتراك في أي دورة من دورات أكاديمية حسوب هو 290$. وهي: دورة ادارة تطوير المنتجات . دورة علوم الحاسب. دورة تطوير التطبيقات باستخدام لغة جافاسكربت . دورة تطوير التطبيقات باستخدام لغة بايثون . دورة تطوير التطبيقات باستخدام لغة PHP . دورة تطوير التطبيقات باستخدام لغة Ruby. دورة تطوير واجهات المستخدم.
  9. مرحبا صلاح، لا يتم حل الأسئلة الاختبارية بشكل مباشر في الأكاديمية، جرب العمل على محاولة وسنعينك في بلوغ الصواب. فيما يلي بعض الخطوات العامة التي يمكنك الاستعانة بها لعمل المطلوب: أنشئ فئة للدرجات تحتوي على التالي: مصفوفة تخزن الدرجات للطالب الواحد دالة تحسب مجموع الدرجات دالة تحسب المعدل دالة تحسب التقدير دالة تطبع اعلى درجة مع المعدل والتقدير يتم إنشاء فئة للطالب تحتوي على التالي: اسم الطالب كائن لفئة الدرجات يتم إنشاء كائن لكل طالب يحتوي على معلومات الطالب والدرجات. يتم إنشاء مصفوفة تخزن كائنات الطلاب. يتم إنشاء دالة تطبع اعلى درجة مع المعدل والتقدير لجميع الطلاب في المصفوفة. يتم انشاء دالة main() لادخال درجات الطلاب وطباعتها. يتم استدعاء الدوال وإرجاع القيم الناتجة لتطبيقها على بيانات الطلاب. يتم تشغيل البرنامج واختباره.
  10. جرب استعمال ترميز &lt; المعبر عن الرمز > لتجنب تفسير وسم php?> كوسم بداية لشيفرة PHP، فيكون: &lt;php? echo "النص النص النص"; ?&gt; سيتم تفسيرها كـ: <?php echo 'النص النص النص'; ?>
  11. بجانب المقترح، يمكنك تصدير مشروعك في لغة Go إلى ملف تنفيذي exe باستخدام أحد أدوات التحزيم (Packaging) المتاحة. أحد هذه الأدوات هي آداة "goxc"، وهي أداة تحزيم مستقلة عن go. يمكن استعمال الامر التالي لتثبيت الآداة: go get github.com/laher/goxc ثم الأمر التالي لتخريج وتحزيم المشروع بها: goxc -d=./out -pv=1.0.0 -os="windows" -arch="386 amd64" -bc="windows,amd64" حيث تعني كل من: -d: مجلد الإخراج للملفات المعبأة. -pv: رقم الإصدار الحالي للمشروع. -os: نظام التشغيل المستهدف (Windows). -arch: المعمارية المستهدفة (32 بت أو 64 بت). -bc: البناء المستهدف.
  12. يحتمل أن المشكلة في استخدام setInterval داخل useEffect، حيث أن setInterval لا يتوقف عن العمل عند إعادة رسم العنصر الخاص بالمؤشر الزمني، مما يؤدي إلى تكرار تشغيل المؤشر الزمني وزيادة ثانيتين في كل دورة. يمكن استخدام setTimeout بدلاً من setInterval، وإعادة تشغيل المؤشر الزمني فقط عند تغيير الحالة. وللحفاظ على تحديث المؤشر الزمني كل ثانية، يمكن إنشاء دالة مساعدة تستدعى setTimeout مع مهلة زمنية وتحديث الحالة. const [timer, setTimer] = useState(0); const format = (time) => { let hours = Math.floor((time / 60 / 60) % 24); let minutes = Math.floor((time / 60) % 60); let secondes = Math.floor(time % 60); hours = hours < 10 ? "0" + hours : hours; minutes = minutes < 10 ? "0" + minutes : minutes; secondes = secondes < 10 ? "0" + secondes : secondes; return hours + ":" + minutes + ":" + secondes; }; const updateTimer = () => { setTimer((timer) => timer + 1); setTimeout(updateTimer, 1000); }; useEffect(() => { setTimeout(updateTimer, 1000); }, []); return <div>{format(timer)}</div>;
  13. باختصار، كل من الدورات التالية تؤهلك للعمل كمطور ويب شامل: دورة تطوير التطبيقات باستخدام لغة Python دورة تطوير التطبيقات باستخدام لغة JavaScript دورة تطوير تطبيقات الويب باستخدام لغة PHP دورة تطوير تطبيقات الويب باستخدام لغة Ruby فكل منها تستعمل لتطوير تطبيقات الويب، وسيمكنك استعمال اي منها لعمل تطبيقات ويب شاملة ومتكاملة. هذا بجانب أن كلا منها يتفصل في شرح أشهر أطر عملها ومكتباتها على الساحة، ففي Python نجد Django و في Javascript نجد MERN stack وفي PHP نجد Laravel وفي Ruby نجد Rails. وكلها يتم التعرض له بإسهاب في الدورة الخاصة به. ولذلك فإنه سيجب عليك فقط اختيار المسار الذي تريد التخصص فيه والبدء في الأمر مباشرة.
  14. بجانب الفروقات التي أشار اليها المدربان، وجب الاشارة ايضا الى أن هنالك ملف composer.phar الذي هو الآخر ملف يختلف عن كليهما كليا. فهو ملف قابل للتنفيذ يستخدم لتثبيت وإدارة حزم PHP باستخدام أداة Composer دون تثبيتها. اذ يتم تحميله عادة من الموقع الرسمي لـComposer. تختلف الميزات التي يوفرها ملف composer.phar قليلاً عن تلك التي تقدمها النسخة المثبتة من Composer. فعلى سبيل المثال، يمكن استخدام ملف composer.phar لتثبيت Composer على نظام لا يحتوي على PHP، ويمكن تشغيل الملف phar على أي منصة تدعم PHP. يتم استخدام الملف composer.phar عند تشغيل الأوامر التالية: php composer.phar install php composer.phar update ويتم استخدام هذا الملف بدلاً من تنزيل وتثبيت Composer على النظام المحلي. يتم تنفيذ الملف composer.phar بتشغيله باستخدام PHP من خلال الأمر "php composer.phar" متبوعًا بالأمر المطلوب.
  15. أظن أن موضوع شريك التعلم هو من أكثر المواضيع تكررا في الوسط البرمجي ككل. ولكن لا يوجد اي شرط او لازمة لذلك في الغالب. ورغم بعض الميزات التي يفرضها الالتزام بالتعلم مع الشريك من مثل: تنظيم الوقت التحفيز على التعلم والتحصيل اكثر التشجيع على المنافسة والاطلاع إلا أنه يمتلك سلبيات لا يجب الغفلة عنها، من بينها: الخضوع لظروف الآخر وتوقيته واحتمال عدم التزام الشريك، فليس كل الناس سواءا من ناحية الظروف المحيطة فقد يمكنك التعرض لمادة علمية لمدة 6 ساعات مثلا في حين ان شريكك غير قادر على التركيز بعد ان يتجاوز الساعتين. هذا بجانب احتمالية تعطيل التعلم لسبب يخص شريكك ولا يخصك اصلا. الفروقات في الاستيعاب والتركيز والذكاء، وهو ما يؤدي في الأخير الى استفادة احد الطرفين دون الآخر. طبيعة المجال تقتضي الاجتهاد والبحث والتطوير والشخصي. اختلاف الرؤى والاهداف، وهو الأمر الذي قد يؤثر في مسار التعلم او في طريقته او في كثافته.
  16. طبعا فإن هذا يعتمد على اللغة التي تستخدمها مثل ما اشار اليك المدرب مصطفى، فإذا كنت تستخدم لغة برمجة مثل Python يمكنك استخدام برامج مثل برنامج PyInstaller . فهي تطبيقات وبرمجيات تقوم بتحزيم المشروع وجميع المكتبات التي يعتمد عليها في ملف تنفيذي واحد exe .. أو برنامج Launch4j مثلا للتعامل مع مشاريع جافا أو Advanced Installer لمشاريع Net. ابحث عن البرمجية المناسبة للغة التي تستعملها وسيمكنك ايجاد الكثير.
  17. بالطبع فإنه من الممكن أن يتعرض كود PHP للاختراق إذا لم يتم كتابته بطريقة آمنة متينة. واضافة الى ما أشار اليه المدربون، فيما يلي بعض الممارسات الأخرى التي تقلل من احتمالية ذلك: استخدام بروتوكولات SSL / TLS: لتأمين اتصالات الشبكة، ويتم توفيرها عادة من قبل مزود خدمة الاستضافة. استخدام إعدادات php.ini الآمنة: اذ يجب تعيين الإعدادات الأمنية في ملف php.ini للتحكم في سلوك PHP والتحكم في إدارة الأخطاء والتقارير، مثل تخريج الاخطاء وغيرها. إخفاء معلومات الاتصال بقاعدة البيانات: اذ يجب إخفاء معلومات الاتصال بقاعدة البيانات في ملفات الكود لعدم إتاحة هذه المعلومات للمهاجمين. استخدام اطر العمل التي تهتم بمعالجة مثل هاته الثغرات، من مثل لارافيل و Symfony و codeigniter وغيرهما. الاستعانة بمفاهيم البرمجة كائنية التوجه في معالجة البيانات وتخريجها من مثل التغليف encapsulation وما الى ذلك. الصيانة الدورية. متابعة سجلات الوصول Access Logs والمستخدمين الجدد قبل منحهم صلاحيات معينة. استعمال مقيدات معدل التراسل Rate limiting، وذلك للحد من هجمات DDos وما الى ذلك. الحد من استخدام الوظائف المتخصصة في اللغة من مثل eval و exec وغيرهما، مثل هاته الاوامر تعتبر مكافئات لسطر اوامر. الحد من الوصول العام للملفات والمجلدات وادارة الاذونات والصلاحيات عليها.
  18. مرحبا عبدالله، عند إتمام عملية الشراء ودفع المبلغ سيتم إرسال تأكيد بالشراء إلى بريدك الإلكتروني المسجل في الأكاديمية، فبعد مراجعة طلبك والتأكد من وسيلة الدفع المستخدمة، ستلاحظ إضافة أيقونة جديدة في الشريط العلوي للموقع باسم دوراتي، عند الضغط عليها ستصل إلى الدورات التي سجلت بها، أين سيمكنك بدأ الدروس. وقد يأخذ ذلك بضع دقائق إلى ساعات.
  19. ان كان السؤال هو حول سطر الاوامر في محتلف أنظمة التشغيل، ففيما يلي بعض الطرق الشائعة لكل نظام: في نظام Windows: اضغط على زر "Start" ثم اكتب "cmd" في صندوق البحث. اضغط على مفتاح "Enter" لفتح نافذة سطر الأوامر. في نظام MacOS: افتح "Terminal" من الـ "Applications" أو من خلال البحث. يمكنك أيضًا استخدام الاختصار "Command + Space" لفتح نافذة البحث، ثم اكتب "Terminal". في نظام Linux: يمكن الوصول إلى سطر الأوامر بالنقر على زر "Terminal" في شريط المهام، أو باستخدام اختصارات لوحة المفاتيح مثل "Ctrl + Alt + T".
  20. مثلما أشار اليك المدرب مصطفى، فإن شعورك كذلك امر طبيعي ولا مشكلة فيه من الأساس. وفيما يلي بعض الخطوات التي تساعدك في تخطي الأمر وزيادة تحصيلك وتركيزك: قم بتنظيم ملاحظاتك: يمكنك استخدام الورق والقلم أو برامج الملاحظات الإلكترونية لتسجيل المفاهيم والتعليمات التي تحتاجها. احرص على الكتابة بطريقة منظمة ومفهومة لديك. وفي هذا أحب الاشارة دوما للطلبة الى هيكلة دروسهم وفق هيكل الدروس والمسارات في الدورة، فيكون مثلا ملف منفصل لكل درس به تفاصيل او ملاحظات ذلك الدرس. فتكون مرجعا او فهرسا او ملخصا تعود له وقت الحاجة. اعمل على مشاريع عملية: فتطبيق المفاهيم والأفكار المكتسبة في مشاريع عملية يمكن أن يساعدك في فهمها وتذكرها بشكل أفضل. كما يمكنك استخدام المشاريع كطريقة لترسيخ المعلومة والتحقق من فهمك. استخدم الرسوم البيانية والمخططات الذهنية: يمكن استخدام الرسوم البيانية لتصور العلاقات والاتصالات بين المفاهيم المختلفة. يمكنك استخدام مخططات بيانية مثل الدوائر الزمنية أو المخططات الهرمية لتمثيل العلاقات بين المفاهيم وهذا يكون بالطبع وفق فهمك وتصورك ونمذجتك، فهي موجهة لك. ابحث عن المصادر الإضافية: يمكنك البحث عن الموارد الإضافية على الإنترنت مثل الكتب الإلكترونية والمقاطع الفيديو التعليمية والمدونات المختلفة. ويجب في هذا بطبيعة حال التأكد من اختيار مصادر موثوقة او ذات سمعة جيدة. تواصل مع المجتمعات البرمجية: اذ انه من المفيد جدا البقاء في محيط برمجي لكي يمكنك الاستفادة من خبراتهم. كل هذا سيلزمه الصبر وبعد النظر وعدم العجلة بالطبع.
  21. أظنك قد وضعت قيمة مباشرة في الحقل الخاص بك بدون اي اسناد لأي وظيفة او callback للمستمع للحدث onChange، يمكنك إما إزالة القيمة من: <input type="text" className="form-control" placeholder="name..." value="name..."/> لتصبح: <input type="text" className="form-control" placeholder="name..." /> أو إذا كنت تريد ضبط قيمة افتراضية، فيمكنك على كل حل حال تعيينها عن طريق الخاصية defaultValue: <input type="text" className="form-control" placeholder="name..." defaultValue="name..."/>
  22. يبدوا أن يتم رفض الاتصال بسبب عدم وجود المفتاح الخاص بك في حساب GitHub. يمكن حل هذه المشكلة بإنشاء مفتاح SSH جديد وإضافته إلى حساب GitHub الخاص بك. للقيام بذلك، يمكنك اتباع الخطوات التالية: افتح موجه الأوامر (Terminal) الخاص بجهازك. استخدم الأمر ssh-keygen لإنشاء مفتاح SSH جديد. سيتم حفظ المفتاح الخاص في المسار الافتراضي ~/.ssh/id_rsa. انسخ المحتوى العام للمفتاح العام باستخدام الأمر cat ~/.ssh/id_rsa.pub. قم بالدخول إلى حساب GitHub الخاص بك، وانتقل إلى إعدادات (Settings) الحساب. اختر SSH and GPG keys، ثم انقر على New SSH key. أدخل عنوان الاسم (Title) والمحتوى العام (Key) الخاص بالمفتاح العام الذي تم نسخه في الخطوة 3. انقر على Add SSH key، وستظهر لك رسالة تأكيد على نجاح إضافة المفتاح. بعد إضافة المفتاح الخاص بك، يجب أن يعمل الأمر ssh -T git@github.com بشكل صحيح ويعطيك رسالة ترحيب من GitHub. وبعد ذلك، يمكنك استخدام اوامر git الاعتيادية لادارة مشروعك مثل امر git push -u origin main لرفع التعديلات إلى مستودع GitHub الخاص بك.
  23. أظن أن أغلب هاته الطرق يكون مخالفا لشروط استخدام واتساب فهي في الغالب غير مستقرة وغير موثوقة وسرعان ما يتم حظر الوصول منها، وقد رأيت الكثير من الشكاوى بخصوص مثل هاته التطبيقات او تعرض حسابات واتساب للحظر. فالأصح هو استعمال الخدمة الرسمية من واتساب او الخدمات الوسيطة مثل twilio او غيرها، فهي الأخرى تستخدم واجهة التطبيق الرسمية الخاصة بواتساب. ومع ذلك، يوجد بعض القيود والشروط التي يجب على المستخدمين الالتزام بها عند استخدام Twilio مع WhatsApp Business API. على سبيل المثال، يتعين على المستخدمين تسجيل أرقام هواتفهم وتحصيل الموافقة المسبقة من مالكي هذه الأرقام قبل استخدامها لإرسال الرسائل عبر WhatsApp. فهي نفس الشيء تقريبا.
  24. لا يمكن تحديد الخطوة التالية بدقة ولكن عموما ستحتاج: الاطلاع أكثر على افضل ممارسات الشيفرة النظيفة. التطبيق والممارسة اكثر والعمل على مشاريع حقيقية. تعلم الاختبار عن طريق اطار عمل للاختبار مثل JEST. تعلم مختلف تقنيات الـ web sockets والـ web RTCs. تعلم بناء Restful APIs. تعلم كيفية نشر تطبيقاتك على خوادم الويب باستخدام خدمات السحابة مثل Heroku أو AWS. تعلم كيفية إنشاء تطبيقات web الموزعة باستخدام مفهوم الـ Microservices. تعلم كيفية إنشاء APIs باستخدام GraphQL. يذكر أنه لا يجب التوقف عن التطبيق وممارسة العمل على مشاريع حقيقية سواء لك او لعملاءك، فعملية التعلم بعد حد ما يجب ان تكون موازية لعملية التعلم.
×
×
  • أضف...