الترميز باستخدام الاتفاقيات وليس تكويناتالترميز باستخدام الاتفاقيات وليس تكوينات
المشكلة أنت تريد أن يصبح لديك جافا سكريبت يبني أكثر كفاءة من خلال تطبيق القضبان "اتفاقية حول التكوين مبدأ" لهم. نظرية بالفعل قد يكون على دراية منصة البرمجة روبي على القضبان ، والتي تستخدم لبناء تطبيقات ويب. التركيز على هذه الوصفة ليست روبي على القضبان ، ولكن جانبا واحدا من روبي على القضبان وهما اتفاقية حول التكوين (انظر http://en.wikipedia.org/wiki/ Ruby_on_Rails لمعرفة المزيد عن هذا). تخيل الاختبارات الكتابية وإدراك أن يمكنك استخدام نفس مجموعة من التعليمات مرارا وتكرارا. عند تحويل رمز من رمز المتكررة الى رمز عام ، تقوم بإنشاء الإطار. ويمكن أن تنشأ في إطار واحدة من طريقتين. الطريقة الأولى هي لإنشاء البنية التحتية والأسلاك معا ، والثاني هو لوضع افتراضات بشأن التعليمات البرمجية. النظر في المسائل التالية جافا سكريبت JsUnit الاختبار : testsToRun فار = (/ / ابدأ شفرة جافا سكريبت لحالات الاختبار هنا testPlainVanilla : الدالة () (/ / بعض testManager.success رمز () ؛) / / نهاية شفرة جافا سكريبت لحالات الاختبار) ؛ testManager.setTestCases (testsToRun) ؛ تفاصيل ما المتغيرات والطبقات لا ليست ذات صلة. ما هو مهم هو كيف يتم السلكية معا. المتغير testsToRun يحتوي على عدد من الأساليب التي يتم استخدامها لتنفيذ اختبارات خاصة. عند كل اختبار قد أنجزت بنجاح ، وطريقة testManager.success يسمى. المتغير testsToRun ليست مرتبطة بأي طريقة أخرى ، عضو البيانات ، أو وظيفة ببساطة ، testsToRun هو معلق مثل راية في الريح. بطبيعة الحال ، نحن لا نريد testsToRun معطلا في مهب الريح ، ونحن نريد أن تكون التجارب أعدم. الاختبارات التي تنفذها المتغير testManager ، وtestManager ليس لديها علم testsToRun. ويتمثل التحدي في معرفة كيفية جعل testManager علم testsToRun ، وبمجرد أن يدرك ، لتنفيذ الاختبارات الواردة. الأسلاك من testManager لtestsToRun يمكن أن تكون اتفاقية أو التكوين ، في المثال السابق ، فإن الحل تستخدم لصنع testManager علم هو testsToRun التكوين. من حيث البرمجة الكلاسيكية ، يمكنك أن تفكر في التكوين كما يتم ملف على القرص الثابت مع أجزاء النص التي يتم تحليل بواسطة خوارزمية. هذه العملية هو تكوين ، ولكن من نوع واحد فقط من التكوين. نوع آخر يعرف باسم التكوين البرمجي ينطوي على شفرة المصدر يقول الطبقات كيف أن كل شيء السلكية معا. وأنا لن تشمل مزايا وعيوب لأنواع مختلفة التكوين ويكفي ان نقول ان التكوين يستخدم لسلك معا تطبيقات غير معروف لإنشاء نظام العمل. تكوين وغالبا ما تستخدم لأنها وسيلة سهلة لإنشاء نظام العمل. التكوين لا تتطلب خوارزمية الخصم ، وإنما يحتاج فقط خوارزمية التي يمكن تحليل ملف تكوين أو مبرمجا الذين يمكن سلك التنفيذ معا. باختصار ، يتطلب التكوين مبرمج أو مسؤول لقيام بعض من رفع الأحمال الثقيلة لمعرفة ما هو قطعة السلكية إلى قطعة أخرى. إذا كان لا يعمل شيئا ، ثم النظام يستطيع أن يقول ، "عفوا ، لم يفلح ذلك. حاول مرة أخرى. " اتفاقية يمكن أن يبدو أن هناك طريقة أكثر تعقيدا لإنشاء نظام العمل هذا هو فن أكثر من علم. باعتبار ذلك قياسا على ذلك ، في فيلم أنا ، روبوت، والممثل ويل سميث يلعب شرطي ، دل سبونر ، الذي لا يحب الروبوتات. أثناء استجواب الروبوت المشهد ، سبونر الغمزات على شرطي آخر يغادر قاعة الاستجواب. الروبوت يسأل هل ما يعني غمزة ، ويوضح أن سبونر غمزة شيء أن يعرف الإنسان. في مرحلة لاحقة في الفيلم ، ويستخدم الروبوت غمز لارسال amessage لسبونر. سبونر تشعر بالدهشة ، لكنه يعرف ما يعنيه ويتصرف بشكل مناسب. لذا كيف يمكن للغمز وتتعلق الاتفاقية؟ لشخص لا يعرف ما هو غمزة ، فإنه من قطعة واحدة بسيطة من المعلومات التي لها انعكاسات كثيرة. لشخص لا يعرف ما هو غمزة ، فمن ووصفها بأنها غير ذات صلة. والشخص الذي يرفض غمزة مفقود قطعة من المعلومات الحيوية ويمكن النظر للخروج من حلقة المعارف. وغمز يمثل قطعة من المعلومات المعقدة التي تتطلب السياق أن نفهم تماما. نقد واحد من روبي على القضبان هو أنها فن أكثر من علم ، وبالتالي ليس من المنطقي ، لأنه يستخدم في الاتفاقية بعبارة أخرى ، انها مثل غمزة ، وإذا لم يكن لديك السياق لفهم ذلك ، فإنه لا تجعل معنى. أود أن مواجهة هذا التكوين يستخدم الاتفاقية ، وبالتالي وجود اتفاقية. في أبسط الحالات ، التكوين هو بذاته ، ولكن في هذه القضية أكثر تعقيدا ، وهو ملف التكوين اتفاقية جميعا من تلقاء نفسها. لفهم التكوين ، وتحتاج إلى فهم الاتفاقية من التكوين ، والذي يطرح السؤال ، لماذا استخدم تكوينا؟ الجواب هو أنه في بعض الأحيان تكوين هو الحل المناسب لأنه يوفر المرونة؛ مع الاتفاقية ، تقوم بأشياء وفقا لخطة شاملة محددة سلفا. التكوين السبب أصبحت الاتفاقية هو أنه في كثير من الحالات ، للمطورين أعتقد أنهم في حاجة إلى استخدام التكوين لاكتساب المرونة ، في حين الاتفاقية الواقع يمكن أن يكون جيدا بما فيه الكفاية. تنفيذ الاتفاقية لا تتطلب استخدام التأمل ، وذلك لأن لاتخاذ قرار استنادا إلى الاتفاقية ، عليك أن تعرف في السياق الحالي. والميزة الكبرى لاستخدام الاتفاقية هو أنك لا تحتاج إلى الحفاظ على التكوين كلما تحدث التغييرات اتفاقية تلقائيا تلتقط التغييرات الأخيرة. وفيما يلي بعض السيناريوهات التي ستستخدم اتفاقية حول التكوين : • عند الحاجة لتحديثه باستمرار وعبر إدارة المعلومات المرجعية (على سبيل المثال ، أعمدة قاعدة البيانات التي يتم تعيينها لأعضاء الطبقة البيانات). • عند التكوين الخاص بك هو فقط من أهمية للمطور وغير مسؤول. فعلى سبيل المثال ، تتوقع مسؤول تريد تكوين قاعدة بيانات التطبيق الخاص بك الذي سيتم الاتصال. ولكن كنت لا تتوقع بمسؤول لتكوين النموذج الذي ينتمي الى أي رأي ، والتي تحكم في aModel - - عرض المراقب المالي (بعثة التحقق المشتركة) العمارة. • عندما يمكنك استخدام أساليب التفكير والدعوة مجهولة ، دون معرفة نوع المعلومات. فمن الممكن لتنفيذ الاتفاقيات باستخدام لغات البرمجة مثل جيم # وجافا ، كما أنها تدعم التفكير ، ولكن القدرة على استدعاء أساليب مجهول هو أكثر تعقيدا بكثير. باستخدام اللغات الديناميكية مثل جافا سكريبت وروبي ، فإنه من السهل جدا لاستدعاء الأساليب أو الخصائص على أنواع. • عند الحاجة إلى تزويد المستخدمين (ونفسك) مع تلميحات اذا سارت الامور بشكل سيء. عند استخدام الاتفاقيات ، فمن المهم جدا أن يبين بوضوح ما هو الخطأ عندما لا يعمل شيئا. روبي على القضبان يقوم بعمل جيد جدا في توفير تلميحات حول ما يجب القيام به بعد ذلك عندما حدث خطأ ما. هذه الميزة مهمة لكتابة رمز لنظام يستخدم الاتفاقية لا تعمل إلا إذا كنت تعرف الاتفاقية. حل لهذه الوصفة ، سنقوم بتحويل وحدة إطار الاختبار وصفها سابقا إلى اتفاقية تماما النظام القائم. ثم عند كتابة وحدة الاختبارات ، ستكون مهمتنا الوحيدة لتنفيذ سلسلة من الاختبارات في هيكل وحدة إطار الاختبار لن تفعل بقية. ولأغراض التوضيح ، دعونا ننظر في القالب لاختبار وحدة أخرى ، والتعرف على القطع التي تحتاج إلى تحويلها من نهج التكوين لنهج الاتفاقية. المصدر : / jaxson / الجذع / الانترنت / الجذر / مخطوطات / قوالب / testcontract.html
خطوط جريئة في المثال السابق تمثل التكوين القائم على التعليمات البرمجية التي سيتم تحويلها إلى اتفاقية المستندة إلى رمز. عند التحويل من التكوين القائم على رمز للاتفاقية ومقرها رمز ، يمكنك تطبيق نهج واحد من اثنين. النهج الأول هو إعادة كتابة فصول المستخدمة من قبل وحدة لاختبار الإطار بحيث تصبح اتفاقية قائمة تماما. ميزة لهذا النهج هو أن الطبقات هي العجاف ولحل هذه المهمة. النهج الثاني هو الحفاظ على وظيفة التكوين ، والكتابة على طبقة كبار أن تنفذ وظائف الاتفاقية. وميزة هذا النهج هو أن الحلول اتفاقية متعددة يمكن تطبيقها ، ولكن العيب هو حمل إضافي. سنقوم بتنفيذ النهج الثاني هنا ، وإبقاء كل من الاتفاقية وتكوين طبقة والهزيل ممكن. من الناحية المثالية ، ينبغي لتكوين طبقة تحتوي فقط على الوظائف التي يحتاجها الاتفاقية. وظيفة إضافية في التكوين يضيف الأمتعة لا لزوم لها. وحدة القاعدة اختبار الملف عند تحويلها إلى ملف الاتفاقية هي مشابهة لما يلي. المصدر : / الانترنت / الجذر / ajaxrecipes / جافا سكريبت / conventionconfiguration.html رمز تعديل يشمل ثلاثة اختبارات ، ولكن لاحظت انخفاض حاد في رمز في هذا المثال. كما لاحظت أن بعض التركيبات هي رمز ضمني ولست بحاجة إلى أن تكون مكتوبة بشكل واضح (على سبيل المثال ، testManager.success). من وجهة نظر المستخدم ، وتخفيض وتبسيط رمز هو شيء جيد ، ولكن في الواقع هناك الكثير من الجوانب الخفية التي ستحتاج إلى أن تكون على علم ، لأنه عندما حدث خطأ ما ، عليك أن تعرف لماذا حدث ما حدث. و تفاصيل كيف تم تنفيذ هذه التعليمات البرمجية ليست مشمولة في الوصفة التي تمت مناقشتها خلال هذه المقالة ولكن المفاهيم العامة التالية يتم تنفيذها : • وأتش تي أم أل البرمجية التي تحتوي على أزرار حيوي يتم إنشاؤه بواسطة موقع استراتيجي يشمل الملف (conventiontest.js). الملف يوضع فيها ومن ذلك أن المتغيرات سوف يكون معلنا بالفعل والمتاحة من أجل التهيئة. • المتغير testsToRun هو ضمنا إلى وجود متغير ويتم تفتيش للاختبارات المتاحة. لكل طريقة الاختبار ، زر يتم إنشاؤها ، حيث اسم الزر هو اسم طريقة الاختبار. • كل أسلوب يستخدم لتغليف وكيل ومعالجة الأخطاء تلقائيا ، أو اختبارات ناجحة على النحو المناسب ، وعندما خلق لكم الاتفاقية الخاصة المستندة إلى رمز ، نأخذ في الاعتبار النقاط التالية : • التهيئة: في التكوين القائم على رمز ، فأنت مسؤول عن التهيئة للمتغيرات والأشياء ، ومقرها في اتفاقية رمز ، رمز هو في الغالب مسؤولة عن تهيئة نفسها. انها مثل بدءا سيارة : كنت تتوقع السيارة لتغذية الوقود الى المحرك ، وأنت فقط تريد أن تدير المفتاح وتكون قادرة على محرك الأقراص. المشكلة مع التهيئة هو أنك لا يعرفون دائما السياق. • لديك طريقتين لتهيئة. الأول ، هو تهيئة وتكوين عندما يتم تحميل الجافا ، كما يتضح من مصنع XMLHttpRequest في صفة 2-4. والثاني هو تهيئة عند أول عمل تأخذ مكان. في السيناريو الثاني ، إشارة تشير إلى حالة التهيئة ومن المقرر أن كاذبة عندما يتم تحميل جافا سكريبت. ثم في أول عمل تأخذ مكان ، والتهيئة يحدث. • تدقيق الأخطاء: اتفاقية نظم نتوقع بعض المتغيرات أو أنواع المعلنة ، وإذا لم تكن المعلنة ، تنشأ مشاكل. وهناك نظام الاتفاقية يجب أن يكون الروتين الخطأ كل الخطأ أن الصيد ويشرح بالتفصيل ما حدث من خطأ. العديد من مطوري يظن أن نظام الاتفاقية ينبغي أن تكون قابلة للتكيف وغير قابلة تماما للعمل حول الرمز الصحيح. هذا هو المفهوم الخاطئ كبيرة توفير الحلول ليجعل المطور قذرة. استنادا إلى الاتفاقية يتطلب رمز الترميز الممارسات الجيدة ، بحيث رموز الجميع لنفس الاتفاقية. لا تأخذ الاختصارات. • تسمية الاتساق: كلما قمت تسمية المعرفات ، تحتاج إلى أن تكون متسقة. اسم المعرف يحتاج إلى أن تكون واضحة قدر الإمكان. لا تحاول أن تكون ذكية ، والبقعة ، أو خفي. روبي على القضبان هو نجاح لأسباب كثيرة ، أحدها هو أن اصطلاحات التسمية واضحة ومتسقة ، وبديهية. مقال مقدم من سونيا Lande تنويه :موقعنا على الانترنت ليست مسؤولة عن محتوى هذه المادة. Webarticles هو حر للمعلومات. المهم : هذه المادة "الترميز باستخدام الاتفاقيات وليس تكوينات" وقد ترجم من قبل البرمجيات التلقائي. نشعر بالاسف من اجل أي الأخطاء الإملائية التي قد حدث. شكرا لتفهمكم.
|
|||||||||||||||
| Online: 422 users browsing the articles directory |
|
|