كيفية إقناع زملائك المطور لكتابة قصيرة الأساليب ؟

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

  •  22-08-2019
  •  | 
  •  

سؤال

طويلة هي طرق الشر على عدة أسس:

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

كيفية إقناع زملائك المطور لكتابة قصيرة الأساليب ؟ (الأسلحة المحرمة =)

السؤال من agiledeveloper

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

المحلول

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

نصائح أخرى

اطلب منه أن يكتب الوحدة اختبارات الطرق.

هذا يعتمد على تعريف "قصيرة" و "طويلة".

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

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

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

قرأت هذا الاقتباس من مكان ما:

كتابة التعليمات البرمجية الخاصة بك كما لو كان الشخص الذي يجب الحفاظ عليه هو العنف النفسي ، الذي يعرف المكان الذي تعيش فيه.

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

رمز التعليقات!

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

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

أساسا ما يأتي إلى أسفل إلى أن بعض المبرمجين ليست مجرد قطع من أجل التنمية.يمكن أن نفهم البرمجية التي كتبت بالفعل, لكن لا يمكن أن تخلق من تلقاء نفسها.

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

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

توسيع بناء على rvanider الجواب ، وأداء cyclomatic تعقيد التحليل على رمز فعل العجائب للحصول على الاهتمام الكبير الأسلوب المسألة ؛ الحصول على الناس أن التغيير كان لا يزال يعمل عندما تركت (الكثير من الزخم نحو كبير الأساليب).

نقطة التحول كانت عندما بدأنا ربط cyclomatic التعقيد إلى علة قاعدة البيانات الخاصة بنا.CC أكثر من 20 لم يكن هذا المصنع ضمان أن يكون لديك العديد من الإدخالات في علة قاعدة البيانات في كثير من الأحيان تلك الأخطاء كان "السلالة" (إصلاح الخلل تسبب علة ب ؛ إصلاح الخلل ب سبب علة C;وما إلى ذلك).ونحن في الواقع ثلاثة CC أكثر من 100 (ماكس 275) و تلك الأساليب تمثل 40% من الحالات في علة لدينا قاعدة بيانات -- "ربما 5000 وظيفة خط ليس فكرة جيدة..."

كان أكثر وضوحا في المشروع الأول بقيادة عندما بدأت هناك.كان الهدف هو الحفاظ على CC في أدنى مستوى ممكن (97% كانت تحت 10) و كانت النتيجة النهائية المنتج الذي أنا في الأساس توقف دعم لأن 20 البق كان لم يستحق التثبيت.

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

على الرغم من كتابة وحدة الاختبارات ربما علاجها طويلة أساليب الشركة ربما لا تستخدم وحدة الاختبارات.الخطاب يذهب فقط حتى الآن نادرا ما يعمل على المطورين الذين عالقون في طرق ؛ وتبين لهم أرقام حول كيفية تلك الأساليب هي خلق المزيد من العمل و عربات التي تجرها الدواب البرمجيات.

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

لست متأكدا من أين هذا عظيم يأتي من اقتباس ، ولكن:

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

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

الحصول عليه في حالة سكر ؟ :-)

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

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

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

إجبارهم على قراءة كتاب "رمز نظيفة", هناك العديد من الآخرين ولكن هذا هو واحد جديدة جيدة و سهلة القراءة.

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

السؤال أنا دائما أسأل فريقي:"انها الساعة 11 مساء و يجب أن تقرأ هذا القانون - يمكن لك ؟ هل تفهم تحت الضغط ؟ يمكنك عبر الهاتف ، أي الدخول عن بعد ، تؤدي بهم إلى القسم حيث أنها يمكن إصلاح خطأ؟" إذا كان الجواب لا, المتابعة هو "يمكنك عزل بعض التعقيد؟"

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

وأود أن تعطي لهم 100 الأسطر من التعليمات البرمجية تحت أسلوب 1 ثم آخر 100 الأسطر من التعليمات البرمجية قسمت بين عدة طرق و أطلب منهم كتابة شرح كل ما يفعل.

الوقت الذي يستغرقه كتابة الفقرتين ثم تظهر لهم النتيجة.

...تأكد من اختيار رمز من شأنها أن تأخذ مرتين أو ثلاث مرات طالما أن نفهم إذا كان كل شيء تحت طريقة واحدة - Main() -

لا شيء أفضل من التعلم على سبيل المثال.

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

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

نأمل عندما ننظر إلى الصورة الأكبر ، فإنها على فهم الأسباب وراء ذلك.

ps.أيضا, هذه العملية يمكن أن تستخدم في الاقتران مصغرة نقل المعرفة على المشاريع القديمة.

  • وتبين له كم من الأسهل إلى اختبار قصير الأساليب.تثبت أن كتابة قصيرة الأساليب سوف تجعل من أسهل وأسرع بالنسبة له لكتابة اختبارات أساليبه (انه هو اختبار هذه الأساليب ، أليس كذلك؟)

  • ذكر الأمر عند استعراض رمز له."هذه الطريقة طويلة نوعا ما, معقد, و يبدو أن تفعل أربعة أشياء متمايزة.طريقة استخراج هنا, هنا, ، هنا."

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

أي استخدام التدريس خنزير الغناء.فإنه النفايات وقتك و يزعج الخنزير.

فقط يتفوق شخص.

عندما يحين الوقت لإصلاح الخلل في 5000 خط الروتينية, ثم سيكون لديك عشرة الخط روتين 4990-خط الروتينية.هل هذا ببطء و لا أحد إشعارات التغيير المفاجئ إلا أن الأمور تبدأ العمل أفضل ببطء كرة كبيرة من الطين يتبخر.

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

فقط القيام بذلك إذا كان لا يملك التفوق المعقدة

[عدل] لماذا هذا جمع السلبية الدرجات ؟

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

أن ما لا يقل عن بعض من الناحية النظريه.

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