[MUSIC]
قبل أن نبدأ في فحص Angular بمزيد من التفصيل، دعونا نسأل أنفسنا
السؤال الأساسي، لماذا نحتاج إلى أطر جافا سكريبت هذه؟
ما هي بالضبط، وماذا تساعدنا على
تحقيق ما لا يمكننا القيام به باستخدام جافا سكريبت القياسية؟
دعونا ندرس بعض هذه الأسئلة بالتفصيل قليلا في هذه المحاضرة.
أولا، لماذا أطر جافا سكريبت؟ من
الواضح، من تجربتك السابقة مع جافا سكريبت
وربما أيضا تجربة مع الأطر المستندة إلى واجهة المستخدم على شبكة الإنترنت مثل Bootstrap
واستخدام jQuery، كنت أكثر أو أقل أحسب أنه يمكنك
الحصول على معظم الأشياء التي تريد القيام بها على موقع ويب أنجزت،
وذلك باستخدام كل هذه الأدوات و التقنيات التي لديك بالفعل في متناول اليد.
وفي الواقع، يمكن تنفيذ العديد من المواقع الناجحة باستخدام
هذه التقنيات والأدوات البسيطة.
ولكن مع تزايد تعقيد التطبيق الخاص بك،
يصبح مقدار التلاعب DOM الذي يجب القيام به وكمية تحديثات البيانات التي تحتاج إلى التعامل معها يدويًا معقدًا بشكل كبير.
قد
لا تعالج الطرق البسيطة مثل استخدام مكتبة jQuery بما فيه الكفاية الاحتياجات التي لديك في متناول اليد.
هذا هو المكان الذي
يساعد فيه توافر أطر منظمة بشكل جيد مثل Angular التي تعتمد على النماذج القياسية أو هندسة البرمجيات أو أنماط هندسة البرمجيات مثل وحدة تحكم عرض النموذج أو نموذج عرض النموذج أو عرض النموذج أيا كان، على
تنفيذ هذه الويب التطبيقات بشكل فعال وواسع النطاق.
الآن في هذا السياق، يمكننا أن نتحدث عن هذا بمزيد من التفصيل
بينما نمضي في هذه الدورة.
سنتحدث أيضًا عن كيفية ربط النموذج بعرض
واستخدام وحدات التحكم ونماذج العرض لإنجاز هذه الأشياء.
سيتم مناقشتها بمزيد من التفصيل بينما ندرس Angular في هذه الدورة.
اسمحوا لي أن أذكركم بسرعة ما هي مكتبة البرمجيات،
مكتبة البرمجيات هي مجموعة من تطبيقات
السلوكيات التي تستخدمها مرارا وتكرارا داخل التطبيقات الخاصة بك.
لذلك يمكن تنفيذ هذه السلوكيات باستخدام وظائف ذات
واجهات محددة بشكل جيد
بحيث يصبح استخدامها في تنفيذ التطبيق الخاص بك أمرًا مباشرًا.
إذا قمت بالبرمجة بأي لغة،
فسترى غالبًا أن العديد من الوظائف القياسية المدعومة
بهذه اللغات يتم تنفيذها من خلال المكتبات التي تستخدمها.
على سبيل المثال، مكتبات إخراج المدخلات وربما حتى
مكتبات واجهة المستخدم الرسومية التي تدعمها العديد من لغات البرمجة القياسية.
هذا هو المكان الذي يكون فيه مفهوم إعادة استخدام السلوك
فعالاً للغاية لأننا قادرون على تنفيذه مرة واحدة في المكتبة
ثم إعادة استخدام هذا السلوك أينما احتجنا داخل تطبيق البرنامج الخاص بنا.
هذا يجلب أيضًا نمطية للطريقة التي يتم بها تنفيذ تطبيقنا.
مثال جيد على مكتبة البرامج المستخدمة في عالم الويب هو jQuery.
إذا كنت قد أخذت دورة Bootstrap السابقة،
كنت قد رأيت بعض عناصر jQuery في هذه الدورة.
في هذا السياق،
اسمحوا لي أيضا أن أميز مكتبة البرمجيات من إطار البرمجيات.
إطار البرنامج هو التجريد
الذي يوفر البرنامج مثل هذه الوظائف العامة ومن
ثم يوفر لك القدرة على تخصيص هذه الوظيفة
لتنفيذ الحلول لتطبيقك المحدد.
لذلك سوف تزيد من إطار البرنامج مع التعليمات البرمجية الخاصة بك
من أجل تحقيق كل ما تحاول تحقيقه.
لذلك هذه طريقة مختلفة للتفكير في كيفية
محاولة حل المشكلة بدلا من استخدام مكتبة البرمجيات.
الآن، يوفر إطار البرنامج هذا بيئة عالمية قابلة لإعادة الاستخدام
مع وظائف معينة التي هي جزء من منصة برمجية أكبر.
سننظر إلى Angular كمثال على كيفية تحقيق ذلك بمزيد من التفصيل.
هناك العديد من أطر البرمجيات الأخرى التي يتم استخدامها في عالم الويب
بما في ذلك إمبر، العمود الفقري، وغيرها الكثير.
الآن هنا، من الواضح أنك قد تفكر في السؤال.
كيف يمكنك تمييز مكتبة من إطار العمل؟
ما هي الخصائص البارزة لكل منها
ولماذا تصنف واحدة كمكتبة وواحدة أخرى كإطار عمل؟
أين ترسم التمييز بين الاثنين؟
الآن هذا يجب أن أقول،
هناك خط رفيع يفصل مكتبة من إطار العمل.
اعتمادا على كيفية التعامل مع هذا، يمكنك عرض واحد أو
آخر إما مكتبة، أو إطار عمل،
واعتمادا على من تسأل، قد يقوم بعض الناس بتصنيف
نهج معين كنهج مكتبة بدلا من نهج إطار العمل.
مرة أخرى، دعونا لا تقسيم شعرنا حول محاولة
تصنيف الأشياء بالضبط في مكتبة أو إطار.
ومن منظورنا, إذا ساعدنا شيء ما على إنجاز مهمتنا,
فإننا نشعر بالارتياح إزاء هذا النهج.
مرة أخرى، بعد أن قلت ذلك، دعونا نميز بين المكتبة
والإطار بمزيد من التفصيل.
من أجل فهم كيفية التعامل مع
هذه الطريقة بأكملها لكتابة التطبيق الخاص بك.
عند استخدام مكتبة بدلاً من استخدام إطار عمل.
لذا في هذا السياق، فإن التعريف التالي الذي اقترضته
من وثائق AngularJS، أشعر أنه
يعطي تمييزًا أكثر وضوحًا بين المكتبة والإطار.
لذا، يقول هذا التعريف أن المكتبة عبارة عن مجموعة من الوظائف
المفيدة لكتابة تطبيقات الويب، حيث أن jQuery مثال على ذلك.
لذلك هذا هو مجموعة من الوظائف التي تتوفر لك.
يمكنك الاستفادة من هذه الوظائف عند تنفيذ
حل البرنامج الخاص بك لمشكلتك.
عند استخدام هذا الأسلوب، فأنت المبرمج الذي يتحكم دائمًا في
كيفية الاستفادة من الوظائف
التي توفرها المكتبة لإنجاز ما تحاول القيام به.
الإطار من ناحية أخرى هو تنفيذ محدد أو
تنفيذ معين لتطبيق ويب،
حيث يعطي الإطار نفسه بنية عامة واسعة
للتطبيق الخاص بك ومن ثم يطلب منك ملء التفاصيل.
التفاصيل الضرورية لتخصيص هذا التطبيق
لحل المشكلة المحددة التي تحاول معالجتها.
حتى هنا، يأخذ الإطار السيطرة الكاملة على كيفية تشغيل هذه التطبيقات ومن
ثم فإنه سيتم الاتصال في التعليمات البرمجية المقدمة من المستخدم الذي يساعده على إنجاز العمل.
رمز التطبيق المحدد هو شيء سوف تكتبه
وتزويده وسوف يصبح جزءا من التطبيق بأكمله،
جنبا إلى جنب مع الإطار، وأنه يساعد على إنجاز مهمتك.
مرة أخرى، قد لا يمكّنك هذا تمامًا
من فهم التمييز بين الإطار والمكتبة.
دعونا مرة أخرى، كما قلت،
دعونا لا نشر الشعر لدينا في محاولة لمعرفة كل هذه التفاصيل.
ما نحتاج إلى فهمه هو Angular هو مثال على إطار العمل
وعند كتابة التطبيقات في Angular، يأخذ الإطار السيطرة وتقوم
بشكل أساسي بتوفير الأجزاء المفقودة من الشفرة المطلوبة
لتخصيص الإطار لتنفيذ تطبيق الويب الخاص بك.
فحص إطار الكلمة بمزيد من التفصيل.
عندما نتحدث عن إطار عمل،
يتم تلخيص أحد الجوانب الهامة حول كيفية عمل الإطار بهذا المصطلح المسمى مبدأ هوليوود.
ما الذي أعنيه بالضبط بـ «مبدأ هوليوود»؟
الآن، إذا كنت تعرف كيف يعمل وكيل هوليوود، عندما
يريد ممثل أو ممثلة العثور على عمل في هوليوود،
سيقتربون من وكيل والوكيل عادة ما يخبرك،
سنعاود الاتصال بك عندما يكون لدينا عمل لك.
لا تتصلي بنا، سنعاود الإتصال بك
لذلك، في الأساس الإطار يعكس نفس النوع من المبدأ.
يقول الإطار، يمكنك توفير كل ما يمكنك القيام به
وسيقوم الإطار باستدعاء التعليمات البرمجية الموردة كلما احتاج إلى القيام بشيء ما.
هذا هو السبب في أننا نستخدم هذا المصطلح هوليوود المبدأ في عالم البرمجيات.
ويمكن أيضا تلخيص ذلك باستخدام هذا
التعبير الآخر يسمى عكس التحكم.
عند استخدام مكتبة، يكون المبرمج
مسيطرًا، وتملي كيفية عمل الشفرة وكيفية تنفيذ الشفرة.
عند استخدام إطار عمل،
فأنت تقوم بشكل أساسي بتسليم امتيازك إلى الإطار
وتسمح لهذا الإطار بتحمل المسؤولية ثم تملي كيفية تشغيل التطبيق.
الآن بينما قد يبدو أن هذا مثل التنازل عن استقلاليتك،
بالتأكيد ليس هذا هو الحال، إذا كان الإطار لديه سبب معين
لتحمل مسؤولية إنجاز كل ما يحتاج إلى القيام به نيابة عنك.
لذلك هذا هو المكان الذي يمكننا أن نميز بين
نهجين لكتابة البرامج.
واحد دعا باعتبارها الطريقة الحتمية لكتابة البرامج،
والثانية تسمى كوسيلة إعلانية لكتابة البرامج.
إذا كنت قد فعلت أي دورة لغات البرمجة،
فسوف تكون قد رأيت أن لغات البرمجة عادة ما تستخدم
طريقة واحدة أو أخرى أن هذا الدعم في كتابة البرامج.
في البرمجة
الحتمية، ستقوم بتحديد وظائف البرنامج بطريقة خطوة بخطوة.
لذلك كنت تماما والسيطرة
ومن ثم كنت أقول أساسا، وهذا هو كيف لديك لإنجاز المهمة ومن
ثم عليك أن تكتب خطوة خطوة طريقة لإنجاز المهمة.
لذلك أنت كمبرمج تسيطر تماما في تحديد الخطوات الدقيقة
لحل المشكلة.
في البرمجة التعريفية من ناحية أخرى،
والتي يتم استخدامها بشكل فعال من قبل أطر مثل Angular.
أنت تقول بشكل أساسي أن هذا ما أريد تحقيقه،
وهذه هي الطريقة التي قمت بتخصيص ما أريد تحقيقه على وجه التحديد.
كيف يتم ذلك ليس مصدر قلق بالنسبة لي.
ول كنني سأسلم تلك المسؤولية إلى الإطار.
لذلك، في الأساس، كنت توريد رمز العرض المستخدم الخاص بك إلى الإطار
ويقول، الآن هذا هو ما أريد منك أن تفعل، يمكنك تولي المسؤولية وجعل هذا يحدث.
وبهذه الطريقة في البرمجة التعريفية، أنت تعلن فقط ما هو
نيتك والسماح للإطار يقرر كيف سيتم تحقيق ذلك.
طريقتان مختلفتان للتفكير حول كيفية اقترابك من حل مشكلتك.
هذا شيء يجب عليك الحصول على رأسك عندما تتعلم
Angular لأنه إذا كنت قادمًا من عالم البرمجة الحتمية،
فسيكون ميلك العام هو التحكم في كل شيء
وإملاء خطوة بخطوة كيف تريد تحقيقه.
لذلك يستغرق بعض الوقت لتغليف رأسك حول هذا المفهوم أنك
لا تتحكم بالضرورة في كل خطوة.
بدلاً من ذلك، تخبر الإطار بما تريد أن تصبح عليه، ليتم إنجازه.
وإعطاء المسؤولية للإطار لإنجاز
المهمة نيابة عنك.
مرة أخرى، لا تقلق كثيرًا حيال ذلك، ولا تقرأ الكثير في هذه التعريفات.
هذه هي من مصلحة أكاديمية، وهذه هي قاعدة لتحديد
أنماط مختلفة من السلوكيات من منظور مطور تطبيقات الويب.
كل ما يهمك هو كيفية
إنجاز عملك باستخدام Angular كإطار تطبيق الويب.
القادمة إلى عالم أطر جافا سكريبت،
سوف تسمع الكثير من المصطلحات المستخدمة مع أطر جافا سكريبت.
سوف تسمع في كثير من الأحيان الناس يتحدثون عن شيء يسمى
تطبيق PPage واحد أو مصطلح متحالف يسمى تطبيق الإنترنت الغني.
مرة أخرى، سوف ندرس ما يعنيه هذا في أحد
الدروس اللاحقة في هذه الدورة في سياق Angular.
وبالمثل، سوف تسمع أيضا الناس يتحدثون عن نموذج عرض المراقب المالي،
نموذج عرض فيوموديل، نموذج عرض - أيا كان، وهلم جرا.
مرة أخرى، هذا كما قلت، نموذج هندسة البرمجيات
التي نستخدمها لتطوير تطبيقات البرمجيات.
سنتحدث عن المزيد من التفاصيل حول هذا في سياق Angular،
في أحد الدروس اللاحقة.
وفي هذا السياق، تسمع في Angular، أشياء مثل ربط البيانات،
والتوجيه، اتجاه واحد واتجاهين ربط البيانات، وهلم جرا.
مرة أخرى، لا يتم التخلص من كل هذه الشروط.
ونحن سوف نفهم لهم ونحن المضي قدما في هذا المسار.
وبالمثل، سوف تسمع في كثير من الأحيان عن
شفرة جافا سكريبت قابلة للتطوير، قابلة لإعادة الاستخدام، وقابلة للصيانة، وهلم جرا.
هذه مفاهيم
رائعة أو سمات رائعة نريد تحقيقها مع تطبيقنا.
سنرى كيف يساعدنا Angular على القيام بذلك في هذه الدورة بالذات.
ومصطلح آخر أنك غالبا ما تسمع الناس يتحدثون عنه هو
التطور المدفوع بالاختبار.
يدعم الزاوي بالفعل التطوير المدفوع بالاختبار، لذلك حتى قبل تطوير
تطبيقك، ستكتب الاختبار للتأكد من
أن الشفرة التي تقوم بتطبيقها تحقق بالفعل ما تحاول تحقيقه.
سوف ندرس قليلا من اختبار التنمية مدفوعة نحو الجزء الأخير
من هذه الدورة.
على الرغم من ذلك، إذا كنت ترغب في اعتماد نهج التطوير القائم على الاختبار
لتنفيذ التطبيقات، فهذا نهج رائع. و
لكن قبل أن نصل إلى تلك النقطة, من الأفضل
لنا أن نفهم ما يساعدنا الإطار نفسه على إنجازه.
لذا، في هذه الدورة، سأتعامل بإيجاز مع التطوير المدفوع بالاختبار.
ولكن إذا كنت تقوم بتطبيق تطبيق Angular حقيقي، فستعتمد
نهج تطوير قائم على الاختبار لتطوير تطبيقات Angular.
هناك العديد من أطر جافا سكريبت المتوفرة في العالم الحقيقي.
الزاوي يجري بداية.
الزاوي في تجسيدها السابق
كما كانت AngularJS واحدة من أطر جافا سكريبت الأكثر شعبية.
سنلقي نظرة على Angular بمزيد من التفصيل عندما نذهب.
وبالمثل، إذا نظرت إلى عالم أطر جافا سكريبت،
فسوف تسمع الناس يتحدثون عن Ember، Backbone، React.
على الرغم من أن بعض الناس يصنفون React كمكتبة بدلاً من إطار عمل.
مرة أخرى، اعتمادا على من تسأل،
قد يقول بعض الناس أنه إطار عمل وبعض الناس قد يقولون أنها مجرد مكتبة.
مرة أخرى، دعونا لا تقلق كثيرا حول ما هو عليه ولكنه متاح بالنسبة
لنا كنهج لتنفيذ تطبيقات الويب المعقدة.
وبالمثل، أطر أصغر أخرى مثل أوريليا، نيزك، بوليمر،
جوجل البوليمر الذي هو إطار القادمة، خروج المغلوب، فو وغيرها الكثير.
وهناك المزيد والمزيد تضاف إلى هذا كل يوم.
ما هي نكهة إطار جافا سكريبت اليوم؟
الزاوي.
لقد خرجت للتو من مرحلة التطوير وخرجت إلى العالم الحقيقي
والناس يهربون لتطوير التطبيقات باستخدام Angular.
لذلك هذا هو السبب في أننا مهتمون في Angular في هذه الدورة بالذات.
الآن بمجرد أن تتعلم أحدها،
ستبدأ في فهم النهج اللطيف الذي تستخدمه هذه الأطر.
ربما تتمكن من التقاط أطر أخرى بشكل مماثل باستخدام
المفاهيم العامة التي تتعلمها في هذه الدورة الدراسية بالذات.
[ موسيقى]