ما هو نمط غلاف أفضل الممارسات لجافا سكريبت؟ لماذا ا؟

StackOverflow https://stackoverflow.com/questions/1008230

سؤال

واحد من جوانب جافا سكريبت أنه من الصعب الحصول على معلومات عن ممارسات غير غلاف. الممارسات الغلاف، أعني ما هو النمط غلاف (أي الجمل على حدة، باسكال حدة، الخ) يجب أن تستخدم لما هي العناصر (البنائون، وظائف خاصة، وظائف عامة).

وكانت القاعدة الوحيدة سمعت من محاضرة دوغلاس كروكفورد على المسرح YUI، تفيد بأن مشيدات ينبغي أن تكون وظائف الوحيدة التي تبدأ مع حرف كبير.

وأبعد من ذلك هناك لا يبدو أن هناك العديد من المعايير غلاف أن يتبع الناس في جافا سكريبت.

هل أحد يعرف أي غلاف أفضل الممارسات لجافا سكريبت، والسبب في أنه من المعقول أن استخدامها؟

وأيضا هل اتباع أسلوب غلاف مع الملفات شبيبة بك؟

هل كانت مفيدة؟

المحلول

وأنا أفضل PascalCase للمنشئات وcamelCase عن كل شيء آخر. هذا هو النمط الذي شبيبة الاستخدامات المكتبة القياسية وكذلك ... كل إطار JS رأيت حتى الآن:)

وأنا استخدم all_lowercase اصطلاح التسمية لكافة الملفات خدم من شبكة الإنترنت. هناك <م> بعض أنظمة الملفات تحسس حالة الأحرف هناك.

نصائح أخرى

ويستخدم اللغة الأساسية InitialCaps للمنشئات (كائن على سبيل المثال، تاريخ، عدد، التعبير العادي) وcamelCase عن الأساليب والخصائص (مثل something.toString ()، quantity.valueOf ()، regexp.ignoreCase). ويتبع هذه الاتفاقية أيضا في المواصفات DOM وتطبيقات (مثل HTMLElement.setAttribute ()). لذلك يجعل اكثر احساسا لاعتماد نفس الاتفاقية، أو الانتهاء مع خليط من الأساليب البشعة مثل:

var number_of_fish_requested = document.getElementById("fish").value;
var fish_count = parseInt(number_of_fish_requested, 10);

والذي يصبح مجرد مربكة تماما، ليس فقط لكتابة، ولكن الأهم من ذلك بكثير، لقراءة.

و(ان تنفق المزيد من الوقت قراءة رمز، في محاولة لتصحيح أو تعديله، من أي وقت مضى كنت لا أكتب ذلك في المقام الأول).

وما رأيته حتى الآن هو تنوع كبير جدا من المعايير الغلاف.

وبقدر ما انا قلق، وأنا استخدم C # التصميم لكتابة بلدي شفرة جافا سكريبت. يمكنني استخدام الطبقات الكثير (وأيضا وظائف كما الطبقات، وعادة لا يكون لها وظائف مستقلة). لذلك، وأنا استخدم PascalCase عن أسماء فئة، طرق العامة والممتلكات وجميع المتغيرات العالمية وcamelCase عن الحجج والمتغيرات المحلية ووظائف خاصة. وهذا يعكس بطريقة أو بأخرى بيئة مشتركة بلدي، مما يساعد على التمييز بين نطاقات متغير. وأود أيضا أن تميل للحفاظ على وظائف صفي في ملف منفصل مع نفس اسم بلدي اسم_الفئة (ClassName.js، ClassName.min.js).

وكان هذا عن وجهة نظري.

ولقد لاحظت أيضا أن جافا المبرمجين، اتباع القواعد جافا (وأسلوب الكتابة يشبه لغة جافا.) روبي على القضبان المبرمجين اتباع معايير تسمية خاصة بها مثل underscore_separated_var_name.

وعلاوة على ذلك، كما ذكرت، هناك ميل لاستخدام pascalCase كثيرا في تسمية في أطر شعبية جدا التي تأتي من المجتمعات المختلفة مثل لينكس مجتمع المصدر / فتح ومطوري مايكروسوفت (مسج، knockout.js، JSJaC، الخ الكتاب )

وأود أن أشير إلى أن أيا من هذه الأساليب مخطئون أو اليمين، عندما يتعلق الأمر JS. والغرض الرئيسي من اصطلاحات التسمية وهيكلة الملف هو سهولة القراءة. إذا كنت ثابتا فإنك في المستقبل وزميله المطورين الخاص بك وسوف يفهم بسرعة والحصول على مع التعليمات البرمجية.

وأنا أفضل camelCase عن كل شيء باستثناء الصانعين. والسبب (وأعتقد أن هذا هو السبب واقترح السيد كروكفورد هذا أيضا) هو لأنه في لغات أخرى، مثل جافا، الاتفاقية هو الاستفادة الفصول الدراسية، وهو ما تستخدم المنشئات ل.

وهذا هو بلدي $ 0.02.

وجميع أقل الحال مع فواصل تسطير هي أسهل للقراءة. ويترتب على اللغة الطبيعية. "أفضل" سوف تحصل في لحرب مقدسة. الحقيقة هي حالة لا يهم بقدر مسائل التصميم الأخرى لكنه موضوعا السهل أن الاستقطاب.

ALongButNotReallyReadableIdentifier
an_even_longer_but_completely_readable_identifier

والجواب المقبول هو الصحيح ولكن هناك بعض الاستثناءات. في window.JSON وwindow.XMLHttpRequest تتم رسملة المدى.

وأيضا معظم الناس يستخدمون PascalCase للكائنات نوع التعداد في جافا سكريبت ورسملة القيم داخل. أحيانا تتم مساحات الأسماء في PascalCase أيضا.

وعلى سبيل المثال: MyCompany.Web.UI.MyComponent.ThemeOption = {BLACK: 0، SILVER: 1، الزرقاء: 2}

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top