كم من الأسطر من التعليمات البرمجية يجب أن وظيفة/الإجراءات/الطريقة ؟ [مكررة]

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

سؤال

ممكن مكررة:
عندما دالة طويلة جدا ؟

لقد تم مؤخرا إعطاء مهمة لا يحسد عليها مراجعة الفقراء قانون مكتوب من قبل مطور آخر وتوثيق الممارسات السيئة.(كل هذا لأغراض الخروج من دفع المطور العمل بدلا من أي الإيثار السبب بالطبع!)

وقد استعرض رمز لديها العديد من الإجراءات التي من الأسطر من التعليمات البرمجية - أطول تقريبا 600 خطوط.زوجين من المشاكل مع هذا أن فكرت هي الصيانة و سهولة القراءة.

الحيلة هي أن أحتاج لتبرير شخص عادي لماذا هذه الممارسة السيئة و إذا كان من الممكن أنه حتى مع يعتبر جيدا حاليا كتاب مرجعي.القياس هي جيدة جدا.

أي أفكار ؟

مكررة: عندما دالة طويلة جدا ؟
مكررة: أفضل قاعدة الحد الأقصى وظيفة الحجم ؟

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

المحلول

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

دليل الأسلوب الخاص بك تفعل أكثر من شيء واحد:

  • أكثر من مستوى المسافة البادئة في طريقة (يشير إلى الكثير من المنطق الفروع فقط أن تفعل شيئا واحدا)
  • "الفقرة فواصل" - فاصل بين مجموعات منطقية من رمز يشير إلى طريقة تفعل أكثر من شيء واحد

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

نصائح أخرى

الجواب الحقيقي

لا يوجد عدد محدد.

إجابة محددة

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

الممارسة العامة

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

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

أكبر الجاني أرى 3-4+ ظروف منطقية انفجرت في منتصف إذا-البيان.التفاف كل ما في منطقية مع اسم جيد ، ثم يختتم أي القطع التي تصل إلى معقدة في بلدهم.

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

ذات الصلة على وجه التحديد إلى أقصى طول, اقتباس من مدونة كاملة ، يعتبر عموما أن تكون واحدة من أفضل الكتب في هذا الموضوع من ممارسات الترميز:

من وقت لآخر ، خوارزمية معقدة تؤدي إلى أطول الروتينية في هذه الظروف ، الروتينية ينبغي أن يسمح لها أن تنمو عضويا إلى 100-200 خطوط.(خط هو noncomment, nonblank خط من التعليمات البرمجية المصدر.) عقود من أدلة القول أن إجراءات من هذا القبيل طول لا أكثر عرضه للخطأ من أقصر الروتينية.اسمحوا قضايا مثل عمق التعشيش ، عدد من المتغيرات ، وغيرها من التعقيد الاعتبارات ذات الصلة تملي طول الروتينية بدلا من فرض طول التقييد في حد ذاتها.

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

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

إضافة إلى ريكس نقطة ، فإنه ينبغي أيضا أن تكون قصيرة قدر الإمكان.بوب مارتن يقول 10 أو أقل

كائن معلمه - كيف كبيرة ينبغي على وظيفة ؟

كما عدد ممكن.

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