لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 07/05/22 في كل الموقع
-
في دورة علوم الحاسوب المسار الثاني عن لغة Java script الشرح لا يناسب المبتدء و لا يمكنني فهم شي عن اللغة ، اتمنى ان تجدوا لي حل لي هذه المشكله. شكرا2 نقاط
-
إن أفضل طريقة لإنشاء تطبيق React هو من خلال NodeJS - Npm وتثبيت المكتبات من خلالهم يوجد المكتبة create-react-app التي من خلالها يمكن إنشاء مشروع ابتدائي مع هرمية ملفات مناسبة و مرتبة للبدء بالتطوير، ننصب هذه المكتبة في الحاسوب من خلال CMD بالأمر: npm install -g create-react-app ثم ننتقل لمسار إنشاء المشروع و نقوم بالتالي: npx create-react-app my-app إنشاء المشروع cd my-app npm start تشغيله تقدم أكاديمية حسوب مجموعة شروحات عن React يمكن أن تجدها في دروس و مقالات البرمجة: باقي المقالات: ReactJS سؤال مشابه: أرجو البحث في الموقع.2 نقاط
-
السلام عليكم ورحمة الله لدي مشكل فهم في laravel routes كا get & post وغيرها delet & options ..الخ كما انني لم استوعب توابعها ففي غالبية الشروحات يضعونها دون شرح كا group & name and where وغيرهم فلو تكرمتم بشرحها لي ان لم يكن في الامر عسر وشكرا لكل من افادني والصلاة والسلام على رسول الله ❤1 نقطة
-
جرب الاحتمالات الممكنة لقمية v ( كائن - مصفوفة ..) جرب المثال، ماذا تلاحظ؟ let v = [] if (v) {console.log('true')} فارغة ممكن null - undefined و محاولة الوصول للخاصية تعطي خطأ المهم عدم استدعاء خاصية لكائن لا يحوي قيمة1 نقطة
-
لنراجع الشيفرة لديك، أنت تقوم بتعريف مصفوفة tasks لتضع فيها البيانات الجديدة ثم تخزنها نفسها في localStorage في المفتاح value هذا يحذف القيمة القديمة. لذلك يتوجب نقل العناصر من v إلى tasks أول تشغيل البرنامج ثم تتابع التعامل مع tasks let v = window.localStorage.getItem("value"); console.log(v); let tasks = Array(); tasks.push(...(v.split(","))); console.log(tasks); السطر التالي يعطي خطأ، نتأكد من أن v فيها قيمة قبل جلب طولها if (!v || v.length === 0) { console.log("tasks not found"); } !v => اختبار هل هي فارغة أو طولها صفر1 نقطة
-
أرجو إرفاق الشيفرات البرمجية بعد آخر تعديل (يستحسن كامل الصفحة)1 نقطة
-
قمت باخذ Api من موقع يعيد اسماء وصور ومعلومات لعدد من الممثلين لكن أريد فقط اعادة الاسم الذي اريده من بين الاسماء الموجودة async function breaking_bad() { const response=await fetch( "https://breakingbadapi.com/api/characters") const data=await.json() console.log(data) }1 نقطة
-
في حال طباعة طول مصفوفة data console.log(data.length); سوف يكون 62 وهو عدد الشخصيات، وفي حال طباعة data سوف تظهر النتائج على الشكل التالي: (مصفوفة كائنات) [ { char_id: 1, name: 'Walter White', birthday: '09-07-1958', occupation: [ 'High School Chemistry Teacher', 'Meth King Pin' ], img: 'https://images.amcnetworks.com/amc.com/wp-content/uploads/2015/04/cast_bb_700x1000_walter-white-lg.jpg', status: 'Presumed dead', nickname: 'Heisenberg', appearance: [ 1, 2, 3, 4, 5 ], portrayed: 'Bryan Cranston', category: 'Breaking Bad', better_call_saul_appearance: [] }, { char_id: 2, name: 'Jesse Pinkman', birthday: '09-24-1984', occupation: [ 'Meth Dealer' ], img: 'https://vignette.wikia.nocookie.net/breakingbad/images/9/95/JesseS5.jpg/revision/latest?cb=20120620012441', status: 'Alive', nickname: "Cap n' Cook", appearance: [ 1, 2, 3, 4, 5 ], portrayed: 'Aaron Paul', category: 'Breaking Bad', better_call_saul_appearance: [] }, ..... ...... .... ] فالسؤال ما هو الاسم الذي تريدينه من بين 62 شخصية؟ يمكن الوصول لشخصية معينة عبر دليل المصفوفة data 0-1-2-3 let character1 = data[0]; بهذه الطريقة سوف يحمل المتغير character1 كائن يمثل بيانات أول شخصية (كما في المثال السابق) وطالما أنه كائن JSON يمكن الوصول لخواص هذا الكائن عن طريق النقطة let name = data[0].name; or let name = character1.name; في حال أردت عمل فلترة ضمن المصفوفة نستخدم filter مع تمرير شرط ( رقم الشخصية) let character = data.filter(obj => obj.char_id == 1) console.log(character[0].name);1 نقطة
-
قمت باخذ Api من موقع يعيد اسماء وصور ومعلومات ووضعتها ضمن الكود لدي بطريقة async لكن لم احصل على المعلومات عند التنفيذ async function breaking_bad() { const response= fetch( "https://www.breaking.com/api/") console.log(data) }1 نقطة
-
إن الطريقة fetch تقوم بإرسال طلب غير متزامن للخادم المتمثل في المسار الممرر لها، وتعيد كائن من نوع Promise ولكي نعمل resolve له، يتوجب انتظاره لينتهي تنفيذه، وذلك بوضع الكلمة المفتاحية await قبل استدعائه بالشكل التالي: const response = await fetch( "https://www.breaking.com/api/") أرجو التأكد من الرابط لأنه لا يعمل يمكن استعمال موقع json placeholder للتجريب الخطوة الثانية هي تحويل رد الخادم لكائن JSON ليسهل التعامل معه وتعريف المتغير data لأنه غير معرف لديك. const data= await response.json() لاحقاً يمكن طبع البيانات. ملاحظة: الموقع الصحيح هو: breakingbadapi.com الشيفرة النهائية: لاننسى استدعاء الدالة async function breaking_bad() { const response = await fetch("https://www.breakingbadapi.com/api/"); const data= await response.json() console.log(data); } breaking_bad()1 نقطة
-
بداية من الإصدار 1.10 في جانغو Django ، أصبح بإمكنك إستعمال الدالة get_random_secret_key كذلك التي توفر لك توليد SECRET_KEY في كل مرة تستدعيها، ويمكنك إستعمالها بالشكل التالي: from django.core.management.utils import get_random_secret_key SECRET_KEY = get_random_secret_key() # '+eyek9npq1xv1b5xt!dbx01pr72kf5ebq@f^@)8@$r@99(&e62' يمكنك الإطلاع على الكود الخاص بهذه الدالة في كود جانغو Django نفسه في مستودع المشروع. ملاحظة: هذه الطريقة تقوم بتوليد مفتاح جديد في كل مرة تشغل فيها المشروع، وحتى وإن قمت بتشغيل أكثر من نسخة من نفس المشروع فسيعمل كلُ منها بمفتاح مختلف عن الآخر، وعليك أن تُشير في المشروع الخاص بك عن كيفية تغير قيمة SECRET_KEY ليتمكن المستخدمون بعد ذلك من تعديل المشروع وإستعماله بشكل سليم.1 نقطة
-
السلام عليكم اني جديد على البرمجة هدفي بناء متجر خاص شو تنصحوني يا دورة اتفيدني1 نقطة
-
لبناء أي موقع إلكتروني نحتاج إلى جزئين أساسيان، الأول هو الواجهة الأمامية Frontend ويوجد دورة دورة تطوير واجهات المستخدم هذه الدورة تبدأ معك من الأساسيات (HTML و CSS و JavaScript ... إلخ) وخلال مسارات الدورة تبني موقع مشابه لليوتيوب ومتجر إلكتروني وخمس صفحات هبوط Landing Pages ولوحة تحكم كاملة وموقع لشركة متكامل وغيرها من مشاريع. الجزء الثاني الذي نحتاجه لبناء موقع هو الواجهة الخلفية Backend ويوجد في الأكاديمية أكثر من دورة تقدم هذا الأمر بإستخدام أربع لغات مختلفة، ويمكنك الإشتراك في واحدة منهم فقط لتعلم تطوير الواجهات الخلفية backend، وهم كالتالي: دورة تطوير تطبيقات الويب باستخدام لغة PHP: تستخدم في هذه الدورة لغة PHP وتبدأ الدورة في شرح الأساسيات البرمجية بإستخدام PHP ثم تنتقل لشرح كيفية التخاطب مع الخادم وكيف يتم إرسال الطلبات، ثم يتم عمل تطبيق ويب لإدارة المهام، وشرح أساسيات إطار العمل Laravel، بناء تطبيق إدارة المهام باستخدام إطار العمل Laravel، تطوير واجهة برمجية API بالإعتماد علي نمط RESTful، تطوير موقع إعلانات مبوبة، شبكة اجتماعية تشبه Instagram، تطوير نظام إدارة محتوى CMS كامل من الصفر، وفي النهاية يتم شرح كيفية تطوير قوالب WordPress، يمكنك معرفة المزيد من التفاصيل من خلال صفحة الدورة من هنا (دورة تطوير تطبيقات الويب باستخدام لغة PHP). دورة تطوير التطبيقات باستخدام لغة JavaScript: وهي دورة عامة يتم خلالها شرح الأساسيات البرمجية بإستخدام JavaScript، ثم شرح تطوير تطبيقات الخادم Backend باستخدام بيئة Node.js وإطار العمل Express.js، ثم تنتقل لأساسيات مكتبة React.js وبناء تطبيق ملاحظات باستخدامها من نوع SPA، ثم ستتعرف على أساسيات مكتبة React Native و Expo لعمل تطبيقات الهاتف الجوال، وستبدأ في تطوير تطبيق جوال للوصل بين الأطباء والمرضى، وبناء بناء تطبيق محادثة يشبه تطبيق WhatsApp، بعد ذلك ستدرس أساسيات إنشاء تطبيقات لسطح المكتب من خلال إطار العمل Electron.js وكيفية إنشاء مشاريع من خلال إطار العمل Next.js، يمكنك معرفة المزيد من التفاصيل من خلال صفحة الدورة من هنا (دورة تطوير التطبيقات باستخدام لغة JavaScript). دورة تطوير تطبيقات الويب باستخدام لغة Ruby: تبدأ الدورة في شرح الأساسيات البرمجية بإستخدام Ruby، ستبدأ في عمل مشاريع من خلال بناء لعبة بسيطة باستخدام لغة Ruby، ثم ستنتقل لإنشاء تطبيقات الويب من خلال التعرف على أساسيات إطار العمل Ruby on Rails، وفي النهاية سوف تقوم بالتطبيق من خلال بناء تطبيق إدارة محتوى، وتطوير شبكة إجتماعية تشبه تويتر، يمكنك معرفة المزيد من التفاصيل من خلال صفحة الدورة من هنا (دورة تطوير تطبيقات الويب باستخدام لغة Ruby). دورة تطوير التطبيقات باستخدام لغة Python: الدورة مكونة من 44 ساعة فيديو تدريبية، ستتعلم خلال الدورة كيف تبني تطبيقات اعتمادًا على إطار العمل جانغو Django، إضافةً إلى تطبيقٍ عملي لإنشاء واجهة برمجية API باستخدام إطار العمل فلاسك Flask، كما ستطور متجرًا إلكترونيًا متكاملًا باستخدام جانغو Django، وتربط المتجر مع بوابات الدفع بي بال PayPal وسترايب Stripe. يمكنك إختيار أي دورة من الدورات الأربعة السابقة وستتمكن من بناء أي واجهة خلفية Backend تريد.1 نقطة
-
1 نقطة
-
عند طلب تسليم المشروع لصاحب المشروع هل يمكن لصاحب المشروع تحميل تصميمات المشروع كاملة قبل الخطوة الاخيرة وهي إستلام المشروع ؟ ولو افترض انه يستطيع الحصول علي المشروع اولا كيف يضمن للمستقل ان صاحب المشروع بعد استلامه التصميمات سيفعل زر استلام المشروع ؟1 نقطة
-
عليك إرفاق الملفات كاملة، و تسليم المشروع، أي تسليم كامل الملفات. فريق مستقل يضمن حقوقك. أي لن يستطيع صاحب المشروع تحميل الملفات والاستفادة منهم أو سرقتهم و عدم الدفع. طالما تم توظيفك على المشروع فأنت بأمان، أما في حال كنت ضمن فترة النقاش لا ترسل أي ملفات ولا تنجز أي جزء من المشروع. عند موافقة صاحب المشروع على العرض يتم حجز أموال من رصيده حتى إنتهاء العمل من المشروع.1 نقطة
-
1 نقطة
-
اريد اسهل طريقة عن تحميل مكتبة رياكت تبع جافا سكربت، وشرح مبسط عن كيفية الاستخدام1 نقطة
-
عند تشغيل البرنامج والبدء في صفحة تسجيل الدخول تظهر الرسالة المرفقة ارجو المساعدة والتوضيح MySql.Data.MySqlClient.MySqlException: 'Authentication to host 'localhost' for user 'root' using method 'mysql_native_password' failed with message: Access denied for user 'root'@'localhost' (using password: YES)'1 نقطة
-
تلك الرسالة تخبرك بأن يوجد خطأ في إسم المستخدم أو كلمة المرور الخاصين بقاعدة البيانات التي تحاول الاتصال بها, يرجى التاكد من صحة البيانات وسيتم حينها الإتصال بنجاح1 نقطة
-
import java.io.IOException; public class mmm { public static void f(String s) throws IOException{ System.out.print(s); } public static void main(String[] args) { f("hi"); } } كيف انفذ هذا البرنامج ولكن بدون عمل handling لtry_catchداخل الmain. مع شرح كيفيه عمل الاخطاء في الدوال المنشاة من قبل المبرمج ؟ جزاكم الله خيراً1 نقطة
-
1 نقطة
-
هناك مؤسسة كاملة للأسماء و الأرقام المخصصة تدعى باسم ICANN و هي مؤسسة غير ربحية و هي مختصة بتوزيع و إدارة عناوين و بروتوكول الأنترنت و أسماء المجالات و تخصيص أسماء المواقع العليا في جميع أنحاء العالم و بالتالي كل الشركات التي تقوم بتأجير اسماء المجالات هي شركات تحصل على ترخيص من هذه الشركة بكمية و أنواع المجالات التي يجب بيعها .1 نقطة
-
شركات الاستضافة من أين تحصل على الدومين؟ وهل هنالك دولة مسؤولة عنه؟ وإذا كان بإمكان شركات الاستضافة حجز دومين حسب طلبي لماذا انا لا يمكنني إنشاء دومين خاص بي بدون الاستعانة بشركات الاستضافة؟1 نقطة
-
لا يمكنك حجز اسم دومين إلى بشرائه من شركات الاستضافات التي تزود تأجير النطاقات و يجب عليك بعد شراء الدومين إعادة توجيهه إلى عنوان ip الخاص بالخادم بك ، لذلك يجب أن يكون ip الخادم ثابت لكي لا تفقد ip الخادم مما يدفعك في كل مرة تفقده من اعادة توجيه النطاق لل ip الجديد.1 نقطة
-
مرحبا أحمد، في أي دورة أو محتوى تعليمي يوجد من الطلاب ما تناسبه الدورة و يتعلم منها بشكل جيد، والبعض لا يعجبه أسلوب مدرب ما أو يكون غير ملتزم ولا يتحلى بالصبر المناسب لعلوم البرمجة ليتحسن مستواه.. من الطبيعي لكل شخص يريد تعلم البرمجة، أن يختار مصدر موثوق و جيد. مدربي أكاديمية حسوب متواجدين طيلة الوقت يتابعون استفسارات الطلاب، ويقدمون شرح و مساعدة في حل أي مشكلة تواجه الطلاب. عند اشتراكك في الدورة سيكون أمامك متسع من الوقت للتعلم والدراسة، و الأكاديمية ملتزمة بأن تعيد لك الأموال في حال لم تعجبك الدروة و أردت إلغاء الاشتراك، وحتى بعد التخرج من المسار ب 6 أشهر إن لم تجد عمل خلال هذه الفترة. أرجو قراءة الأسئلة الشائعة ومعلومات دورة جافا سكربت بشكل جيد.1 نقطة
-
يمكنك إضافة تابع method باسم full_name وإضافة المزخرف property@ حتى يمكن إستخدامه كخاصية عادية: class Clients(models.Model): first_name = models.CharField(max_length=199) last_name = models.CharField(max_length=199) @property def full_name(self): return f'{self.first_name} {self.last_name}' كما ترى، يُعيد هذا التابع الاسم الأول والاسم الأخير بسهولة.1 نقطة
-
جانغو Django يوفر إمكانية معرفة نوع الملف المرفوع بسهولة مثل معرفة اسم الملف: file = request.FILES['filename'] file.name # اسم الملف file.content_type # نوع الملف text/html Image/png image/jpeg ... يُفضل إستخدام هذه الطريقة لأن الملفات المرفوعة غير آمنة وقد يتم تغير صيغة الملف المرفوع من svg إلى إلى png على سبيل المثال وفي هذه الحالة سوف يقوم المتصفح بعرض ملف SVG والذي قد يحتوي على أكواد JavaScript مما يُعرض الموقع إلى ثغرة XSS1 نقطة
-
1 نقطة
-
بما ان لديك اسم الملف من المتغير file يوجد مكتبة في البايثون لمعرفة نوع الملف Python-Magic سوف تقوم بتنصيبها pip3 install python-magic بعد ذلك سوف تقوم بإستخدامها من المتغير file يمكن وضع اسم الملف او المسار : import magic mime = magic.from_file(file_path, mime=True) سوف يتم حفظ نوع الملف في المتغير mime هذا مثال على استخدامها : mime = magic.from_file('path/to/a_file.jpg', mime=True) print(mime) #'image/jpg' هكذا اصبح يُمكنك معرفة نوع الملف من request.FILES['filename'] بإستخدام مكتبة python-magic.1 نقطة
-
إذا كنت تريد حفظ الحقل full_name في قاعدة البيانات وهو يجمع ال first_name مع last_name يُمكنك القيام بذلك فقط بإضافة حقل full_name في الModel Clients عند تعبئة البيانات يكون فارغ ومن ثم في دالة ال ()save عند حفظ الكائن سوف يتم تخزين قيمة ال first_name و last_name داخل ال full_name بشكل تلقائي ليتم ذلك هكذا سوف يكون الكود الخاص بك: class Clients(models.Model): first_name = models.CharField(max_length=199) last_name = models.CharField(max_length=199) full_name = models.CharField(max_length=199, blank=True) def save(self): self.full_name = self.first_name +' '+ self.last_name return super(Clients, self).save()1 نقطة
-
1 نقطة
-
لقد تم تصميم أطر البرمجية ك جانقو او لارفيل و أغلب أطر أخرى لتخطي أمور الروتينية التي كان مطور نيتف* يقوم بها في قواعد البيانات فبدل تضيع الوقت في كتابة جمل برمجية SQL ستركز على تطوير ميزات التطبيق أو المشروع الخاص بك في حال كنت تريد تعلم المزيد عن جمل SQL و عملها في بايثون أو أي لغة أخرى فقط قم بالبحث على طريقة استخدام SQL مع لغة التي تريدها و منها ستعرف كيف يتم إتصال بشكل يدوي بقواعد البيانات و إنشاء قواعد البيانات و الجداول و إضافة البيانات على كل جدول و عمل جمل إستعالمة على جداول و أمور كثيرة لا ترهق نفسك بهذه التفاصيل عند تطويرك مشاريع على إيطار العمل جانقو Django لكن تعلم SQL نفسها سيكون مفيداً بلا شك لتعامل مع قواعد البيانات خارج إطار العمل Django. (أي البرمجة بدون أطر عمل framework )* للمزيد من التفاصيل عن SQL1 نقطة
-
وعليكم السلام ورحمة الله وبركاته من الجيد جدًا أنك لا تريد تخطي أي نقاط بدون فهما بشكل كامل، وتريد تعلم كل ما تحتويه الدروس بشكل جيد، وهذا الأمر من صفات المبرمج البارع. أعتقد أن المشكلة لديك في عدم تحديد هدف واضح وصريح، فالبرمجة متشعبة للغاية وتحتوي على العديد من الفروع والأقسام ومن الصعب للغاية أن يتعلم شخص واحد كل الفروع، في الواقع من الصعب حتى تجربة كل فروع البرمجة بشكل متأنٍ تجربة شاملة، لذلك يجب في البداية تحديد هدف واضح، هل تريد أن تكون مطور واجهات أمامية Frontend Developer؟ أم تريد أن تكون مبرمج واجهات خلفية Backend Developer؟ أم تريد أن تجمع بينه المجالين معًا لتصبح مطور شامل Full-stack Developer؟ بناءً على إجابة هذا السؤال ستحدد ما الذي عليك تعلمه بشكل متعمق وما الذي تحتاج إلى الإطلاع عليه فقط ولا تحتاج إلى دراستها بشكل مفصل. بما أنك إشترك في دورة PHP الخاصة بالأكاديمية فأتوقع أنك تريد أن تصبح أما مبرمج واجهات خلفية Backend Developer أو مبرمج شامل Full-stack Developer، في الحالة الأولى ليس عليك الإهتمام بأمور التنسيق مثل CSS و SCSS و Tailwind وغيرها من الأمور، يكفي فقط أن الإطلاع على هذه التقنيات إطلاعًا بسيطًا يساعدك على تخيل كيف يتم إنشاء باقي الموقع في جزء الوجهة الأمامية Frontend، وأنا لا أقصد أن تعلم هذه التقنيات ليس مفيدًا بل أقصد أن التركيز على تقنيات الوجهات الخلفية Backend والخوادم Server وقواعد البيانات Databases له الأولوية ومن الأفضل تعلم تقنيات مجالك على التنقل بين تنقيات مجال مختلف بدون فائدة مرجوة وواضحة منها. أما إن كان هدفك هو أن تصبح مبرمج شامل Full-stack Developer فحينها سيختلف الأمر كثيرًا لأنك يجب أن تتعلم التقنيات الموجودة في المجالين (Frontend + Backend)، وفي هذه الحالة يجب أن تدرس CSS و SCSS و Tailwind CSS و Bootstrap وغيرها من التقنيات لأنها جزء لا يتجزء من عملك كمطور شامل، بالطبع مع تعلم تقنيات الواجهات الخلفية Backend كذلك. في العادة يتعلم الشخص الذي يهدف إلى أن يصبح مطور شامل تقنيات الواجهات الأمامية Frontend، لأنها أسهل وترى نتيجة الكود الخاص بك بشكل مباشر في المتصفح، مما يعغطية دفعة معنوية ويساعدة على إكمال رحلته في تعلم البرمجة، على عكس تقنيات الواجهات الخلفية التي لا تحتوي على أي تأثيرات أو ألوان وفي الغالب تكون تعامل مع الكود المنطقي وقواعد البيانات فقط، ولكن بما أنك تعلمت أساسيات PHP وقواعد البيانات وكذلك إطار عمل مثل Laravel بالإضافة إلى إدراكك كيفية إستخدام HTML و CSS ولو بشكل بسيط، فمتاح لك الآن أما أن تكمل بتعلم تقنيات الواجهات الأمامية Frontend أو تقنيات الواجهات الخلفية Backend ولن تواجهة مشكلة في فهم أي منهما لأن لديك بالفعل فكرة واضحة عن التقنيات المستخدم في كلا المجالين. لاحظ أيضًا أن لغات مثل CSS و JavaScript هي لغات ضخمة وتحتوي على العشرات والمئات من الخصائص والكائنات والكثير من الأمور التي يجب تعلمها، وهذا الأمر سيستغرق منك الكثير من الوقت، ولهذا السبب أنصحك أن تتعلم CSS بجانب دراسة دورة PHP التي إشتركت بها، ويمكنك خلال تطبيق الدروس أن تستخدم CSS للتدريب عليها، وبهذا تستفيد من كلا الجانبين. بما أنك مشترك في دورات حسوب فستجد أن المسار الأول من كل دورة متاح لك ويمكنك الإطلاع عليه، وأنصحك أن تستغل هذه الفرصة وتقوم بالإطلاع على المسار الأول من دورة تطوير واجهات المستخدم Frontend لتدرس CSS و Bootstrap و jQuery بشكل جيد وتقوم بعمل موقع شخصي بسيط من الصفر بإستخدام هذه التقنيات. بعد إتمام هذا المسار تستطيع الإطلاع على Tailwind CSS من خلال التوثيق الرسمي له، ولن تواجهة مشاكل في فهم كيفية إستخدامه في مشاريعك، كما ستفهم أكثر ما هي أصناف Tailwind التي يضيفها المدرب ضمن مشاريع Laravel في دورة PHP. ليكون الأمر أكثر وضوحًا، ستجد هنا مجموعة من الخطوات المتسلسلة التي يمكنك إتباعها لتعلم ما ينقصك لتصبح مبرمج شامل Full-stack Developer: تابع المسار الأول ضمن دورة تطوير واجهات المستخدم Frontend، ستتعلم في هذا المسار أساسيات CSS و Bootstrap و jQuery بشكل جيد وتقوم بعمل موقع شخصي بسيط من الصفر بإستخدام هذه التقنيات. أقرأ توثيق Tailwind CSS بعناية وحاول أن تستخدمه ضمن المشاريع التي قمت بها سابقًا، وسيتجد ضمن توثيق Tailwind شرح كيفية إستخدامه من الصفر أو ضمن مشاريع Laravel أيضًا. تابع إكمال دورة تطوير الواجهات الخلفية بإستخدام PHP، وحاول أن تقوم بعمل جزء الواجهة الأمامية بنفسك دون الإطلاع على شرح المدرب، لتتدرب على CSS و Tailwind معًا. بعد إكمال دورة تطوير الواجهات الخلفية بإستخدام PHP، حاول أن تقوم بالإطلاع على دورة تطوير التطبيقات بإستخدام JavaScript لأنها تحتوي على الكثير من الأمور المفيدة لك مثل Node.js و React.js و MongoDB .. إلخ. الآن ستكون قد أتمت رحلة التعلم، ولكن البرمجة لا تتوقف وستجد في كل يوم تحديثات كثيرة لكل التقنيات التي تستخدمها، حاول أن تبقى على إطلاع بالمواقع التقنية وتحديثات حسوب وكذلك المقالات التي يتم نشرها ضمن الأكاديمية. الخطوات السابقة ليست إجبارية ويمكنك أن تقوم بتعديلها لتتوافق مع أهدافك وظروفك الشخصية كما تشاء.1 نقطة
-
تحتوي الأكاديمية على دورة تطوير تطبيقات الجوال بتقنيات الويب، والتي من خلالها سوف تتعلم كيفية عمل تطبيقات أندرويد و iOS من خلال لغات مثل HTML و CSS و JavaScript وسوف تحصل في النهاية على القدرة على برمجة تطبيقات للأندرويد و iOS معًا من خلال كود واحد فقط (تركز الدورة على برمجة تطبيقات الأندرويد بشكل خاص ولكن يمكنك أن تقوم بعمل تطبيقات iOS بنفس الطريقة وبدون إختلافات)، وبما أنك سوف تستخدم تقنيات الويب مثل HTML و CSS و JavaScript فسوف يكون لديك القدرة على عمل مواقع (Frontend)، فبطبيعة الحال تسمى الدورة "دورة برمجة تطبيقات الهواتف الذكية بإستخدام تقنيات الويب". بالنسبة للفرق بين المطور والمبرمج والمصمم، فهو كالتالي: المصمم هو الشخص الذي يقوم برسم شكل التطبيق النهائي بإستخدام برامج مثل أدوبي أكس دي و Figma، مجرد رسومات فقط وليس تطبيق حقيقي، ويتم إرسال هذه التصاميم إلى المطور ليحولها إلى كود. المطور هو الشخص الذي يقوم بكتابة كود واجهة التطبيق مثل الأزرار وإضافة الصور والنصوص في التطبيق، بمعنى آخر هو الشخص المسئول عن كل ما يظهر في التطبيق. المبرمج هو الشخص الذي يقوم بكتابة الكود المنطقي، مثل ما الذي سيحدث عندما يضغط المستخدم على زر معين وكيف سيتم جلب البيانات من قاعدة البيانات والتأكد من مدخلات المستخدم (البريد الإلكتروني، كلمة السر ...)، إلخ. وفي كثير من الأحيان يقوم شخص واحد فقط بالقيام بمهمتين أو أكثر معًا، ويسمى مبرمج ومطور تطبيقات على سبيل المثال. وعند الإنتهاء من دورة تطوير تطبيقات الهواتف الذكية بإستخدام تقنيات الويب سوف تكون مطور ومبرمج في نفس الوقت، لأنك سوف تقوم بعمل التطبيقات من الصفر وحتى إنهائها تمامًا. أيضًا يوجد خيار آخر وهو دورة التطوير بإستخدام لغة JavaScript والتي من خلالها سوف تتعلم برمجة وتطوير مواقع الويب (backend & frontend) وكذلك عمل تطبيقات لسطح المكتب تعمل على الويندوز ولينكس وماك من خلال أطار Electron، وسوف تتعلم أيضاً عمل تطبيقات الهواتف الذكية (أندرويد و iOS) من خلال React Native، وسوف تقوم ببناء تطبيق للمراسلة مثل WhatsApp خلال الدورة. كل الدورات تبدأ معك من الصفر ولا تحتاج لخبرة مسبقة للبدأ في أي دورة من دورات الأكاديمية، ولكن إن لم تتعامل مع أي أكواد من قبل أو لا تعرف أساسيات البرمجة فيفضل أن تقوم بأخذ دورة علوم الحاسوب وهي دورة مخصصة تشرح لك كل أساسيات البرمجة وأنظمة التشغيل وأساسيات الويب عبر تعلم HTML, CSS & JavaScript وطلبات الإنترنت requests والخوارزميات وهياكل للبيانات من خلال لغة بايثون وكيفية التفكير المنطقي وحل المشاكل وإصلاح الأخطاء ... إلخ.1 نقطة
-
يحدث هذا الخطأ لأن المتصفح لا يقوم بإرسال حقل checkbox إن لم تكن محددًا، وبالتالي لا يوجد مفتاح باسم is_published في القاموس request.POST، لذلك يمكنك أن تستخدم التابع get الموجود في أي قاموس dictionary والذي يسمح لك يتمرير قيمة إفتراضية في حالة عدم وجود المفتاح في القاموس، كالتالي: is_published = request.POST.get('is_published', False) أو يمكنك عمل ذلك من خلال جملة if .. else، على النحو التالي: if 'is_published' in request.POST: is_published = request.POST['is_published'] else: is_published = False ويمكن إختصار الكود السابق في سطر واحد، كالتالي: is_published = 'is_published' in request.POST and request.POST['is_published'] كما يمكنك أن تستخدم جملة try ... except: from django.utils.datastructures import MultiValueDictKeyError try: is_published = request.POST['is_published'] except MultiValueDictKeyError: # في حالة لم يوجد المفتاح is_published is_published = False1 نقطة
-
يمكنك أن تستخدم جملة with على النحو التالي: {% with "posts/"|add:myVar|add:"/base.html" as template %} {% include template %} {% endwith %} لكن الطريقة الأفضل هي أن تقوم بعمل وسم مخصص لهذا الأمر كالتالي: أولًا قم بعمل ملف يف المسار: <yourAppName>\templatetags\<yourAppName>_extras.py ثانيًا في هذا الملف قم بعمل وسم مخصص على النحو التالي: from django import template register = template.Library() @register.filter def addStr(str1, str2): return str(str1) + str(str2) والآن أصبح بإمكانك أن تستخدم هذا الوسم على كالتالي: {% load <YourAppName>_extras %} {% with "posts/"|addstr:myVar|addstr:"/base.html" as template %} {% include template %} {% endwith %}1 نقطة
-
ذلك لأن القيمة flex مثلها مثل block و inline و inline-block، تقوم بالتأثير على العناصر بشكل معين، فعلى سبيل المثال، الخاصية display: block تجعل العناصر تترتب أسفل بعضهم البعض، بينما الخاصية inline تجعل العناصر بجانب بعضهم البعض لكن لا يمكنك أن تحدد طول height للعناصر، بينما القيمة inline-block تجعل العناصر بجانب بعضهم البعض ويمكنك أن تحدد طول height ... إلخ. وكذلك القيمة flex تجعل العنصر ينكمش على محتوياته بشكل إفتراضي وتجعل المحتويات (العناصر الأبناء بجانب بعضهم البعض)، وبالطبع يمكن تغير هذا الأمر من خلال بعض خصائص flexbox مثل الخاصية flex أو الخاصية flex-direction. يمكنك معرفة المزيد عن خصائص Flexbox في CSS من خلال هذه المقالات:1 نقطة