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

Abdulaziz Yusuf

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

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

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

آخر الزوار

لوحة آخر الزوار معطلة ولن تظهر للأعضاء

إنجازات Abdulaziz Yusuf

عضو مبتدئ

عضو مبتدئ (1/3)

1

السمعة بالموقع

  1. لا يوجد شخص مهتم بالذكاء الاصطناعي لا يعرف بأن لغة البرمجة بايثون هي واحدة من أهم لغات برمجة الذكاء الاصطناعي وتعلم الآلة فهي توفر الكثير من المكتبات وأطر العمل التي تعزز هذا المجال. وسنعرفك في مقال اليوم أحد أشهر أطر عمل الذكاء الاصطناعي والتعلم العميق Deep Learning في لغة بايثون وهو على إطار عمل باي تورش PyTorch الذي اكتسب شهرة واسعة خلال السنوات الأخيرة، وأصبح اليوم واحدًا من الأدوات الأكثر استخدامًا في العالم في مجال تعلم الآلة، ونوضح لك أبرز مميزاته واستخداماته وطريقة التعامل معه. ما هو باي تورش PyTorch باي تورش PyTorch هو إطار عمل مفتوح المصدر للتعلم العميق، والتعلم العميق هو أحد فروع الذكاء الاصطناعي (AI) يستخدم الشبكات العصبية artificial neural network للتعلم من البيانات وتنفيذ مهام مثل الرؤية الحاسوبية ومعالجة اللغة الطبيعية والتعرف على الكلام. طُوّرَ إطار PyTorch من قبل فريق بحث الذكاء الاصطناعي في شركة ميتا (فيسبوك سابقًا) عام 2016 استنادًا إلى مكتبة تورش السابقة Torch المستندة بدورها إلى لغة البرمجة Lua، وهو مكتوب بلغة البرمجة الشهيرة بايثون Python ويعد اليوم إطار عمل ذائع الصيت ويملك مجتمعًا كبيرًا من المساهمين والمطورين وهو يستخدم في العديد من الشركات الكبرى مثل Tesla و Uber وغيرها. وما نعنيه هنا بإطار التعلم العميق منصة برمجية توفر لك طبقة تجريدية تمكنك من بناء وتدريب الشبكات العصبية العميقة ونشرها بسهولة كبيرة، فالهدف من إطار العمل باي تورش PyTorch هو تمكين المستخدمين من تنفيذ مهام التعلم العميق بطريقة بسيطة وفعالة. فإنشاء نماذج من الصفر في تطبيقات الذكاء الاصطناعي المختلفة مثل التعرف على الصور أو معالجة اللغة الطبيعية، أمر صعب ومعقد لذا يجب الاعتماد على النماذج المدربة مسبقًا في البحث والتطوير وهذا ما يوفره لك إطار باي تورش PyTorch للمختصين في الذكاء الاصطناعي. فمن خلال استخدام أطر العمل مثل باي تورش PyTorch لن يكون هناك حاجة لكتابة الكثير من الشيفرات البرمجية ويمكن استخدام نماذج معقدة بعدد قليل من السطور البرمجية فقط وهذا ما يجعله يعتبر خيارًا ممتازًا للباحثين والمطورين الذين يبحثون عن أداة تعلم عميق مرنة وسهلة الاستخدام ويمكن تخصيصها لتلبية احتياجاتهم الخاصة. ملاحظة: تمثل الشبكة العصبية الاصطناعية نوعًا من الخوارزميات المستخدمة لنمذجة البيانات ذات الأنماط المعقدة. وتحاكي الشبكة العصبية عمل الدماغ البشري من خلال الاعتماد على طبقات متعددة متصلة ببعضها البعض بواسطة عقد Nodes تعالج البيانات قوم بالمعالجة وتتصرف مثل الخلايا العصبية البشرية. إذ تُنشئ هذه الطبقات المتصلة بالعقد شبكة معقدة قادرة على معالجة وفهم كميات ضخمة من البيانات. استخدامات PyTorch يتميز باي تورش PyTorch بمرونته الكبيرة ويستخدم في تطبيقات ومجالات عديدة على سبيل المثال من أهم استخدامات PyTorch ما يلي: في مجال الرؤية الحاسوبية حيث يتم استخدامه لتصنيف الصور والكشف عن الكائنات وتقسيم الصور. في مجال معالجة اللغة الطبيعية (NLP). ويوفر منصة قوية لبناء وتدريب الشبكات العصبية لمهام مثل تصنيف النصوص وتحليل المشاعر والترجمة الآلية. في مجال التعلم المعزز، حيث تم استخدامه لتطوير وكلاء يمكنها لعب ألعاب مثل Atari و Go. وفي تحليل وتوقع السلاسل الزمنية، وكذلك للتعرف على الأصوات وتوليد النصوص. في تطوير النماذج التي يمكنها معالجة سلاسل الدخل الديناميكية ذات الطول المتغير بفضل أسلوب الرسم البياني الحسابي الديناميكي التي يعتمدها. ميزات PyTorch يتمتع إطار باي تورش بالعديد من الفوائد والمميزات التي تجعله الخيار المفضل لدى مهندسي الذكاء الاصطناعي ومن أبرز مميزات باي تورش نذكر: سهل الاستخدام يعتمد على لغة البرمجة الشهيرة بايثون يوفر نماذج منوعة يصلح لتطبيقات متنوعة يملك دعم مجتمعي واسع يوفر ميزة التطوير التفاعلي يوفر ميزة رسم الحسابات الديناميكي يناسب مختلف أنواع العتاد لنوضح المزيد حول كل ميزة من هذه الميزات. سهل الاستخدام حيث يوفر PyTorch واجهة برمجة تطبيقات عالية المستوى تجريد العديد من التفاصيل المنخفضة المتعلقة بالتعلم العميق، مما يسهل على الباحثين والمطورين التركيز على جانب تصميم النموذج في أعمالهم. يعتمد على لغة البرمجة الشهيرة بايثون وهي واحدة من أشهر لغات البرمجة وأسهلها وتناسب مجال الذكاء الاصطناعي وتعلم الآلة بشكل مثالي، وبما أن باي تورش يعتمد على بايثون فهذا يعني أن مطوري البايثون سيـلفون العمل مع باي تورش بسرعة أكثر من العمل مع أطر برمجة الآلة العميقة الأخرى. كما أنه يتكامل بسلاسة مع مكتبات البايثون الشهيرة مثل مثل مثل NumPy وSciPy وPandas مما يجعل تلاعب البيانات والتحليل سهلًا. يوفر نماذج متنوعة يوفر إطار باي تورش PyTorch مجموعة متنوعة من النماذج ومعماريات الشبكات العصبية المدربة مسبقًا التي يمكن ضبطها بشكل دقيق واستخدامها لمهام مختلفة في تعلم الآلة ,يشير مصطلح نموذج PyTorch إلى صف بايثون Python class يمكن إعداده واستدعاؤه لإجراء الحسابات والتوقعات كما يمكن ضبطه على مجموعة معينة من البيانات حسب احتياجاتك. يصلح لتطبيقات متنوعة يصلح PyTorch للاستخدام في طيف واسع من التطبيقات مثل تطبيقات معالجة اللغة الطبيعية والرؤية الحاسوبية والتعلم المعزز والنمذجة التكرارية وغيرها من تطبيقات التعلم العميق. يملك دعم مجتمعي واسع على الرغم من أن باي تورش هو إطار عمل حديث نسبيًا، إلا أنه تمكن من تشكيل مجتمع كبير وضخم من الخبراء والمطورين نظرًا لأن لغة بايثون التي يعتمد عليها تملك أكبر المجتمعات البرمجية على مستوى العالم، وبهذا يستفيد مستخدمو باي تورش من المعرفة المشتركة كما أن توثيق باي تورش منظم جيدًا للغاية ومفيد للمبتدئين. يوفر ميزة التطوير التفاعلي يمكنك استخدام محررات أو دفاتر ملاحظات تفاعلية مثل محرر جوبيتر Jupiter التفاعلي بتناغم مع باي تورش. وهذا يسمح لك بالتفاعل مع البيانات وتمثيلها وتصحيح أخطائها خطوة بخطوة ويجعل عملية التطوير أكثر فهمًا. ### يوفر ميزة رسم الحسابات الديناميكي يتضمن PyTorch ميزات مدمجة لتصور هياكل النماذج ويستخدم الرسوم البيانية الحسابية الديناميكية Dynamic computation graphs ويعني هذا أن رسم الحسابات يتم إنشاؤه أثناء تشغيل البرنامج بشكل فوري وليس ثابت ومحدد مسبقًا static computational graphs كما هو الحال في إطارات التعلم العميق الأخرى مثل TensorFlow. لوصف هذه الميزة بأسلوب أبسط، تخيل وجود قماش يمكنك فيه رسم، تعديل، ومحو أجزاء من رسمك في أي ترتيب يقدم لك إطار باي تورش هذه المرونة في التعامل عند بناء وتعديل نماذج الشبكات العصبية.وهذا يسهل تصحيح الأخطاء وتكرار النماذج وبمجرد تغيير هيكل النموذج سيُحدَّث الرسم البياني الخاص به تلقائيًا. يوفر وحدة مجموعات بيانات مدمجة جاهزة للاستخدام يوفر لك إطار باي تورش PyTorch العديد من مجموعات البيانات التي تناسب العديد من تطبيقات الذكاء الاصطناعي والتعلم العميق، مثل الرؤية الحاسوبية، والتعرف على الكلام، ومعالجة اللغة الطبيعية وبالتالي ستتمكن من بناء شبكة عصبية خاصة بك ولن تضطر لجمع ومعالجة البيانات بنفسك. يسهل تصحيح الأخطاء يمكنك استخدام العديد من أدوات تصحيح الأخطاء Debugging للغة بايثون Python مع إطار باي تورش، على سبيل المثال ، يمكن استخدام الوحدة pdb و ipdb لتصحيح الأكواد البرمجية التي تكتبهت في إطار PyTorch. كما يعمل مصحح الأخطاء المدمج مع محرر بايثون باي تشارم PyCharm أيضًا بسلاسة مع كود بايتورش PyTorch. يناسب مختلف أنواع العتاد يوفر الإطار إدارة فعالة للذاكرة، مما يتيح للمستخدم تدريب شبكات عصبية كبيرة باستخدام موارد الأجهزة المحدودة التي تستخدم وحدة المعالجة CPU كما يدعم تدريب GPU عالي الجود للأجهزة المتطورة التي تتضمن وحدة معالجة الرسومات GPU وهي معالج قوي مكون من مئات النوى التي يمكن أن تتعامل مع البرمجة المتزامنة التي تستخدم آلاف الخيوط Threads في نفس الوقت مما يقلل من وقت التدريب بشكل كبير ويناسب تدريب الشبكات العصبية الكبيرة والمعقدة. عيوب PyTorch على الرغم من أن المميزات والجوانب الإيجابية التي يتمتع بها إطار باي تورش PyTorch إلا أنه يشتمل كذلك من بعض الجوانب السلبية مثل: يفتقر باي تورش PyTorch لبعض الوظائف المدمجة مثل أدوات توسيع البيانات أو تكوين النموذج. وبالتالي يتطلب إنجاز هذه الوظائف بعض الجهد والوقت وقد يكون تنفيذها صعبًا على غير الخبراء بالهيكلية والوظائف الخاصة بالإطار. إطار بايتورش PyTorch أقل توفقًا -مقارنة بالإطارات الأخرى- مع استخدام النماذج في بيئات الإنتاج بسبب عدم توافر بعض أدوات النشر والتكامل التي تتوفر عادة في إطارات أخرى مثل TensorRT أو ONNX Runtime التابعة لتنسرفلو TensorFlow. على الرغم من توفر خيارات لتحسين الأداء في إطار بايتورش إلا أنه قد يتطلب مزيدًا من الجهد مقارنة بالإطارات الأخرى لتحسين أداء التطبيقات إذ يعتبر أداؤه بطيئًا نسبيًا كما أن ميزة الرسم البياني الحسابي الديناميكي أداءه قليلًا. وعلى الرغم من هذه العيوب إلا أنه يظل واحدًا من الإطارات الأكثر شهرة وقوة في مجال الذكاء الاصطناعي ويستخدم في العديد من المراكز البحثية والشركات التقنية. مقارنة بين باي تورش PyTorch وتنسرفلو TensorFlow هناك العديد من أطر التعلم العميق المتاحة للاستخدام وتعتبر كل من TensorFlowو PyTorch إطارين قويين لتعلم الآلة في لغة بايثون Python، فباي توش PyTorch مطور قبل شركة فيسبوك كما ذكرنا سابقًا أما TensorFlow فقد طورته شركة جوجل وهما يقدمان وظائف أساسية مشابهة، إلا أنها يختلفان في بعض النواحي ومن بين أبرز الفروقات بينهما نذكر ما يلي: التنفيذ المتزامن: يستخدم باي تورش PyTorch التنفيذ المتزامن لأكواد لغة البرمجة بايثون من أجل تنفيذ عدة عمليات في نفس الوقت، في حين تحتاج لتهيئة كل عملية بشكل يدوي لتحقيق المعالجة المتزامنة للبيانات في تنسرفلو. تمثيل النماذج: يستخدم باي تورش PyTorch كما ذكرنا من قبل الرسوم البيانية الديناميكية، بينما يستخدم تنسرفلو أسلوب الرسومات الثابتة static computational graphs وهذا يجعله أسرع أداء لكنه أقل مرونة. نشر النماذج: ، لا يوفر باي توش PyTorch خدمة لنشر النماذج على الويب، بينما يوفر تنسرفلو TensorFlow هذه الخدمة ويدعم نشر النماذج بسهولة باستخدام إطار عمل يسمى TensorFlow Serving وهو إطار يستخدم واجهات REST API لاستخدام نموذج التنبؤ بمجرد نشره مما يسهل استخدامه أكثر من باي تورش. إضافة إلى باي تورش PyTorch وتنسرفلو TensorFlow ستجد الكثير من مكتبات وأطر عمل الذكاء الاصطناعي المفيدة المفيدة مثل Keras وMXNet وCaffe وكل إطار له مزاياه وعيوبه ولك الحرية في اختيار الإطار الذي يناسب احتياجاتك وتفضيلاتك، وتعلم خطوات استخدامه بفعالية وكفاءة. دورة الذكاء الاصطناعي احترف برمجة الذكاء الاصطناعي AI وتحليل البيانات وتعلم كافة المعلومات التي تحتاجها لبناء نماذج ذكاء اصطناعي متخصصة. اشترك الآن خطوات تعلم باي تورش PyTorch إليك أهم الخطوات التي عليك اتباعها كي تتمكن من استخدام إطار عمل بايتورش بكفاءة: قبل أن تتمكن من التعامل مع إطار باي تورش عليك أن تتعلم المفاهيم الرياضية الأساسية مثل الجبر الخطي وحساب التفاضل والتكامل والإحصاء والاحتمالات وتعلم أساسيات الخوارزميات وهياكل البيانات بعدها ابدأ بتعلم لغة البرمجة بايثون Python التي يعتمد عليها إطار باي تورش وتدرب على كتابة التعليمات البرمجية وتصحيح أخطائها الخطوة التي تليها هي تعلم أساسيات الذكاء الاصطناعي وتعلم الآلة والتعلم العميق وافهم تقنيات وخوارزميات التعلم العميق، ومفاهيم كثل التصنيف والانحدار، وتقييم النماذج وتحسينها فهذه المبادئ النظرية أساسية للتطبيق العمل على إطار العمل لاحقًا. تعلم طريقة تثبيت إطار باي تورش وإعداده محليًا وتعرف على واجهته ومكوناته وتآلف مع أسلوب التعامل معه كما يمكنك التعامل معه مباشرة على السحابة. تعرف على طريقة تحضير البيانات في باي تورش والمعالجة المسبقة لها واكتشف طريقة بناء الشبكات العصبية وتدريبها، بدءًا من تحديد النموذج وتدريب في مجالات مختلفة مثل في الرؤية الحاسوبية ومعالجة اللغة الطبيعية. تعلم آلية تقييم النماذج وعمل التنبؤات منها وكيفية تحسين دقة النموذج وسرعته وموثوقيته جرب تنفيذ نماذج التعلم العميق في تطبيقات فعلية في العالم الحقيقي مثل تطبيقات الويب لتعزز فهم المبادئ النظرية مثل تطبيقات التعرف على الصور وإنشاء النصوص وتحليل المشاعر واكتشاف الوجه لتبني معرض أعمال خاص بك. احرص على التعلم المستمر وتطوير مهاراتك كمتخصص في التعلم العميق فهذا المجال متجدد وسريع التطور وعليك دومًا مواكبة أحدث التطورات والاتجاهات. وفي الختاك تذكر أن الذكاء الاصطناعي اليوم لم يعد مجالًا مقتصرًا على الباحثين والرياضيين والشركات التقنية المتطورة بل باي بإمكان أي شخص ملم بأساسيات الرياضيات والخوارزميات وبلغة البرمجة بلغة بايثون Python تحقيق نتائج مميزة في الذكاء الاصطناعي والتعلم العميق بسهولة كبيرة. فإذا كانت مهتمًا بتعلم هذا المجال الحديث والثوري وتبحث عن مصادر احترافية باللغة العربية فستجد الكثير من مصادر التعلم من خلال المقالات المنشورة في قسم الذكاء الاصطناعي في أكاديمية حسوب كما توفر الأكاديمية دورة تعلم الذكاء الاصطناعي وهي دورة مميزة وشاملة تساعدك على تعلم لغة بايثون وتطوير تطبيقات ذكية لمعالجة وتحليل البيانات وفهم كافة الخوارزميات والمفاهيم البرمجية التي تحتاجها لبناء نماذج ذكاء اصطناعي متخصصة وتطبيق مشاريع حقيقية وستكسبك هذه الدورة الشاملة الكثير من المعرفة النظرية والتطبيقات العملية التي توصلك من المستوى المبتدئ للاحتراف وتؤهلك لدخول سوق العمل بسرعة والمنافسة بقوة في هذا المجال. الخلاصة نرجو أن نكون قد وفقنا في هذا المقال لتعريفك على كل ما تحتاجه إطار عمل باي تورش وهو PyTorch أحد أقوى الأدوات المستخدمة لتدريب الشبكات العصبية العميقة والتعلم العميق وبينا لك أبرز مميزاته التي تجعل منه بيئة ملائمة تفيد أي شخص مهتم بالعمل في مجال الذكاء الاصطاعي، وأبرز الفروقات بينه وبين إطار عمل الذكاء الاصطناعي تنسرفلو TensorFlow، إذا كان لديك أي تساؤل حول ما ورد في المقال يمكنك تركه في قسم النقاش أسفل المقال. اقرأ أيضًا إيجابيات وسلبيات الذكاء الاصطناعي تعلم الذكاء الاصطناعي أهمية الذكاء الاصطناعي برمجة الذكاء الاصطناعي تطبيقات لغة بايثون
  2. من منا لا يحب ألعاب الفيديو التي غزت العالم، فقد أصبحت ألعاب الفيديو جزءًا لا يتجزأ من أساليب الترفيه في حياتنا اليومية، مثل لعبة سوبر ماريو أو فيفا أو GTA، فإذا كنت من محبي الألعاب الإلكترونية، وتود معرفة المزيد عنها، وتتساءل كيف تطورت ألعاب الفيديو، وما هي أنواعها، وتفكر كيف يمكنك برمجة لعبة فيديو خاصة بك، وهل ستحتاج لتعلم الكثير من التقنيات وبرمجة الألعاب؟ فأدعوك لقراءة هذا المقال الذي يجيبك على كل تساؤلاتك هذه. ما هي ألعاب الفيديو ألعاب الفيديو هي ألعاب إلكترونية يمكن اللعب بها على شاشةٍ ما، سواء كانت شاشة حاسوب، أو شاشة جوال، أو شاشة تلفاز موصول بوحدات خاصة لتشغيل الألعاب video game console، مثل بلايستيشن أو Xbox أو Wii، كما توجد أنواع من ألعاب الفيديو تسمى ألعاب الأوركيد تعمل على أجهزة مستقلة بذاتها وتوجد في الأماكن العامة ومراكز التسوق. تاريخ تطور ألعاب الفيديو لقد ارتبط تطور ألعاب الفيديو بتطور الحواسيب وانتشارها، وكانت الألعاب الإلكترونية في البداية ألعابًا بسيطة، إذ تُعد لعبة Tennis for Two التي برمجها المطور الأمريكي ويليام هيجنبوثام في عام 1958، أول لعبة فيديو طورت لأغراض التسلية، حيث كانت اللعبة تتألف من شاشة تقفز عليها نقطة خضراء مضيئة، ويمكن لشخصين اللعب بهذه النقطة التي تقفز من جانب لآخر كما توضح الصورة التالية: مصدر الصورة كما يوضح هذا الفيديو طريقة اللعب بها ويبين كانت الآلعاب الإلكترونية الأولى بدائية وبسيطة، ولكنها كانت نقطة الانطلاق لعالم صناعة الألعاب المتطورة التي نستمتع بها اليوم، ولم تكن هذه الألعاب الأولية مشهورة، لأن تواجد أجهزة الحواسيب كان مقتصرًا بشكل أساسي على الجامعات الكبيرة والمراكز البحثية. وقد بدأ تحقق الانتشار الواسع لألعاب الفيديو في السبعينيات، عندما بدأت الشركات في تثبيت ألعاب الفيديو في المراكز التجارية والأماكن العامة، ففي عام 1972 قامت شركة أتاري بإصدار بونج Pong والتي اعتبرت أول لعبة فيديو ناجحة تجاريًا على مستوى العالم وهي لعبة أروكيد ثنائية الأبعاد تحاكي كرة الطاولة يمكن لعبها من قبل لاعبين اثنين إذ يتحكم كل لاعب في مضرب يمكنه التحرك عموديًا لضرب الكرةذهابًا وإيابًا، ويحصل اللاعب على نقطة عندما يفشل خصمه في صد الكرة. مصدر الصورة وبعدها زاد انتشار ألعاب الفيديو في ثمانينيات القرن الماضي مع تطور الحواسيب وصغر حجمها وزيادة كفاءتها وأدائها، مما مَكّن مبرمجي الألعاب من تصميم رسومات ألعاب احترافية وتحقيق تجربة لعب أكثر ابتكارًا، حيث حصلت الألعاب على شخصياتها الخاصة وقصص أكثر تعقيدًا، فمعظم ألعاب الفيديو الكلاسيكية التي نعرفها اليوم مثل لعبة باك مان ولعبة سوبر ماريو نشأت في هذا الوقت. وفي فترة التسعينيات ومطلع الألفية الثالثة انتقلت ألعاب الفيديو لمرحلة أكثر احترافيةً، وظهرت الألعاب ذات الرسومات ثلاثية الأبعاد، التي يستطيع فيها اللاعبون التحرك في ثلاث اتجاهات بدلاً من اتجاهين فقط، وأصبحت عوالم ألعاب الفيديو أكثر واقعيةً، وتنافست الشركات المصنعة للأجهزة والألعاب على السوق، فقدمت سوني عام 1994 جهاز البلايستيشن الذي مثل قفزة كبيرة تقنيًا ورسوميًا مقارنةً بالأجهزة الموجودة حينها، كما ظهرت أفكار ألعاب أكثر ابتكارًا من استوديوهات الألعاب، وظهرت أنواع ألعاب جديدة مثل ألعاب إطلاق النار من منظور الشخص الأول. كما ساهم ظهور الإنترنت في تحويل ألعاب الفيديو تدريجيًا إلى اللعب عبر الإنترنت بدل لعبها على الأجهزة المحلية، وأصبحت ألعاب مثل وورلد أوف ووركرافت World of Warcraft في عام 2004 تُلعب بشكل رئيسي عبر الإنترنت، كما ساعد ظهور تقنيات الذكاء الاصطناعي AI في جعل الألعاب أكثر ديناميكيةً وواقعيةً، فالخصوم لم يعودوا يتصرفون بنفس الطريقة في كل الحالات، بل يتفاعلون بشكل مستقل مع أحداث اللعبة، كما ظهرت ألعاب العالم المفتوح، حيث يمكن للاعبين استكشاف عوالم خيالية بمفردهم وتحديد سياق اللعب بحرية، أو يمكنهم إنشاء العالم الافتراضي بأنفسهم، كما في مفهوم ألعاب صندوق الرمل Sandbox. وهكذا جاء هذا العقد بعدد لا يحصى من الألعاب التي نالت شهرة واسعة وأكثر مبيعًا، من أهمها: The Sims (2000)‎: لعبة محاكاة واقع افتراضي، وفد حققت نجاحًا هائلاً بفضل الحرية الكبيرة في اللعب والقدرة على بناء وتخصيص المنازل والتفاعل مع العالم الافتراضي. Grand Theft Auto San Andreas (2004)‎: لعبة أكشن وعالم مفتوح، تتميز بوجود العديد من أساليب ‎‎اللعب. Super Mario Galaxy (2007)‎: لعبة ماريو ثلاثية الأبعاد، والتي تميزت بتصميم عالم احترافي والمستويات الإبداعية وحصدت الكثير من الإعجابات بفضل أسلوب لعبها المبتكر. Minecraft oder (2010)‎: لعبة ماينكرافت هي لعبة عالم مفتوح تتيح لك بناء عوالم خاصة بك، وقد نالت شهرةً عالميةً واسعة بفضل إمكانيات البناء اللامحدودة والإبداع الذي يتيحه اللعب بها. أهمية ألعاب الفيديو أصبحت ألعاب الفيديو اليوم صناعة تدرّ الكثير من الأرباح على صانعيها، إذ يقضي الكثير من الناس معظم الوقت وهم يلعبون على الشاشات ومن كل الفئات العمرية، لاسيما ألعاب الهواتف الجوالة ويقضون الكثير من فترات الانتظار في مواقف الحافلات أو خلال السفر أو قبل النوم في اللعب بها، وهناك ألعاب على الحاسوب أو وحدات تشغيل الألعاب تجعل اللاعب يدمنها ولا يتخلى عن اللعب بها مرات ومرات، كما انتشرت اليوم ظاهرة تصوير اللاعبين لأنفسهم أثناء اللعب والتعليق على أحداث اللعبة أو تقديم نصائح حول طريقة اللعب لنشر هذه المقاطع على يوتيوب والكسب من مشاهدتها, وهذه الشعبية الكبيرة أدت لزيادة شهرة الألعاب ورواجها الكبير لزيادة وجعلت من صناعة ألعاب الفيديو صناعة رائجة تدرّ الكثير من الأرباح على الشركات المطورة، فقد تم بيع ملايين النسخ من بعض الألعاب الإلكترونية، وتجاوزت أرباح صناعة الألعاب الإلكترونية المليارات، كما أن أرباح صناعة الألعاب الإلكترونية تفوق اليوم أرباح صناعات أخرى مثل صناعة الأفلام والسينما، وهناك العديد من استوديوهات الألعاب المستقلة التي تطور مختلف أنواع الفيديو لجميع أنواع الأنظمة كالحواسيب والجوالات والأجهزة المحمولة. ومن أنجح سلاسل الألعاب الإلكترونية التي حققت نجاحًا واسعًا في عالم ألعاب الفيديو نذكر لعبة سوبر ماريو ولعبة بوكيمون ولعبة فيفا ولعبة Grand Theft Auto أو GTA ولعبة The Sims. كيف تصبح مطور ألعاب فيديو؟ لا بد أن برمجة لعبة فيديو تعتمد على نوع اللعبة التي ترغب في برمجتها، فبرمجة لعبة فيديو ثنائية الأبعاد تختلف عن برمجة لعبة ثلاثية الأبعاد، كما أن برمجة لعبة جوال بسيطة أسهل من برمجة لعبة حاسوبية أو لعبة لمنصة تشغيل ألعاب مثل بلاي ستيشن PlayStation أو Xbox أو لعبة تحاكي الواقع الافتراضي وتتضمن الكثير من المراحل والخطوات والعديد من اللاعبين. فهناك ألعاب بسيطة يمكن برمحتها من قبل شخص واحد وخلال مدة قصيرة وهنالك ألعاب يعمل عليها فريق متكامل يضم مئات الأشخاص ويكلف تطويرها آلاف الدولارات، لكننا سنشرح هنا خطوات عامة يمكنك اتباعها لتصبح مطور ألعاب فيديو بسيطة وبخطوات سهلة: تحديد الهدف من لعبة الفيديو والمنصة التي ستوجه لها اللعبة وطريقة التفاعل معها، هل هو من خلال إدخالات لوحة المفاتيح والفأرة أو من خلال وحدة التحكم، وغيرها من التفاصيل الأخرى. تصميم لعبة الفيديو وتحديد كل ما يتعلق بها من تفاصيل، وما هي شخصيات اللعبة وكيف ستتحرك الشخصية وما ردة فعلها عندما تصدم بجدار أو تسقط في بركة ما مثلًا، وما هي قوانين اللعب وشروط الفوز، وغيرها من القوانين والحركات. رسم وتصميم شخصيات اللعبة الإلكترونية اللازمة على الشاشة، وتحديد تأثيرات الصوت التي ستصدر في كل مرحلة من الحركة أو التفاعل. برمجة لعبة الفيديو، فبعد أن تكون قد حددت جميع التفاصيل اللازمة لبرمجة لعبة الفيديو الخاصة بك ستكون الآن مرحلة برمجة اللعبة قد حانت، وتشبه برمجة اللعبة تطوير البرمجيات التقليدية، حيث يتوجب عليك في البداية إنشاء نموذج أولي للعبة واختبارها، وهنا يمكنك الاستعانة بالكثير من التقنيات مثل لغات برمجة الألعاب ومحركات الألعاب التي تسرع عملية التطوير. اختبار لعبة الفيديو، فبعد برمجة اللعبة عليك التحقق من عدم وجود مشكلات أو أخطاء في برمجتها وأن اللعبة تعمل كما هو متوقع، ويمكن مشاركتها مع الأصدقاء لتجربتها واختبار أي مشكلات فيها. ونذكر من جديد أن تطوير لعبة فيديو احترافية سيحتاج لفريق عمل مكون من عدة أشخاص من مختلف التخصصات، مثل مصممي الألعاب الذين يصممون عالم اللعبة وقصتها، والكتّاب أو رواة القصص الذين يكتبون قصة اللعبة، وموسيقيون يسجلون التأثيرات الصوتية المستخدمة، وأخيرًا مطورو الألعاب يكتبون الكود البرمجي الذي يحوّل اللعبة من فكرة لواقع فعلي. وتستغرق عملية صناعة لعبة فيديو احترافية بدءًا من التخطيط وحتى مرحلة ما بعد الإنتاج حوالي ثلاث إلى خمس سنوات في المتوسط بالنسبة لألعاب وحدات التحكم وأجهزة الحاسوب بينما يمكن تطوير لعبة جوال بسيطة بوقت أقل بكثير وهذا لا يمنع من فرصة نجاحها وانتشارها فهناك الكثير من أفكار الألعاب التي حققت شهرة واسعة حتى اليوم رغم بساطتها مثل لعبة لعبة كاندي كراش Candy Crash ولعبة باك مان Pac-Man. مستقبل ألعاب الفيديو تطورت ألعاب الفيديو من مجرد نقاط بسيطة تتحرك على الشاشة إلى ألعاب برسومات عالية الدقة ومناظر ثلاثية الأبعاد رائعة وواقعية، ثم أصبح اللاعبون بفضل الواقع الافتراضي جزءًا من أحداث اللعبة وشخصياتها، ويتوقع أن يشهد مستقبل ألعاب الفيديو مزيدًا من التطور، ويستخدم فيه الذكاء الاصطناعي والواقع المعزز بصورة أكبر، وتتحسن دقة الرسومات وتستخدم وحدات تشغيل ألعاب أكثر تقدمًا، وأن تشكل الوحدات الأصغر حجمًا والأكثر تطورًا مستقبل صناعة الألعاب. كما سيشهد مستقبل ألعاب الفيديو برمجة مزيد من ألعاب الواقع المعزز AR التي تجمع بين العالم الواقعي والعناصر الرقمية المتفاعلة، مثل لعبة بوكيمون جو Pokémon Go التي تمكن اللاعبين من رؤية شخصيات اللعبة التي تنشئ بيئة لعب افتراضية كاملة، وتحتاج لارتداء نظارات VR أو أجهزة مشابهة للتفاعل مع بيئة اللعب باستخدام وحدات تحكم أو حركات الجسم مثل لعبة Beat Saber التي يقوم فيها اللاعبون بتحريك أضواء الليزر بواسطة مضارب ضوء لقطع الكتل المتحركة لتوليد تجربة لعب مثيرة، وكلا النوعين يقدمان تجارب متفردة ومثيرة، ويستخدمان تقنيات فريدة لإيصال اللاعبين إلى عوالم مختلفة وتفاعلية ويتوقع أن تلقى صناعة الألعاب المزيد من التقدم والرواج والازدهار في السنوات المقبلة ويزداد الطلب على مطوري الألعاب بشكل أكبر. الخلاصة تعلمنا في مقال اليوم موجزًا عن عالم ألعاب الفيديو، الذي أصبح جزءًا لا يتجزأ من حياتنا اليومية، من خلال استعراض تاريخها وتطورها، وصولاً إلى نظرة مستقبلية عن ألعاب الفيديو، والتي لم تعد مجرد وسيلة للترفيه والتسلية، بل أصبحت صناعة ضخمة تجذب ملايين اللاعبين وتحقق أرباحًا خيالية، وختمنا المقال بأهم الخطوات التي تساعدك كي تصبح مطور ألعاب فيديو محترف. اقرأ أيضًا مطور الألعاب: من هو وما هي مهامه كيف تصبح مبرمج ألعاب فيديو ناجح تعرف على أهمية صناعة الألعاب الإلكترونية نبذة عن صناعة الألعاب ومحرك Unity3D ما هي برمجة الألعاب؟
  3. نوضح في مقال اليوم ما هي لغة Sass، وماهي استخداماتها، ولماذا تستخدم كبديل للغة CSS في تنسيق الواجهات الأمامية لمواقع الويب، فإذا كنت مهتمًا بمعرفة ماذا تعني Sass؟ وما الفرق بين لغة CSS و Sass وما هي أساسيات Sass التي عليك تعلمها، وماهي مصادر تعلمها باللغة العربية، والعديد من المعلومات المفيدة الأخرى حولها فهذا المقال سيفيدك بكل تأكيد. ما هي لغة Sass؟ لغة Sass هي اختصار لعبارة Syntactically awesome style sheets وتعني أوراق الأنماط الرائعة من الناحية النحوية وهي بمثابة توسعة أو تطوير للغة تنسيق صفحات الويب CSS وهي لغة مفتوحة المصدر تخضع لترخيص MIT -بالرغم من ذلك هنالك إصدارات معينة من لغة Sass تخضع لتراخيص ملكية، وتوفر مرونة وسهولة أكبر في التعامل معها- ولكي تفهم ماذا تعني Sass يجب أن تعرف بدايةً ما هي لغة CSS وما الهدف منها؟ ففي الأساس لغة CSS وهي اختصار لعبارة Cascading Style Sheet أي لغة تنسيق الأنماط المتعاقبة، هي اللغة الأساسية المستخدمة لتنسيق وتصميم عناصر المواقع الإلكترونية الممثلة بلغةHTML فلو كنت تصمم موقعًا إلكترونيًا خاصًا بك وأردت تغيير لون خلفية عنصر معين على إحدى صفحات هذا الموقع أو تغيير الخطوط المستخدمة في الكتابة أو تنسيق القوائم أو تعديل تموضع عنصر معين ضمن الصفحة، أو غيرها من التعديلات على مظهر موقعك فعليك كتابة كافة أكواد التنسيق المطلوبة باستخدام لغة CSS. لكن عندما تتعامل مع شيفرات CSS في تصميم صفحات الويب فستلاحظ أنها تعاني من محدودية وقيود عديدة لا سيما عند الحاجة لكتابة الكثير من التنسيقات إذ سيصبح التعامل معها مربكًا ومعقدًا وتصعب عملية صيانتها وتصحيح أخطائها لكونها لغة تنسيقية بحتة ولا تملك إمكانيات برمجية، وللتخفيف من هذه المشكلات والقيود ظهرت لغة Sass لكي تضيف العديد من المميزات الجديدة للغة CSS، مثل ميزة تداخل الكود وميزة التصريح عن الثوابت والمتغيرات وإمكانية تعريف الدوال وغيرها من المميزات المتقدمة التي سنوضحها بالأمثلة العملية في الفقرات التالية، والتي من شأنها أن تقلل حجم الكود وتنظم وتبسّط عملية كتابة التنسيقات اللازمة لتصميم مواقع الويب وصيانتها. باختصار Sass هي لغة تحسينية للغة CSS ولكن تجدر الإشارة لأنك ستحتاج لأن تترجم كل أكواد Sass إلى لغة CSS كي تتمكن من تطبيقها على عناصر صفحة الويب، أي لا يمكنك استخدم أكواد Sass مباشرة في صفحات موقعك كما هو الحال في CSS وستحتاج لاستخدام تقنيات مخصصة للقيام بعملية التحويل. طريقة تحويل لغة Sass إلى CSS قد تتساءل لماذا يتوجب عليَّ تحويل كود Sass إلى CSS وإليك السبب، يمكن لجميع متصفحات الويب الحديثة عرض أكواد CSS دون أي مشكلات، لكن هذا لا ينطبق على لغة Sass لذا تحتاج قبل ذلك لإجراء عملية تحويل أو ترجمة لكافة أكواد Sass إلى أكواد اللغة القياسية CSS ثم تطبيق هذه التنسيقات على عناصر الموقع الإلكتروني. لهذا السبب تعد لغة Sass بمثابة معالج مسبق للغة CSS أو ما يعرف بمصطلح CSS per-processor لأنك تحتاج إلى تحويل أو ترجمة أكوادها المتقدمة للشكل المتبع في أكواد CSS التقليدية قبل عرض العناصر على صفحة الويب. حيث يتوجب عليك بداية كتابة تنسيقات أو أكواد Sass في ملف بالامتداد ‎.sass ثم ترجمتها أو تجميعها في ملف CSS وبعدها سيتم تحميل شيفرة CSS إلى المتصفح لتنسيق عناصر HTML، ولكي تتمكن من إجراء عملية التحويل تحتاج إلى تثبيت مترجم Sass على جهازك لترجمة كود Sass إلى كود CSS القياسي. وتتوفر عدة طرق يمكنك من خلالها تثبيت مترجم Sass على أنظمة التشغيل ويندوز Windows وماك Mac ولينكس Linux، إما من خلال تطبيق واجهة رسومية مثل scout-app أو من خلال استخدام أداة سطر الأوامر مثل Dart Sass أو Node sass وتختلف طريقة التثبيت بحسب نظام التشغيل وبيئة التطوير ومدير الحزم الذي تستخدمه. على سبيل المثال إذا كنت تستخدم مدير الحزم شوكولاتي Chocolatey لنظام ويندوز فيمكنك تثبيت Dart Sass عن طريق كتابة الأمر التالي: choco install sass اختر الطريقة التي تناسبك للتثبيت، وبعد اكتمال التثبيت سيكون بإمكانك تحويل ملفات sass إلى CSS من خلال كتابة التعليمة التالية: sass file_name.sass file_name.css مثال على تحويل ملف Sass إلى CSS على سبيل المثال لنفترض أن لدينا لدينا ملف Sass يسمى style.sass يحتوي على التنسيقات التالية: // ملف styles.sass $primary-color: blue body font-family: Arial, sans-serif .container width: 100% max-width: 960px margin: 0 auto .button padding: 10px 20px background-color: $primary-color color: white border: none border-radius: 5px لمعالجة هذا الملف وتحويله إلى كود CSS قياسي، افتح نافذة سطر الأوامر وانتقل إلى المجلد الذي يحتوي على ملف style.sass ثم نفذ هذا الأمر: sass style.sass style.css يحول هذا الأمر ملف style.sass إلى ملف style.css يحتوي على الكود التالي: /* ملف styles.css */ body { font-family: Arial, sans-serif; } .container { width: 100%; max-width: 960px; margin: 0 auto; } .button { padding: 10px 20px; background-color: blue; color: white; border: none; border-radius: 5px; } بهذا تكون قد حولت ملف Sass إلى CSS بكل بساطة وبتعليمة واحدة فقط. كما توفر Sass ميزة ضغط أو تقليص حجم ملفات CSS الناتجة عن طريق إزالة المسافات الزائدة والتنسيقات غير الضرورية وهذا يساعد في تقليل زمن تحميل ملفات التنسيق وتحسين أداء موقع الويب. فلتحويل ملف Sass إلى CSS مضغوط، يمكنك إضافة خيار إضافي لتفعيل ضغط الملفات كما يلي: sass style.sass styles.css --style compressed يحدد الخيار style compressed-- في الكود أعلاه بأن كود Sass يجب أن يُنتج لنا ملف CSS مضغوطًا يحتوي على نسخة مختصرة من شيفرات CSS إذا ستكون الشيفرة الناتجة بدون أي مسافات زائدة أو تنسيقات غير ضرورية، وهذا يقلل من حجم الملف الناتج ويساعد في تسريع تحميل الموقع. الفرق بين Sass و SCSS و Less كل من Sass و SCSS و Less هي مُعالجِات مسبقة للغة CSS لكنها تختلف عن بعضها بالقليل من المميزات والتي سنشرحها لك تباعًا. أولًا: الفرق بين Sass و SCSS بدايةً يتمثل الفرق بين Sass و SCSS في اعتمادهما على طريقة مختلفة لكتابة التنسيقات فلغة Sass تعتمد في تنظيم كتل الكود على المسافات البادئة Indented Syntax، ولها امتداد ملف sass. أما صيغة SCSS فهي صيغة أحدث وأكثر انتشارًا وتعرف باسم Sassy CSS وتعتمد على الأقواس المتعرجة {} لتجميع وتنطيم كتل الكود، وتستخدم الفواصل المنقوطة لفصل القواعد وهي تشبه CSS القياسية أكثر ولها امتداد ملف scss. فكلاهما بالتالي متشابهان ويفعلان نفس الشيء، لكنهما مكتوبتان بأسلوب مختلف. فيما يلي مثال بسيط على كود مكتوب بأسلوب Sass: $primary-color: blue body font-family: Arial, sans-serif color: $primary-color .header background-color: $primary-color padding: 10px nav ul margin: 0 padding: 0 list-style: none li display: inline-block في حين يبين المثال التالي كود مكتوب بأسلوب SCSS: $primary-color: blue; body { font-family: Arial, sans-serif; color: $primary-color; } .header { background-color: $primary-color; padding: 10px; } nav { ul { margin: 0; padding: 0; list-style: none; } li { display: inline-block; } ثانيًا: الفرق بين Sass و Less أما بالنسبة للفرق بين Sass و Less فكلاهما معالجان مسبقان شائعان تستخدمان لتسهيل عملية كتابة CSS وجعلها أكثر تنظيمًا وقابليةً للصيانة، لكنهما تختلفان أيضًا ببعض الجوانب حيث أن Sass مبنية على لغة روبي Ruby، بينما Less مبنية على لغة جافاسكريبت JavaScript كما أن Sass أكثر شعبيةً وانتشارًا من Less، وقد زادت شعبيتها بعد أن اعتمد عليها بوتستراب Bootstrap وتكتب شيفرات Less بنفس أسلوب Scss. باختصار الفرق بين Sass و Scss و Less هو الصياغة النحوية لكل منها، وإن كانت في نهاية المطاف كلها معالجات مسبقة تحول إلى CSS لكن تستخدم Sass صيغة نحوية خاصة به حيث يتم حذف الأقواس والفاصلات المنقوطة، بينما تشبه SCSS صيغة CSS مما يجعلها أسهل قراءةً وفهمًا، وأخيرًا تمتلك LESS صيغة نحوية مشابهة لصياغة SCSS، لكنها مبينة باستخدام لغة جافا سكريبت ويعتمد اختيار اللغة المناسبة من بينها على تفضيلاتك ومتطلباتك الشخصية. ما هي أساسيات Sass تضيف لغة Sass مجموعة من القواعد والمفاهيم الأساسية والإمكانيات التي لا توفرها لغة CSS كما وضحنا سابقًا، وفيما يلي أوضح أهم أساسيات Sass مع أمثلة عملية بسيطة توضح كيفية استخدام ميزات Sass المختلفة في توسيع أكواد CSS. 1. المتغيرات يمكنك تخزين معلومات التنسيق في المتغيرات باستخدام Sass وإعادة استخدامها لاحقًا. على سبيل المثال، يمكنك تخزين قيمة لون كمتغير كما في الكود التالي الذي يعرف متغيرين باسم my-fore-color$ و my-back-color$ ويسند لهما قيم لونية مختلفة. $my-fore-color: #3445db; $my-back-color: #78a3d1; .container { background-color: $my-back-color; } .text { color: $my-fore-color; } عند معالجة ملف Sass أعلاه، سيأخذ القيم المذكورة في المتغيرين my-fore-color$ و my-back-color$ ويستخدمها في الأماكن التي يذكر فيهما اسم كل متغير فيها وينسق ألوان العناصر بناءً عليها، ماذا لو أردت بعدها تغيير لون الخلفية أو لون النص في موقعك؟ يكفي أن تعدل القيمة التي أسندتها للمتغير فقط بكل سهولة. 2. العمليات الحسابية يمكن استخدام الدوال الحسابية كالجمع والضرب والقسمة في Sass لتنفيذ عمليات حسابية على قيم تنسيقات العناصر وتعديلها. على سبيل المثال، يحدد الكود التالي حجم الخط المستخدم في الموقع بشكل ديناميكي بناءً على حجم الخط الأساسي: $base-font-size: 16px; .element { font-size: $base-font-size + 2px; } 3. الحلقات التكرارية توفر Sass إمكانية استخدام الحلقات التكرارية لتكرار كود التنسيقات عدد من المرات وهو أمر غير متاح في لغة CSS، للتوضيح لاحظ الكود التالي الذي يطبق مجموعة من التنسيقات على ثلاثة عناصر، بحيث يتزايد عرض كل عنصر عن السابق بمقدار 50 بكسل. @for $i from 1 through 3 { .item-#{$i} { width: 100px + $i * 50px; } } 4. التعليمات الشرطية توفر Sass أيضًا إمكانية كتابة تعليمات شرطية مثل if و else بطريقة مماثلة لطريقة عملها في مختلف لغات البرمجة، وبهذه الطريقة تمكنك من تحقيق تنسيقات شرطية وتُنفذ التنسيقات المحددة فقط عند تحقق حالات معينة، على سبيل المثال يغير الكود التالي تنسيق العناصر في الوضع الليلي أو النهاري بحسب قيمة المتغير ‎dark-theme$. $dark-theme: true; @if $dark-theme { color: #b3b3b3; font-weight: 300; background-color: #333333; } @else { color: #333333; font-weight: 400; background-color: #f5f5f5; } 5. الدوال Functions توفر لك Sass إمكانية تعريف دوال برمجية يمكنها استقبال وسطاء أو بارامترات وإرجاع قيمة معينة، وهذا يسهل تطبيق التنسيقات على العناصر وإعادة استخدامها في أكواد التنسيق الخاصة بك. على سبيل المثال نعرف في الكود التالي دالة باسم add-numbers تستقبل وسيطين هما ‎first-number$ و ‎second-number$. وترجع مجموعهما: @function add-numbers($first-number, $second-number) { @return $first-number + $second-number } بعد تعريف هذه الدالة يمكننا استخدامها في كتابة قواعد التنسيق، لنفرض مثلًا أننا نريد استبدال قيمة الخاصية padding بمجموع قيمتين منفصلتين، سنستدعي الدالة ونمرر لها قيم الوسطاء بهذا الشكل: .box1 { padding: add-numbers(20px, 10px); } ولتفهم الأمر أكثر سيكون CSS الناتج عن تحويل الكود أعلاه على النحو التالي: box1 { padding: 30px; } 6. المخاليط mixins تمثل المخاليط mixins في Sass قوالب تحتوي على خليط أو تجمّع لعدة خصائص CSS متكررة بحيث يمكنك إعادة استخدامها في أماكن متعددة داخل الكود .ولتعريف مزيج في Sass نكتب كالتالي: @mixin name { properties; } ولاستداعئه نكتب كود كالتالي: element { @include name; } لنوضح الأمر بمثال عملي، لاحظ في المثال التالي كيف عرّفنا خليط وأسميناه button-styles ووظيفته هي تعريف مجموعة من خصائص التنسيق للأزرار مثل لون الزر والخط المستخدم في الكتابة عليه وحجمه وغيرها من الخصائص: @mixin button-styles($background-color, $text-color, $font-size, $padding) { background-color: $background-color; color: $text-color; font-size: $font-size; padding: $padding; border: none; border-radius: 5px; cursor: pointer; transition: background-color 0.3s ease; بعدها يمكننا بسهولة استخدام هذا الخليط من القيم في تنسيق أي زر في الموقع وليكن الزر الذي يملك الصنف button-primary. من خلال كتابة التعليمة include@ وتمرير القيم المناسبة للمتغيرات كما يلي: .button-primary { @include button-styles(#3498db, #ffffff, 16px, 10px 20px); } كما يمكن تنسيق زر آخر وليكن الزر الذي يملك الصنف button-secondary.بتمرير قيم مختلفة على هذا النحو: .button-secondary { @include button-styles(#2ecc71, #ffffff, 14px, 8px 16px); } بهذه الطريقة أعدنا استخدام مجموعة الخصائص وطبقناها على أنماط متعددة بسهولة وبحجم كود قليل جدًا مقارنة بالكود المكافئ الذي سنكتبه بلغة CSS. 7. ميزة الأكواد المتشعبة Nesting لا تسمح CSS بالعمل مع التداخلات في الكود، بينما تمكننا Sass من كتابة أكواد متشعبة وفق تسلسل هرمي، لاحظ الكود التالي المكتوب بلغة CSS: .header { background-color: #333; } .header h1 { color: white; } .header p { font-size: 16px; } يمكن كتابته بكود Sass مكافئ باستخدام ميزة التضمين داخل المحدد header. كما يلي: .header { background-color: #333; h1 { color: white; } p { font-size: 16px; } } هذا يعني أن جميع قواعد لغة CSS التي تظهر داخل header. تنطبق على العناصر داخل header. فقاعدة h1 هنا سنطبق على العناصر h1 الموجودة داخل عنصر يملك الصنف header.فقط، وقاعدة p ستنطبق على العناصر p الموجودة داخل عنصر له الصنف header. فقط، والكتابة بهذا الأسلوب كما تلاحظ تجعل الكود أكثر تنظيمًا وسهولة في القراءة. كانت هذه أهم أساسيات لغة Sass، ولمطالعة المزيد حول أساسيات Sass ننصحك بمشاهدة الفيديو التالي: مميزات Sass توفر لنا لغة Sass مجموعة من المميزات من أبرزها: توفر لغة Sass مرونة في كتابة تنسيقات عناصر الموقع. إمكانية حفظ قيم التنسيقات في متغيرات بدلاً من استخدام قيم محددة. تُمكنك من توليد شيفرة منظمة وسهلة الفهم والصيانة. تُمكنك من توليد شيفرة قابلة لإعادة الاستخدام وتجنب تكرار الكود. سهلة الصيانة والتعديل حيث يتم التعديل في مكان واحد بدلاً من عدة أماكن. سهلة التعلم لا سيما إذا كنت ملمًا بأساسيات لغة CSS. متوافقة مع جميع إصدارات CSS ويمكنك استخدام أي مكتبات CSS متاحة. عيوب Sass من بين عيوب أو سلبيات لغة Sass نذكر التالي: لا يمكن تنفيذ أكواد Sass مباشرة بل يجب ترجمة الكود المكتوب إلى CSS قبل استخدامه، مما يضيف خطوة إضافية لعملية التطوير. عند إجراء أي تغييرات في تنسيق الموقع تحتاج من جديد لترجمة التغييرات. صعوبة التصحيح فقد تؤدي الترجمة إلى ظهور أخطاء وتجعل عملية التصحيح أصعب قد يستغرق تعلم استخدام مميزات Sass والتآلف معها لبعض الوقت. تعلم Sass إذا كنت مهتمًا بتعلم لغة Sass واحتراف التعامل مع شيفراتها البرمجة فإليك مجموعة من الخطوات التي عليك اتباعها لتحقيق هذفك: تعلم طريقة تثبيت Sass حسب بيئة التطوير ونظام التشغيل الذي تستخدمه. تعلم أساسيات البرمجة والتفكير المنطقي فهي تساعدك على فهم مبادئ Sass. تعلم القواعد الصياغية ومبادئ وأساسيات Sass وتدرب على أمثلة تطبيقية بسيطة حولها. ابدأ بكتابة أكواد Sass بسيطة تتضمن مفاهيم أساسية مثل تعريف المتغيرات في Sass والتعليمات الشرطية والحلقات في Sass وغيرها من المفاهيم، وتحويلها إلى ملفات CSS وافهم آلية عملها. انتقل إلى كتابة أكواد أكثر تعقيدًا تتضمن الدوال وخليط الميزات وغيرها من المفاهيم المتقدمة. طبَّق كل ما تعلمته على مشاريع فعلية، فالفوائد الحقيقى ستظهر لك عند العمل على مشاريع أكبر وأكثر تعقيدًا. ستجد في أكاديمية حسوب الكثير من المصادر التعليمية التي تساعدك على تعلم لغات تطوير الواجهة الأمامية من دورس ومقالات وكتب متنوعة، كما توفر الأكاديمية دورة متكاملة تأخذ بيدك خطوة بخطوة لتتعلم كل التقنيات التي تحتاجها لتصبح مطور واجهات أمامية محترف مع التطبيق العملي لمشاريع متنوعة تساعدك على بناء معرض أعمال مميز وشهادة معتمدة في ختام الدورة تثبت خبرتك وتعزز فرصتك في الحصول على فرصة عمل. دورة تطوير واجهات المستخدم ابدأ عملك الحر بتطوير واجهات المواقع والمتاجر الإلكترونية فور انتهائك من الدورة اشترك الآن الخلاصة أرجو أن يكون هذا المقال قد وضح لك ماذا تعني Sass وكيفية التعامل معها واستخدامها لتحسين وتسريع عملية تنسيق صفحات المواقع بدل استخدام لغة CSS القياسية، ووضح لك أهم الفروقات بين Sass و SCSS و Less وكيفية استخدام كل منهما وما هي أهم خطوات تعلمها. إذا كان لديك سؤال حول هذه التقنية المفيدة في تصميم الواجهات الأمامية يمكنك تركه في قسم التعليقات أسفل المقال أو كتابته في قسم الأسئلة والأجوبة في أكاديمية حسوب. اقرأ أيضًا توثيق Sass باللغة العربية مدخل إلى Sass أمثلة لبعض الدوال المساعدة (mixins) عند كتابة CSS باستخدام SASS لا تكرّر نفسك (DRY): أعد استخدام دوالّ Sass التي كتبتها
×
×
  • أضف...