-
المساهمات
5649 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
11
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو عبدالباسط ابراهيم
-
مع التدريب مستواك سيصبح أعلى من الأن بالتأكيد ولكن يجب أن يكون هناك بعض الخطوات العملية التي نقوم بتطبيقها للوصول للهدف سواء تطبيق ويب أو تطبيق موبايل ولكن الخطوات واحدة كما يلي تحديد المتطلبات: قبل البدء في أي شيء، يجب تحديد متطلبات التطبيق الخاص بك. ما هي الوظائف الأساسية التي يجب تنفيذها؟ من هي المستخدمين الذين سيستخدمون التطبيق؟ ما هي المنصات التي سيعمل عليها التطبيق؟ وغيرها من الأسئلة المهمة التي يجب الإجابة عليها. رسم خريطة العلاقات: بعد تحديد المتطلبات، يجب رسم خريطة العلاقات بين مكونات التطبيق. مثلاً، إذا كانت تطبيقًا ويب، يمكن رسم خريطة لعلاقات صفحات الويب والوظائف المختلفة التي تقوم بها. تحديد التقنيات المستخدمة: بعد ذلك، يجب تحديد التقنيات التي ستستخدم في تطوير التطبيق. مثلاً، إذا كانت تطبيقًا ويب، يجب تحديد اللغات المستخدمة مثل HTML وCSS وJavaScript، وإطار العمل المستخدم مثل React أو Angular أو Vue. تقسيم المشروع إلى مهام: بعد تحديد التقنيات المستخدمة، يمكن تقسيم المشروع إلى مهام صغيرة ومنظمة. يمكن استخدام طرق مثل تقسيم المشروع إلى مراحل أو استخدام الخرائط الذهنية لتنظيم المهام. البدء بالتطبيق: بعد تحديد المتطلبات والخريطة والتقنيات وتقسيم المشروع إلى مهام، يمكن البدء بتنفيذ المهام بالترتيب المنطقي. يجب البدء بالمهام الأساسية والأكثر أهمية أولاً، ومن ثم الانتقال إلى المهام الأصغر والأقل أهمية.
-
هناك عدة أمور يمكنك عملها لتتعلم كيفية العمل بشكل مستقل وتطوير المواقع والتطبيقات: ابدأ بأمور بسيطة، حاول أن تطور صفحة ويب بسيطة بنفسك تحوي نصوص وصورًا وأرتباطات. ارجع إلى الدروس والفيديوهات التي تعلمتها سابقًا وحاول تطبيق ما تعلمته بشكل عملي. ابحث عن مواقع وتطبيقات وحاول تحليل تركيبتها وطريقة تصميمها لتستوعبها أفضل. حاول حل بعض التمارين والأسئلة والألغاز ذات الصلة لتدرب مهارات البرمجة والتفكير. عندما تواجه مشكلة أو لا تفهم شيئًا، لا تخجل من طرح الأسئلة والبحث عن الحلول. لا تفقد صبرك، فمع الممارسة والتدرب، سوف تتحسن المهارات ببطء ولكن بثبات. يفضل الإطلاع على الإجابات التالية أيضاً
-
لا يجب عليك تذكر كل ما درسته في دورات البرمجة بالتفصيل الدقيق. ومع ذلك، يجب عليك فهم المفاهيم الأساسية والمبادئ العامة للغة البرمجة التي تدرسها، ومعرفة كيفية استخدام الأدوات والمكتبات المختلفة التي تستخدمها لتطوير التطبيقات. عندما تنتقل إلى درس تالي، يمكنك الاعتماد على المفاهيم والمبادئ التي تعلمتها من قبل، ولكن قد تحتاج إلى مراجعة بعض الأمور إذا كنت قد نسيتها. عادةً ما تتضمن دورات البرمجة تمارين ومشاريع عملية تساعدك على تطبيق المفاهيم التي تعلمتها وتعزز فهمك لها، ويمكنك الرجوع إليها في المستقبل إذا كنت بحاجة إلى تحديث ذاكرتك بشأن موضوع معين.
-
بالإضافة للمواقع في التعليق السابق موقع GitHub: يعتبر GitHub منصة مفتوحة المصدر ويحتوي على العديد من المكتبات المفتوحة المصدر للغة C# موقع NuGet: يحتوي على مكتبة كبيرة من الحزم الخاصة بلغة C#، ويمكن تنزيلها واستخدامها في مشاريع C# المختلفة. موقع CodeProject: يحتوي على مكتبة كبيرة من الأكواد والمكتبات للغة C# موقع CodePlex: يحتوي على مكتبات وأدوات للغة C# موقع C# Corner موقع DotNetPerls: يحتوي على مكتبة كبيرة من الأكواد والمقالات والأدوات والمشاريع الصغيرة للغة C# تتوفر في هذه المواقع التوضيحات والشروحات اللازمة لاستخدام المكتبات مع الأمثلة التوضيحية والديكومنيشن للوظائف والأساليب المتوفرة في المكتبات. يجب الانتباه إلى أنه يجب التحقق من مصدر المكتبة وجودتها وملاءمتها للمشروع المراد استخدامها فيه.
-
this في جافاسكريبت تشير إلى الكائن الحالي. وهي مفيدة للعديد من الأغراض: إلحاق خصائص ومنهجيات بالكائن - في تعريف الكلاس. مثال: class Person { name = "John"; constructor() { this.name = "Jane"; } sayName() { console.log(this.name); } } استخدام الكلمة الاستدلالية this داخل أي وظيفة للإشارة إلى كائنها. مثال: function sayHello() { console.log(this.name); } تمكين وظيفة من الوصول إلى خصائص كائنها عند استدعائها على طريقة دعوة. مثال: let person = { name: "John", sayName: function() { console.log(this.name); } } person.sayName(); // John في المناديات - تشير this إلى الكائن الذي يتم استدعاؤه عليه. مثال: let person1 = { name: "John" }; let person2 = { name: "Jane" }; function sayName() { console.log(this.name); } sayName.call(person1); // John sayName.call(person2); // Jane لذلك تمكنك this من العمل بشكل عام ولكن باستخدام خصائص الكائن المحدد فعليًا عند التنفيذ.
- 3 اجابة
-
- 1
-
-
هناك طريقة وهي استخدام WebSockets بدلاً من إرسال الطلبات عبر Fetch API. ما يحدث هو: عند الضغط على زر التسجيل، نقوم بإنشاء WebSocket connection مع السيرفر. عندما تصبح أجزاء الصوت متاحة عبر dataavailable event، نرسلها مباشرة عبر الـ WebSocket connection دون الانتظار حتى يكتمل التسجيل. في السيرفر، نتلقى أجزاء الصوت من خلال نفس الـ WebSocket connection ونخزنها في قاعدة البيانات كما نتلقاها. هذه الطريقة أفضل لأن: ترسل البيانات مباشرة كلما أصبحت متاحة، بدون انتظار حتى ينتهي التسجيل. تقلل من حجم البيانات المرسلة مرة واحدة لأنها ترسل جزءًا بعد آخر كما يتم إنتاجه. تستخدم الـ WebSocket الذي هو أفضل من Fetch API في مثل هذه الحالات لأنه يوفر اتصالًا مستمرًا. لذا سيكون الكود تقريبًا كالتالي: let ws; function samah() { // إنشاء واير سوكات ws = new WebSocket("YOUR_WEBSOCKET_ENDPOINT"); // ... باقي كود التسجيل نفسه } function stops() { mediaRecorder.addEventListener("dataavailable", event => { // إرسال الصوت عبر ذا واير سوكات ws.send(event.data); }); // ... بقية الكود نفسه }
-
عندما تكون العلاقة بين كيانين Many To Many، يتم تنفيذها في Laravel عادةً باستخدام جدول وسيط. على سبيل المثال: لدينا كيان Post وكيان Category سنحتاج إلى إنشاء جدول وسيط باسم post_category والذي سيحتوي على حقلين: post_id و category_id في الموديل Post: public function categories() { return $this->belongsToMany(Category::class); } في الموديل Category: public function posts() { return $this->belongsToMany(Post::class); } ثم يمكنك الوصول إلى العلاقة من أي موديل: $post = Post::find(1); foreach ($post->categories as $category) { // } $category = Category::find(1); foreach ($category->posts as $post) { // } ولحفظ العلاقة: $post = Post::find(1); $category = Category::find(2); $post->categories()->attach($category); هذا الكود سيقوم بإضافة سجل جديد في جدول الوسيط post_category لربط البوست والتصنيف.
-
بعد الانتهاء من بناء التطبيق باستخدام Flutter وتهيئته، يمكنك تجربته على المحاكي الخاص ب Android و iOS أو على جهاز Android و iOS الفعلي. لتجربة التطبيق على المحاكي الخاص ب Android، يجب إطلاق المحاكي الخاص ب Android وتشغيل التطبيق عليه. يمكنك تحديد محاكي الجهاز الذي تريد استخدامه، مثل Pixel أو Nexus أو غيرها. لتجربة التطبيق على المحاكي الخاص ب iOS، يجب إطلاق المحاكي الخاص ب iOS وتشغيل التطبيق عليه. يمكنك تحديد محاكي الجهاز الذي تريد استخدامه، مثل iPhone أو iPad أو غيرها. يمكن أيضًا تجربة التطبيق على جهاز Android و iOS الفعلي، وذلك بتوصيل الجهاز بالكمبيوتر وتشغيل التطبيق عليه. إنشاء Build بعد التأكد من عمل التطبيق بشكل جيد وتجربته، يمكنك إنشاء Build للتطبيق على Android و iOS باستخدام Android Studio و Xcode. لإنشاء Build للتطبيق على Android، يجب تحديد Build Variant المناسب والضغط على زر "Generate Signed Bundle/APK". يتم إنشاء ملف APK الذي يمكن تثبيته على أي جهاز Android. لإنشاء Build للتطبيق على iOS، يجب تحديد Target المناسب والضغط على زر "Archive". يتم إنشاء ملف IPA الذي يمكن تثبيته على جهاز iOS باستخدام Xcode أو إرساله إلى متجر التطبيقات للنشر.
- 2 اجابة
-
- 1
-
-
Next.js و Nuxt.js هما إطارات عمل (Frameworks) لتطوير تطبيقات ويب يستندان إلى React.js و Vue.js على التوالي. والفائدة الرئيسية منهم هي تسريع عملية تطوير تطبيقات الويب، وتحسين أداء التطبيقات، وتسهيل إدارتها. الفرق الرئيسي بين Next.js و Nuxt.js هو أن Next.js يستخدم React.js ، في حين أن Nuxt.js يستخدم Vue.js وبشكل عام، فإن Next.js و Nuxt.js يوفران العديد من الميزات والفوائد التالية: يسمحون بتطوير تطبيقات الويب بشكل أسرع وأكثر كفاءة وبأداء أفضل. يوفرون دعمًا متقدمًا للجانب الخادم والجانب العميل. يسمحون بإنشاء تجربة المستخدم الأفضل والأكثر تفاعلية. يوفرون ميزات مثل تحميل ديناميكي للصفحات، والتحكم في التوجيه، والتحكم في الحالة العالمية (Global State)، وإدارة البيانات وغيرها من الميزات الأخرى. وبالإضافة إلى ذلك، فإن Next.js و Nuxt.js يوفران مجتمعات تطوير نشطة ودعمًا كبيرًا من المطورين، مما يجعلهما خيارًا شائعًا لتطوير تطبيقات الويب المتطورة. وللمزيد من التفاصيل يفضل قراءة الإجابات التالية بدلاً من التكرار
- 3 اجابة
-
- 1
-
-
edabit موقع رائع لتمارين البرمجة، يحتوي على العديد من التمارين الجيدة للمبتدئين والمتقدمين على جميع مستويات البرمجة. أوصي به بشدة للمساعدة في تعلم جافاسكريبت وتحسين المهارات البرمجية. وبشكل أكثر تحديدًا: لكل تمرين، يوفر توضيح واضح للشرح والحلول الممكنة لمساعدتك في تعلم المهارة. هناك العديد من المستويات لكل تمرين، مما يساعد على تتبع تقدمك كمتدرب. يوفر إحصائيات وردود فعل الآخرين على حلولك لتحسينها بناءً على هذه التعليقات. يمكن الوصول إلى التمارين بسهولة من خلال فلتر المهارة أو اللغة. فيما يخص ال Loops ، يحتوي edabit على أكثر من 100 تمرينًا على الـ While Loops والـ For loops في جافاسكريبت ، وكلها مصنفة بناءً على المستوى من البسيط إلى المتقدم. يمكنك الذهاب للموقع من هذا الرابط وستجد جميع التمارين الخاصة بال loops بواسطة javascript
- 3 اجابة
-
- 1
-
-
تم الشرح بشكل ممتاز في التعليقات السابقة بالنسبة لتعلم البرمجة عموماً كما تم إضافة العديد من الروابط للإطلاع على المزيد من المعلومات حول البداية في تعلم البرمجة ولكن ألمانيا تعد واحدة من أفضل البلدان في أوروبا للعمل كمهندس برامج. على الرغم من أن الرواتب ليست مرتفعة مثل سويسرا المجاورة، إلا أنها لا تزال أعلى من معظم البلدان الأخرى في الاتحاد الأوروبي، وتحصل على معيار حياة عالي مع خدمات عامة ذات جودة عالية مثل التعليم والرعاية الصحية ووسائل النقل. يوجد في ألمانيا سوق عمل حيوي لوظائف التكنولوجيا مع أكثر من 30،000 وظيفة تكنولوجية مفتوحة ومراكز للشركات الناشئة مثل برلين وهامبورغ وميونيخ. وفي الوقت نفسه، يوجد أكثر من 800،000 مهندس برامج في ألمانيا، لذا المنافسة شديدة. وتعتمد فرصك في الحصول على وظيفة كمطور برامج على عدة عوامل، ومنها: الخبرة في العمل والتقنيات على الرغم من أن الحصول على وظيفة في ألمانيا ليست سهلة، إلا أنها أصعب بكثير كمهندس برمجيات مبتدئ، خاصة إذا كنت أجنبيًا. حيث أن أغلب الشركات تبحث عن مطورين لديهم خبرة 2+ سنوات. ومع ذلك، فمن الممكن العثور على وظيفة حتى كمبتدئ، ولكن يجب أن تبحث عن عروض تدريب أو برنامج تدريب (Praktikum باللغة الألمانية). أما بالنسبة إلى الشهادة الجامعية ، فلا يمكننا القول بأنها ضرورية، ولكن بدون أي خبرة في العمل فإنها ستكون بمثابة الورقة الرئيسية لديك. وإذا كنت متمرسًا (2+ سنوات)، فستتجاهل معظم الشركات عدم وجود شهادة. التقنية التي تمتلكها أيضًا ستؤثر على فرصك في الحصول على الوظيفة. فمن خلال البحث عن الوظائف المتاحة على GermanTechJobs، يمكن رؤية أن هناك العديد من العروض لمطوري Java و JavaScript و Mobile، ولكن ليس هناك الكثير لمطوري Ruby و C #.NET أو C ++. مهارات اللغة في الواقع، يعتبر الحديث بالألمانية بطلاقة ميزة كبيرة ويتطلبها العديد من الشركات. ومع ذلك، يمكنك العثور بسهولة على وظيفة باللغة الإنجليزية فقط، خاصة في الشركات الناشئة أو الشركات الكبيرة. على الرغم من ذلك، إذا كان لديك الوقت والإمكانية، فابدأ في تعلم اللغة الألمانية. حتى لو كنت تتحدثها على مستوى أساسي (A2 / B1)، فستزيد فرصك بشكل كبير على سوق العمل.
-
في JavaScript، تستخدم مصطلح "callback function" للإشارة إلى دالة تم تمريرها كمعامل (argument) لدالة أخرى، والتي يتم استدعاؤها عندما تنتهي الدالة الأصلية من العملية التي تقوم بها. في المثال الذي أعطيته، تم تمرير دالة مجهولة (anonymous function) كمعامل لدالة `app.listen()`، وهذه الدالة تتم استدعاؤها عندما يتم بدء استماع التطبيق على المنفذ المحدد. الحاسوب يعرف أن الدالة الممررة هي callback function من خلال نوع البيانات الممررة للدالة الأصلية. في هذه الحالة، يتم تمرير دالة كمعامل لدالة `app.listen()`، والتي يتم تحديدها بواسطة الفاصلة قبل القوس الإغلاقي. تعمل هذه الدالة كمعامل للدالة الأصلية، وتتم استدعاؤها في وقت لاحق عند الحاجة إليها. بالإضافة إلى ذلك، يمكن تمرير الدوال العادية (non-anonymous functions) كمعاملات callback function بنفس الطريقة التي تم تمرير الدالة المجهولة في المثال السابق. يتم فقط تمرير اسم الدالة بدلاً من الدالة المجهولة. على سبيل المثال: function greeting(name) { console.log(`Hello, ${name}!`); } function processUserInput(callback) { var name = "John"; callback(name); } processUserInput(greeting); في هذا المثال، تم تمرير دالة `greeting()` كمعامل callback function للدالة `processUserInput()`، والتي يتم استدعاؤها عندما يتم اكتمال عملية الإدخال المستخدم.
-
هناك فرص عمل كثيرة لمطوري بايثون على الإنترنت. بايثون هي لغة برمجة شائعة وقوية تستخدم في العديد من المجالات، بما في ذلك تطوير الويب والذكاء الاصطناعي وتحليل البيانات والأتمتة وغيرها الكثير. وهذه بعض الأمثلة: مطور ويب باستخدام بايثون: يتمثل عمله في تطوير وصيانة تطبيقات ويب باستخدام بايثون وإطارات العمل مثل Django و Flask. مطور الذكاء الاصطناعي: يقوم بتطوير نماذج الذكاء الاصطناعي باستخدام بايثون ومكتبات مثل TensorFlow و Keras، ويستخدمها لتدريب نماذج التعلم الآلي وتطبيقات الرؤية الحاسوبية وغيرها. عالم البيانات: يستخدم بايثون لتحليل البيانات وإنشاء النماذج التنبؤية، كما يستخدمها لتصور البيانات وتحليلها باستخدام مكتبات مثل Pandas و Numpy. مطور ألعاب الفيديو: يستخدم بايثون لتطوير ألعاب الفيديو باستخدام مكتبات مثل Pygame و Panda3D. مهندس برمجيات: يستخدم بايثون لتصميم وتطوير برامج الكمبيوتر وتطبيقات الجوال وغيرها. هذه بعض الوظائف الشائعة التي يمكن لمطوري بايثون التقدم للحصول عليها. ومن المهم أن تتابع التطورات في مجال التكنولوجيا والبرمجة وتحسين مهاراتك باستمرار لتكون جاهزًا للاستفادة من فرص العمل التي تأتي في طريقك. طبقاً ل 2023 Developer Survey ازدياد شعبية لغة البرمجة بايثون بين المطورين، كما يتضح ذلك من متابعة العلامات المستخدمة على موقع Stack Overflow خلال السنوات الثلاث الماضية. تشير الجملة إلى أن بايثون ارتفعت شعبيتها وصعدت إلى المرتبة الثالثة بين لغات البرمجة. بالإضافة إلى ذلك، توضح الجملة أن مكتبات بايثون مثل NumPy و Pandas تحتل دائمًا مراتب متقدمة في قسم "تقنيات وإطارات أخرى" الأكثر شيوعًا على موقع Stack Overflow خلال السنوات الثلاث الماضية. بشكل عام، تشير هذه الجملة إلى أن لغة البرمجة بايثون تصبح أكثر أهمية بين المطورين، وأن شعبيتها من المرجح أن تستمر في الارتفاع في المستقبل. كما تشير شعبية مكتبات بايثون مثل NumPy و Pandas إلى استخدام بايثون في مجموعة متنوعة من التطبيقات، بما في ذلك تحليل البيانات والحوسبة العلمية.
-
بشكل عام، يتطلب العمل في الشركات الحصول على الحد الأدنى من السن المطلوبة للعمل والذي يختلف من بلد لآخر ومن شركة لأخرى. وفي بعض الدول، يتم تحديد الحد الأدنى للسن القانوني للعمل، وقد يتم تطبيق هذا الحد الأدنى في شركات القطاع الخاص والحكومي على حد سواء. ولكن بشكل كبير لا توجد شركات تقوم بالتوظيف لمن أقل من 18 عاماً ولكن بدلاً من العمل في الشركات، يمكن العمل كمستقل والعمل على مشاريع حرة ومشاريع العملاء المختلفة. ويمكن العثور على مشاريع حرة وعملاء جدد عن طريق المواقع الإلكترونية المختلفة المتخصصة في العمل الحر مثل مستقل . ولكن المشكلة في توثيق الهوية والحل الوحيد لهذه المشكلة هو التسجيل ببيانات شخص قريب منك ويمكن أيضًا تطوير مشاريعك الخاصة وتحسينها وتسويقها عبر المنصات المختلفة للبيع مثل CodeCanyon وThemeForest وغيرها. كما يمكنك الإتفاق مع مبرمج آخر تثق به للعمل معاً في بعض المشاريع وكما أخبرك أسامة فإن بناء موقع شخصي يمكن أن يكون وسيلة فعالة لعرض مهاراتك وأعمالك السابقة وجذب العملاء والفرص الجديدة. يمكنك استخدام الموقع الشخصي كمنصة لتحميل أعمالك السابقة وعرض مهاراتك المختلفة وتفاصيل الخبرة السابقة.
- 7 اجابة
-
- 1
-
-
الأفضل هو الاهتمام بما تقوم بتطبيقه وتعلمه بدلاً من الاهتمام بالتقدم في الدورة. الهدف الرئيسي من الدورات التعليمية هو تعليم المفاهيم الأساسية والمهارات اللازمة لإتقان المهارات المطلوبة في المجال، ولكن الاستفادة الحقيقية من هذه الدورات تأتي من تطبيق هذه المفاهيم والمهارات على مشاريع عملية. عندما تستخدم المفاهيم والمهارات التي تعلمتها في مشاريع عملية، فإنها تصبح أكثر واقعية وقابلة للاستخدام في بيئة العمل الحقيقية، وتساعدك على تطوير مهاراتك وفهم المفاهيم بشكل أفضل. لذلك، يجب أن تركز على فهم المفاهيم وتطبيقها على مشاريع عملية، ويجب أن يكون التقدم في الدورة هو وسيلة لتحقيق هذا الهدف، وليس الغاية الأساسية. لذلك يمكن أن تأخذ الكثير من الوقت أكثر من أي شخص آخر وذلك بسبب التطبيق على ما تعلمته مع نفسك مثلاً بجانب التطبيقات الموجودة في الدورة أو محاولة التعمق أكثر في ما تتعلمه والعديد من الأسباب الأخرى ونصيحة لك ربما لا تعطيها الأهتمام كثيراً ولكن حاول المشاركة في المجتمعات التعليمية: يمكنك الانضمام إلى المجتمعات التعليمية والمنتديات ومواقع التواصل الاجتماعي للتواصل مع الآخرين الذين يشاركونك نفس الاهتمامات والمهارات، وتبادل الأفكار والخبرات والموارد. تحديث المهارات: يجب الاهتمام بتحديث المهارات الخاصة بك بشكل منتظم، ومتابعة التطورات في المجال الذي تعمل فيه، وتعلم أحدث التقنيات والأدوات المستخدمة في المجال.
-
يتم استخدام الدالة الموجودة في متغير key كدالة تحويل (transform function)، والتي تستخدم لتحويل كل عنصر في القائمة قبل الفرز. في حالتنا، تحويل العناصر يتم بإزالة الحرفين الأولين من كل عنصر في القائمة، ثم تحويل النتيجة إلى قيمة صحيحة (integer) باستخدام دالة int()، وهذا يتم بإستخدام التعبير اللامبدا (lambda expression). يمكن تغيير اسم المتغير key إلى اسم آخر، لكن يجب الاحتفاظ بالمعنى الذي يحمله، والذي يعني "الدالة التي تستخدم لتحويل العناصر قبل الفرز". ويمكن استخدام دالة مخصصة بدلاً من التعبير اللامبدا في المتغير key، وستعمل بنفس الطريقة، أي تحويل العناصر قبل الفرز. يتم استخدام الدالة print() لإظهار قائمة العناصر المرتبة بعد الفرز، وليست لتحويل العناصر قبل الفرز. لذلك، يجب تحديد دالة تحويل (transform function) مخصصة باستخدام المتغير key لتحويل العناصر قبل الفرز، ولا يمكن استخدام دالة print() لهذا الغرض. مثال آخر على الشرح لنفترض أن لدينا قائمة من الأسماء ونريد ترتيبها بحسب طول كل اسم. يمكن استخدام المتغير key لتحديد دالة تحويل (transform function) تستخدم لتحويل كل عنصر في القائمة قبل الفرز. في هذه الحالة، يمكن استخدام دالة len() لتحويل كل عنصر في القائمة إلى طوله قبل الفرز. يمكن استخدام المتغير key لتحديد دالة التحويل كالتالي: my_list = ['John', 'Bob', 'Alice', 'Mike', 'David'] my_list.sort(key=lambda x: len(x)) print(my_list) في هذا المثال، تم استخدام التعبير اللامبدا (lambda expression) في المتغير key لإنشاء دالة تحويل مخصصة. تستخدم هذه الدالة دالة len() لتحويل كل عنصر في القائمة إلى طوله، ثم يتم فرز القائمة وفقًا لطول كل عنصر فيها. سيتم طباعة النتيجة كالتالي: ['Bob', 'John', 'Mike', 'Alice', 'David'] ويمكن ملاحظة أن الأسماء مرتبة حسب طولها بدءًا من الأصغر إلى الأكبر. إذا كان السؤال خاص بدورة ما في الأكاديمية يفضل السؤال أسفل الفيديو وسيتم الإجابة بأسرع وقت
- 4 اجابة
-
- 1
-
-
Laravel Nova هي عبارة عن حزمة Laravel ويتم بناؤها على Laravel. وبالتالي، يمكن استخدام Laravel Nova فقط مع تطبيقات Laravel. يمكن استخدام Laravel Nova لإنشاء واجهة مستخدم إدارية لتطبيقك. يمكن استخدام Laravel Nova لإنشاء واجهة مستخدم إدارية مخصصة لإدارة مختلف الوحدات والموارد والبيانات في تطبيقك. يمكنك إنشاء موارد جديدة وتخصيص الوحدات القائمة والعلاقات بينها وإدارة المستخدمين والصلاحيات والعديد من الميزات الأخرى باستخدام Laravel Nova. يمكنك ببساطة تثبيت Laravel Nova باستخدام Composer وتكوينها لتناسب تطبيقك واستخدامها لإنشاء واجهة مستخدم إدارية مخصصة لتطبيقك. يمكنك أيضًا تخصيص واجهة المستخدم لتتناسب مع تطبيقك وتضمين مكوِّنات مخصصة لعرض بيانات تطبيقك بشكل أفضل. مثالًا على كيفية استخدام Laravel Nova لإنشاء واجهة مستخدم إدارية. سنستخدم Laravel Nova لإنشاء واجهة مستخدم إدارية لإدارة كتالوج منتجات لتطبيق الشراء عبر الإنترنت. أولاً، يجب تثبيت Laravel Nova باستخدام Composer. يمكن العثور على تعليمات التثبيت والتكوين اللازمة في الموقع الرسمي لـ Laravel Nova. بعد تثبيت Laravel Nova، يتم إنشاء مورد لكل جدول في قاعدة البيانات الخاصة بك. في هذا المثال، سننشئ موردًا لجدول المنتجات. يمكن إنشاء مورد للمنتجات باستخدام الأمر التالي: php artisan nova:resource Product بعد إنشاء المورد، يتم تحديد الحقول التي يتم عرضها وتحريرها في واجهة المستخدم. يمكن تعيين الحقول المراد عرضها باستخدام الأمر التالي في ملف المورد: public function fields(Request $request) { return [ ID::make()->sortable(), Text::make('Name')->sortable()->rules('required', 'max:255'), Text::make('Description')->hideFromIndex(), BelongsTo::make('Category')->searchable(), Number::make('Price')->sortable(), Boolean::make('Available'), ]; } يمكن إضافة مزيد من الحقول والعلاقات والتكوينات حسب الحاجة. بعد تحديد حقول المورد، يتم تسجيلها في لوحة الإدارة الخاصة بك باستخدام الأمر التالي: public static $group = 'Products'; حيث يتم تحديد المجموعة التي سيتم عرض المورد فيها في لوحة الإدارة. يمكن الآن تشغيل خادم التطبيق Laravel والوصول إلى واجهة المستخدم الإدارية الخاصة بك باستخدام المسار التالي: http://localhost/nova بهذه الطريقة، يمكن استخدام Laravel Nova لإنشاء واجهة مستخدم إدارية مخصصة لتطبيقك.
-
توضيح المزيد حول الفرق بين elif و else و if في لغة البرمجة بايثون. الكلمة if: تستخدم الكلمة if لتنفيذ جزء من البرنامج إذا تم تحقيق الشرط المحدد. على سبيل المثال، إذا كنا نريد إجراء مقارنة بين قيمتين، يمكن استخدام الكلمة if لتنفيذ الإجراء المحدد إذا كانت القيمة الأولى أكبر من القيمة الثانية. وفي حالة عدم تحقيق الشرط، يتم تجاهل الإجراء المحدد. الكلمة elif: تستخدم الكلمة elif لإضافة شرط إضافي لتنفيذ جزء من البرنامج إذا تم تحقيق الشرط المحدد، وإذا لم يتم تحقيق الشرط المحدد في الكلمة الأولى. على سبيل المثال، إذا كان لدينا ثلاثة قيم، يمكن استخدام الكلمة elif لإجراء مقارنة بين القيمة الثانية والثالثة، وتنفيذ الإجراء المحدد إذا كانت القيمة الثانية أكبر من الثالثة. وفي حالة عدم تحقيق الشرط، يتم تجاهل الإجراء المحدد في الكلمات السابقة. الكلمة else: تستخدم الكلمة else في نهاية سلسلة الشروط المحددة بـ if و elif، وتنفيذ جزء من البرنامج إذا لم يتم تحقيق أي شرط سابق. على سبيل المثال، إذا كان لدينا عددًا يمثل درجة الطالب في اختبار ما، يمكن استخدام الكلمة else لإجراء إجراء محدد إذا كانت الدرجة أقل من 50. وفي حالة تحقيق أي شرط سابق، يتم تجاهل الإجراء المحدد في الكلمات السابقة. وفيما يلي بعض الأمثلة: استخدام if و else: في هذا المثال، يتم فحص قيمة المتغير score وإذا كانت أكبر من 50، يتم طباعة "Pass"، وإلا يتم طباعة "Fail". score = 65 if score > 50: print("Pass") else: print("Fail") استخدام if و elif: في هذا المثال، يتم فحص قيمة المتغير x وإذا كانت أكبر من 0، يتم طباعة "Positive"، وإذا كانت أقل من 0، يتم طباعة "Negative"، وإلا يتم طباعة "Zero". x = 3 if x > 5: print("x is greater than 5") elif x > 2: print("x is greater than 2 but less than or equal to 5") else: print("x is less than or equal to 2") استخدام if و elif و else: في هذا المثال، يتم فحص قيمة المتغير age وإذا كانت أقل من 18، يتم طباعة "Underage"، وإذا كانت أكبر من 18 وأقل من 65، يتم طباعة "Adult"، وإلا يتم طباعة "Retired". age = 30 if age < 18: print("Underage") elif age < 65: print("Adult") else: print("Retired")
-
الخطوات الأساسية لبرمجة مُنشئ مواقع الويب الخاص بك هي: إنشاء قالب HTML: سيكون هذا القالب الأساسي لجميع المواقع التي سيتم إنشاؤها باستخدام برنامجك. يجب أن يحتوي على بنية HTML الأساسية مع الرأس والجسم وما إلى ذلك. يمكنك تضمين ملفات CSS و JS في القالب إنشاء نظام تخطيط / سمات: اسمح للمستخدمين باختيار تخطيطات مختلفة مثل تخطيط عمود واحد، تخطيط عمودين، تخطيط المدونة، وما إلى ذلك. وتضمن خيارات التنسيق للاختيار من بين الألوان والخطوط وما إلى ذلك. يمكنك أن تجعل ملفات السمات هذه تمتد للقالب الأساسي. بناء مُنشئ صفحات سحب وإفلات: اسمح للمستخدمين بسحب المكونات مثل النص والصور والأزرار، ووضعها على الصفحة. يمكنك استخدام مكتبات مثل jQuery UI للوظيفة سحب وإفلات. تطوير نظام المكونات: أنشئ مكونات قابلة لإعادة الاستخدام مثل صناديق النص، والصور، والمعارض، ونماذج الاتصال، وما إلى ذلك. حدد كيفية حفظ بيانات كل مكون وكيفية عرضه. إنشاء واجهة لإضافة/تحرير الصفحات: بناء واجهة، على سبيل المثال محرر WYSIWYG، حيث يمكن للمستخدمين إضافة، تحرير، وحذف الصفحات. اسمح بتعيين عناوين الصفحات وروابط URL وترتيب القائمة، وما إلى ذلك. إضافة بناء القائمة/التنقل: أنشئ واجهة للمستخدمين لبناء قوائم التنقل عن طريق إضافة صفحات، فئات، روابط خارجية، وما إلى ذلك إلى القائمة. تنفيذ نظام تخزين البيانات: ستحتاج إلى قاعدة بيانات لتخزين جميع الصفحات والمكونات والسمات والقوائم والمحتوى الآخر الذي تم إنشاؤه بواسطة المستخدمين. يمكنك استخدام MySQL و MongoDB وما إلى ذلك. دمج كل شيء: استخدم لغة البرمجة الخاصة بالخادم (Backend) مثل PHP أو Python لمعالجة تقديم الصفحات واسترداد البيانات من قاعدة البياناتومعالجة تحرير الصفحات وربطها بكل من الكود الخلفي والأمامي. ومثال على ذلك تم بناء Wix على مجموعة من التقنيات، بما في ذلك: React: مكتبة JavaScript لبناء واجهات المستخدم. Node.js: بيئة تشغيل JavaScript التي تسمح لـ Wix بتشغيل JavaScript على الجانب الخادم (Server-Side). Express.js: إطار تطبيق ويب لـ Node.js يستخدم لمعالجة طلبات HTTP والتوجيه. MongoDB: قاعدة بيانات NoSQL تستخدم لتخزين البيانات الخاصة بمواقع Wix. Webpack: أداة تجميع الوحدات والتي تستخدم لتحسين وتعبئة الكود الخاص بـ JavaScript في منصة Wix. بالإضافة إلى ذلك، تستخدم Wix تقنيات أخرى مثل GraphQL و MobX و Next.js للتعامل مع التواصل بين العميل والخادم وإدارة حالة التطبيق، كما تستخدم خدمات AWS للاستضافة والنشر.
- 3 اجابة
-
- 1
-
-
تعلم حل المشكلات في البرمجة هو مهارة مهمة لأي مبرمج أو مطور، ويمكن تعلمها بالتدريب والممارسة المستمرة. إليك بعض النصائح التي يمكن أن تساعدك في تحسين قدراتك في حل المشكلات في البرمجة: تعلم الأساسيات فهم المشكلة استخدام أدوات البرمجة البحث عن الحلول الممارسة المستمرة العمل الجماعي وبدلاً من تكرار الشرح مرة أخرةى يمكنك الإطلاع على الإجابات التالية
-
هناك العديد من الأمثلة التي يمكن استخدامها لتوضيح استخدام عبارة "return" في الدوال البرمجية في جافاسكريبت، ومن بين هذه الأمثلة: إرجاع قيمة: في الدالة التالية، يتم استخدام "return" لإرجاع قيمة المتغير "result" الذي يتم حسابه داخل الدالة. function addNumbers(num1, num2) { let result = num1 + num2; return result; } let sum = addNumbers(5, 7); // sum = 12 الخروج من الدالة: في الدالة التالية، تستخدم "return" للخروج من الدالة إذا لم يتحقق شرط معين، وعدم تنفيذ الأوامر اللاحقة في الدالة. function checkAge(age) { if (age < 18) { return "You are not eligible to vote."; } else { return "You are eligible to vote."; } } let result = checkAge(20); // result = "You are eligible to vote." التحقق من شرط معين: في الدالة التالية، يتم استخدام "return" لتحقق من شرط معين (إذا كان المدخلات غير صحيحة)، وإرجاع قيمة "undefined" في حالة عدم تحقق الشرط. function multiplyNumbers(num1, num2) { if (typeof num1 !== "number" || typeof num2 !== "number") { return; // إذا كان أي من المدخلات غير رقمية } else { return num1 * num2; } } let result = multiplyNumbers(5, "10"); // result = undefined هذه هي بعض الأمثلة البسيطة لاستخدام عبارة "return" في الدوال البرمجية في جافاسكريبت. يمكن استخدام هذه العبارة بطرق مختلفة وفقًا لاحتياجات البرنامج ومتطلبات العمل.
- 5 اجابة
-
- 1
-
-
كما أخبرك عدنان فإن المشكلة تكمن في تنفيذ الأمر npm strat في المسار الموجود به ملف package.json كما هناك بعض الممارسات العامة التي يمكن اتباعها لتنظيم مشروع React بشكل جيد. يمكن استخدام هذه الإرشادات كنقطة انطلاق عند بدء تنظيم مشروعك: ترتيب مقترح للمجلدات والملفات في مشروع React: مجلد public: يحتوي على الملفات العامة مثل: index.html favicon.ico أي ملفات صور أو CSS مجلد src: يحتوي على كل ملفات المصدر للمشروع مثل: مجلد components: يحتوي على مكونات React مجلد assets: يحتوي على الصور والملفات الأخرى مجلد styles: يحتوي على ملفات CSS أو Sass ملف index.js: يحتوي على تصدير التطبيق الرئيسي ملف App.js: يحتوي على المكون الرئيسي للتطبيق مجلد config: يحتوي على ملفات الإعدادات مثل webpack وغيرها .gitignore: ملف إهمال git لتجاهل ملفات مثل node_modules وأي ملفات أخرى غير ضرورية لإدارة نسخة المشروع. وبالطبع ملف الpackage.json في نفس مستوى المجلد src هذا الترتيب العام يساعد في تنظيم وتنسيق ملفات مشروع React ويجعله سهل التوسع والصيانة.
-
الخطوات التالية تحل المشكلة بشكل أبسط. تتضمن الخطوات: مسح ذاكرة التخزين المؤقت لـ npm باستخدام الأمر npm cache clean -f حذف مجلد node_modules باستخدام الأمر rm -rf node_modules إعادة تثبيت المكتبات والأدوات المطلوبة باستخدام الأمر npm i يتم استخدام هذه الخطوات في حالات عديدة عند وجود مشاكل في تثبيت وإدارة مكتبات npm. وتعمل هذه الخطوات عادة على حل مشاكل التثبيت والتشغيل والتحديث للمكتبات والأدوات المطلوبة.