同僚によって書かれたコードを編集するのはいつですか? [複製
https://softwareengineering.stackexchange.com/questions/3921
-
16-10-2019 - |
質問
この質問にはすでに答えがあります:
- コードの所有権はコードの匂いですか? 5つの回答
同僚によって書かれたコードを編集するのはどの問題ですか?どちらの問題が間違っていますか?
解決
それが正しいとき
編集がプログラムの機能を改善するとき、またはコード自体をより読みやすく /保守可能にするとき。
それが間違っているとき
編集がプログラムの機能に害を及ぼす場合、または編集者に忙しい仕事を提供する以外に目的を果たさない場合。
他のヒント
コードの所有者は誰ですか?会社または開発者?
所有者が(いつものように)会社である場合、あなたまたは同僚によって書かれたコードの編集に違いはないはずです(特定のコードメンテナンスポリシーを除き)。
コードが進化するにつれて、お互いのコードを編集することが発生するはずであり、コードコードの所有権が得られるように、プラクティスとして奨励する必要があります。
コードはチーム全体が所有する必要があります。 1人の開発者によってのみ編集される(したがって、実際に理解されるだけ)コードを使用することは悪い考えです。自分で変更を加えるコードにない場合は、おそらくそれを理解していないでしょう。他の開発者が会社を去るか、病気になるまで待っているのは、コードを学ぶための間違った時間です。
詳細なユニットテストを実施し、ソースコントロールを使用することは、この慣行が低いリスクであることを意味するはずです。
チーム全体がボブおじさんの「ボーイスカウトルール」をフォローするように奨励し、常にコードをチェックしてチェックしようとすることは、コードが時間の経過とともにきれいな状態を保ち、読めないことを確実にするための良い方法です、維持できない混乱。
これの唯一の欠点は、このプラクティスが編集戦争に変わった場合です。開発者は常に互いの変化をもたらしています。これはおそらく、編集戦争を引き起こしているもののコーディング基準を決定していないことを示す兆候なので、これはそれを作成する良い機会になるでしょう。
あなたが取り組んでいることが変更を必要とするとき、それは正しいと思います。バグを修正するために割り当てられていて、バグがそのコードにあるときは正しいです。
コードがあなたが取り組んでいるものとは何の関係もないが、修正する必要がある場合は、それをチームのリードに持ち込み、それを修正するための優先順位を割り当てて、人を割り当ててください(それはあなたではないかもしれません)それ。彼があなたの時間をそれに費やさないと言っているなら、それはその時点で修正するためにすり減っています。あなたは、あなたが取り組みたいものではなく、作業するように割り当てられたものに取り組むために支払われています。どうしても変更する必要があることを考えてみましょうが、優先順位設定はあなたのものではなくマネージャーの仕事です。
個人的な好みのために作業コードを変更するのは間違っています。
コードがコードを修正または理解するように設計された問題を理解していない場合、それは間違っています。それがあなたのニーズのために機能しないからといって、あなたがそれを悩ませてもあなたが何かを壊さないというわけではありません。あなたが仕事をしていることを作るためにそれを変更する必要がある場合は、彼が彼がしたことをした理由と、あなたがあなたのニーズを満たすためにそれを変更した場合に影響を受ける可能性のあるものについて、鉱石プログラマーに話しかけてください。機能していない限り、理解していないコードを変更しないでください。これは、コードを修正しないという意味ではありません。それは、特にコードがすでに生産されている場合、それを徹底的に理解するために時間をかけるまで、それを変更しないことを意味します。
同僚によって書かれたコードを編集するのはいつですか?
これは、製品がどのフェーズにあるかによって異なります。製品がすでに安定していてすでにリリースされている場合、本当に醜いコードに必要な大きな変更がない限り、必要ない変更は行われません。
同僚によって書かれたコードを編集するのはどの問題ですか?
コーディングの書式設定については、把握しません。コードが過度に複雑で、とにかく変更する必要がある場合、または問題を引き起こしている場合、正しく機能しないように見える場合は、リファクタリングする必要があります。
stackexchangeやWikisのように、変更がグローバルな設計と目標に適合する限り、コードを共有し、誰でも変更できるようにする必要があります。しかし、自分自身に質問してください:なぜ誰かが他の誰かのコードを変更しなければならないのですか?複数のプログラマーを介したコーディングの並列化を同時に許可するために、プロジェクトを十分に切り上げましたか?
同時に、異なる機能について、同僚と同じコードを変更することを余儀なくされている場合、コードの絡み合いと悪い「懸念の分離」があります。各プログラマーがソフトウェアコードベースのさまざまな部分で作業できるように、設計を修正する必要があります。