سؤال

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

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

المحلول

أعتقد أن المصطلح الصحيح هو تماسك.

في برمجة الكمبيوتر، تماسك هو مقياس لكيفية التعاون بقوة ومركزة على مختلف المسؤوليات لوحدة البرمجيات. التماسك هو نوع ترتيبي من القياس وعادة ما يتم التعبير عنها ك "تماسك مرتفع" أو "تماسك منخفض" عند مناقشته.

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

نصائح أخرى

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

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

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

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

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

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

كما يقول شركة Codewiki، يتم مناقشة التماسك عادة مع اقتران، حيث يمكن لللفتي أن يتصرفوا في معارضة لبعضهم البعض، خاصة عندما تكون واجهات صارمة غير مؤرفة بعناية. تتعلق العديد من المقالات Googled عن التماسك بتصميم OO، ولكن لا تقتصر التماسك والاقتران على OO.

تميزت بأجزاء منظمة ومنطقية ومنطقية متسقة من المنطقية؛ "حجة متماسكة" - من http://www.websters-online-dictionary.org/definition/coherent.

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