كيف تعمل مع مبرمج بأسلوب ترميز مختلف تمامًا؟ [مغلق

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

  •  23-09-2019
  •  | 
  •  

سؤال

هل عمل أي شخص مع مبرمج بأسلوب ترميز مختلف تمامًا؟ كيف يمكنك تجميعهما معًا دون الرغبة في حذف رمز بعضهما البعض وإعادة كتابة بعضكما البعض؟

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

المحلول

اختر واحدًا واذهب معه.

إذا كنت تجد صعوبة في الاتفاق ، خذ الوقت الكافي لإدراج إيجابيات وسلبيات بما في ذلك:

  • دعم الأداة لتنسيق السيارات (يمكن أن أعرف Eclipse و Visual Studio ذلك باستخدام ملف الإعدادات)
  • المطابقة لمعايير الصناعة العامة (نشرت صن اتفاقيات قياسية لجافا ، ربما هناك ما يعادل لغتك؟)
  • المطابقة للمصدر أو تكلفة التعديل والموجود مسبقًا (إذا كان لديك مليون سطر في نمط واحد ، فما مدى صعوبة تحديث هذا الرمز إلى النمط الجديد؟)
  • ... أي عامل آخر يجده أي منكم مهم (يمكن أن يشمل ذلك التكلفة لتصبح على دراية بالأسلوب الجديد)

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

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

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

نصائح أخرى

نحن نتفق على نمط الترميز القياسي وننفذه في شكل ملفات إعدادات Visual Studio.

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

التواصل مع المطور الآخر. اتفق على أسلوب الترميز الذي يجمع بين أفضل ما في العالمين؟

عندما تقول "نمط الترميز" ، فهل تقصد التنسيق أو الفرق في الطريقة التي تقوم بتكنولوجيا الكود الخاص بك؟

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

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

  • باستخدام IDE بالاقتران مع الإضافات التي تحدد الأسلوب (في حالة Java - CheckStyle ، PMD) ، يمكن لزعيم الفريق ، أو حتى مدير المشروع (إذا كان الشخص التقني) إجبار إرشادات نمط الكود على الفريق بأكمله.

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

  • ناقش أساليب التعليمات البرمجية والحل وسط ، ثم قم بتطبيق إمكانيات IDE المذكورة في النقطة الأولى.

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

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

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

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

لك نمط الترميز ليس هو القاعدة. له نمط الترميز ليس هو القاعدة. ال Norm هو نمط الترميز الذي يختاره المشروع ، أو في بعض الأحيان ، المؤسسة بأكملها (ويجب توثيقها في مكان ما) وعلى كلاكما الامتثال له. يمكن استخدام أدوات مثل CheckStyle (مع Java) لضمان المطابقة. إذا كنت تستخدم مثل هذه الأداة ، فقم بتوزيع ملف التكوين الخاص به. قم أيضًا بتوزيع الملفات لتكوين تنسيق IDES.

تستخدم العديد من مشاريع المصادر المفتوحة (أو الشركات) هذه المبادئ (انظر على سبيل المثال Xwiki's نمط رمز جافا, نمط رمز مافن واتفاقيات الرمز أو دليل نمط اللغة C من مطوري Apache). هذا يعمل للمطورين الموزعة في جميع أنحاء العالم ، لا تخبرني أن هذا لا يمكن أن يعمل للمطورين في نفس الغرفة.

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

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

لديك 4 خيارات ، - إما تحويلها - يتم تحويلها - يمكنك اقتراح معيار الشركة. - أنت تعيش معها.

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

Personname vs Spersonname vs Strpersonname <- أي واحد تختار؟

إذا كنت تقصد التنسيق ، ctrl-a ، kf <-تنسيق الكود الخاص بك بشكل جيد في VS :)

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

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

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

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

هذا يعتمد.

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

إذا كان المطور الآخر أكثر انفتاحًا ، فقد أناقش أشياء مثل معايير الترميز / التسمية (آمل أن تتم مناقشة أشياء مثل الهندسة المعمارية العامة على أي حال)

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

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