سؤال

هل هناك قواعد واسعة ومفاوية ومعظمها عديمة الفائدة في المدة التي ستستغرقها لفهم برنامج يستند إلى عدد LOC (خطوط التعليمات البرمجية)؟

(أفهم أن أي قواعد ستكون واسعة ومفوعية ومنظمات الفائدة في الغالب. هذا جيد.)

(اللغة المعنية هي دلفي، ولكن هذا لا ينبغي أن يهم لأنني أبحث عن قواعد واسعة ومفوعية ومعظمها عديمة الفائدة.)

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

المحلول

يقول بعض الأوراق المتعلقة باستعراض كود الأقران أنه ينبغي أن يكون في مكان ما بين 100 و 400 خط كود في الساعة.

نصائح أخرى

ليس عدد LOC يحدد المدة التي يستغرقها فهم البرنامج، فهو أكثر تعقيدا.

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

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

لدي نظرية أنها س (ن2) (لأن عليك أن تفهم كل سطر بالتزامن مع كل خط آخر).

ولكن، كالعادة عند استخدام تدوين كبير - o للحصول على قيمة رقمية فعلية، فإن هذه الإجابة واسعة ومفوعية وذات الفائدة في الغالب.

لا يمكنك جوجل هذا لأنه سيكون هناك رقم تقريبي مختلف لكل برمجة شخص فردي بلغة محددة.

أنت تحاول كتابة دريك معادلة لكتابة البرامج.

هذا ما اعنيه.

حول كتاب البرامج.

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

الانتقال إلى الشخص الذي يقرأ التعليمات البرمجية.

  • معرفة الشخص بالمسائل اللغوية
  • الألفة على الخوارزميات وأنماط هيكل البيانات المستخدمة
  • مقدار سياق المعلومات الذي يمكن للشخص أن يحتفظ به في وقت مهم

التحول التركيز على البيئة، والأشياء التي ستكون.

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

تعيين مقاييس مراجعة التعليمات البرمجية (التي ليست نفس الشيء، ولكن قابلة للمقارنة تقريبا) ضع الرقم في حدود ما يقرب من 50-100 LOC في الساعة، لمراجع تعليمات من ذوي الخبرة.

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

أنا أبحث عن قواعد واسعة ومفاوية ومعظمها عديمة الفائدة.

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

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

بصرف النظر عن "كيف معقد هو البرنامج؟ "، تشمل المتغيرات الأخرى أشياء مثل" كيف نحن سوف هل تفهم ذلك؟ "و" ما مدى فهمك آخر الأشياء، مثل المواصفات الوظيفية للبرنامج؟ "

عندما أبدأ العمل مع برنامج جديد، أحاول أن أفهم قليل من ذلك ممكن! على وجه التحديد أحاول:

  • فهم المواصفات الوظيفية للتغيير الذي يريده أن يصنعني شخص ما (إذا كان لا أحد أرادني تغيير البرنامج، فلن أحتاج إلى فهمه على الإطلاق)

  • البحث وفهم أصغر مجموعة فرعية ممكنة من البرنامج الحالي، الذي سيسمح لي بإجراء هذا التغيير دون كسر أي وظائف أخرى سابقة / موجودة.

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