سؤال

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

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

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

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

المحلول

أهدافك الرئيسية هي:

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

نصائح أخرى

إنشاء مسرد.

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

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

نظرا لأنك لم تحدد حتى مجال مشكلتك، سأختار مثال عشوائي. في نظام الموظفين المدنيين، قد يكون لديك مصطلحات مثل:

  • بيليت: مدة الخدمة (من تاريخ البدء إلى تاريخ الانتهاء) في درجة معينة والخطوة
  • الموظف: سلسلة من البلاط المرتبطة SSN معين
  • الصف والخطوة: الصف والعمود في الجدول العام الفيدرالي

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

من المفيد أن تقترب من مشكلة التحلل من أعلى إلى أسفل وأسفل.

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

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

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

ها هي محاولة، نوع من تخمين البرية.

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

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

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