ما هي السمة الفردية الأكثر أهمية بالنسبة لروتين جيد؟

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

سؤال

الإجراءات والإجراءات والأساليب - كل ما تسميه ، فهي لبنات بناء مهمة للمطورين. ما هي السمة الفردية التي ستقيمها كـ الأهم واحد؟

(من خلال توفير خاصية واحدة لكل إجابة ، من الممكن التصويت لصالحهم بشكل فردي. أي أن الغرض من هذا السؤال هو عدم تحديد خاصية واحدة ، ولكن بدلاً من ذلك ، لتسليط الضوء كل المهمين.)

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

المحلول

أعتقد أن المعايير الأكثر أهمية هي أن لها غرض واحد.

بعد ذلك ، فإنه يفي بهذا الغرض (وهذا الغرض فقط) بشكل صحيح.

نصائح أخرى

أسماء إجراءات التعليق الذاتي.

أمثلة: getStorefromaddress getCarsbymake

يجب أن يكون اختبار الوحدة بسهولة.

اسم الروتينية يرسم واحد إلى واحد لوظائفها.

من المدهش عدد المرات التي تقوم فيها الوظيفة X X وكذلك Y ، أو معظم X ولكن ليس كل X.

هناك هو لا يوجد معيار واحد يميز روتين جيد عن سيء.

ضمن المعايير هي:

  • النزاهة المفاهيمية: إنها تفعل شيئًا يمكن وصفه في شكل قصير بسيط أو جملة واحدة أو فقرة ؛
  • اقتران فضفاض: سلوكه ليس حساسًا لما يجري في الكود حوله ؛
  • الحجم المعقول: من الصعب القراءة وفهم الإجراءات الروتينية الطويلة ، وأقل عرضة للإصابة بنزاهة مفاهيمية جيدة ؛
  • معيار Parnas: إنهم "يخفيون" شيئًا واحدًا يمكن أن يتغير ، بحيث يكون لتغييرات المتطلبات تأثير محدود على بقية النظام.

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

عدد الأشياء التي يحاول القيام بها.

إذا لم يكن هذا بالضبط 1 ، فربما يكون لديك مشكلة.

لا ينبغي أن يكون لها آثار جانبية غير متوقعة.

معالجة أخطاء جيدة (الموثوقية)

الإيجاز

(كان من المفترض أن يكون هذا إجابة شبه ، ولكن لن تسمح للنشر الكلمة الوحيدة من تلقاء نفسها!)

يجب أن يكون ذري

أسطر من التعليمات البرمجية.

يجب عليك تتبع عدد التعديلات المطلوبة بعد استخدام الروتين. الروتين "الجيد" هو واحد مع بعض التعديلات المطلوبة. إن الروتين "السيئ" يثبت بالتأكيد أنه عندما يكون هناك مجموعة من الإصلاحات المطلوبة.

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

إنه يقوم بشيء واحد أو ينفي أشياء متعددة إلى وظائف أخرى

الوضوح - سهل الفهم

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

  1. الحدس ما مدى بديهية مجموعة التعليمات الخاصة بي - هل يفهم الناس الغرض دون الحاجة إلى الخوض في الكثير من الوثائق؟

  2. متعامد ما مدى متعامدة روتيني؟ هل ينجز كل منهم مهمة معينة ، أم أن هناك طرقًا متعددة (ولكن مختلفة قليلاً) لفعل الشيء نفسه؟ إذا كان هناك ، فهذا أمر سيء ، وربما يجب إعادة تصميم API.

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

From the routine name, you can say what the routine does (and when you check the code, you realize that you were right ;-)

The routine uses a consistent level of abstraction throughout.

I would say well documented (and actually enforced) pre and post conditions.

A single return point

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