同僚が外観を変更するためにコードを編集している場合はどうすればよいですか?

softwareengineering.stackexchange https://softwareengineering.stackexchange.com/questions/3918

質問

同僚があなたのコードを編集している場合、あなたは何をすべきですか?

機能を追加したり、バグを修正することを目的として、見た目を変えるためだけに...

役に立ちましたか?

解決

それについて彼らに話してください。 「彼らは私を悩ませるためにこれをしていないか、強迫性障害の何らかの形を持っているからです。彼らは私のコードを改善しようとしている」という態度で会話に参加してください。

あなたが間違っている可能性があるからです。それは微妙なバグの修正である可能性があり、あなたはそれを見つけませんでした。

または、あなたが違反していることを知らないコーディング基準があり、彼らはそれを修正しているだけかもしれません。

または、彼らがあなたを悩ませようとしているのか、あるいは強迫性障害の何らかの形であるかもしれません。もしそうなら、彼らに止まるようにうまく頼んでください、そしてそれがうまくいかないなら、あなたの上司と一緒にそれを取り上げてください。

しかし、あなたが尋ねない限り、あなたは決して知りません。

他のヒント

私は私のコードが私を悩ませるためにそれをどのように探しているかとはあまり結婚していません。 :)私は変更から学ぼうとします。私の同僚は変数名を調整しましたか?より効率的なループを書きますか?コードをより読みやすくしますか?

変更がすでにそこにあったものをどのように改善したかがわからない場合、私は通常、彼らの背後にある動機が何であるかを変更した同僚に尋ねます。利点が私には明らかではない可能性があります。そして、私が正しいと彼らが間違っているなら、おそらく私はなぜ私がそれを書いたのかを説明することができます。

他のすべてが失敗した場合は、チェックインを元に戻します。 ;)

編集:化粧品の変更を行いたいという欲求がバグを導入した場合、すべての賭けはオフです。

IMOあなたとあなたのチームはとにかくコーディング標準を使用する必要があります。この場合、質問は「元のコードが標準に準拠したのですか?」になります。 「はい」の場合、同僚は機能的に変更しない限り、コードに触れてはなりません。 「いいえ」の場合、あなたの同僚はあなたのコードを片付ける権利を持っているのではないかと心配しています。プロジェクトのリードとして、私はいつもそれをやっていることに気づきます。

コーディング標準を使用していない場合、「良いコード」を構成するものの引数全体が主観的すぎるようになります。したがって、なぜコーディング標準を使用する必要があるのです:)

の1つとして それらの 人々(他の人のコードを時々再フォーマットする人々)、私がそれを行う主な理由は読みやすさです。一部の人々は、インデントや混合タブやスペースで非常にずさんです。

私が変化する習慣を持っている主なことは、長い線を減らすことです。複雑なステートメントを個別のステートメントに分割するか、1行ごとに1つのパラメーターをリストするために、メソッドコール/宣言を再フォーマットします。また、英語のエラーを修正するか、物事をより明確にするために、コメントを編集します。

はい、私はそれを放っておくことができますが、コードを読むのに必要な精神的な努力を減らしたいです。

あなたはそれについて何をすべきですか?まず、この人があなたのコードをより良くしているのではないかと考えてください。また、コードをフォーマットする方法について、チームにコンセンサスがあることを確認する必要があります。一人一人が異なる習慣を持っている場合、全員が遅くなります。彼らがあなたのコードをより良くしておらず、彼らが穀物に反しているなら、あなたはそれについて彼らに立ち向かう必要があります。それがうまくいかない場合は、他の人を巻き込む必要があるかもしれません。

なぜ彼らがそれをしているのか尋ねてください。有効な説明はあなたのフラストレーションを減らすかもしれませんが、あなたは彼らがどれほどあなたを悩ませているかを彼らに知らせるべきです。誰が知っているか、多分彼らは彼らがあなたに好意を持っていると思っていて、彼らがそれをあなたを怒らせることを知ったときに止まるでしょう。または、あなたは本当に病状に苦しんでいる人に対処しているかもしれません。

彼/彼は許可されていますか?変更はコードを改善しますか?もしそうなら、あなたのプライドを飲み込みます。コードの品質が悪化していると感じた場合は、同僚と一緒にそれを取り上げて、明らかな利益なしにコードを変更する必要性を感じた理由を尋ねてください。それがにもかかわらず行われている場合、またはその人が自分よりも優れていると誤って感じている場合、あなたは彼らと一緒にそれを解決することができないので、あなたの上司と一緒にそれを取り上げてください。

IDE'SのようなVisual Studioには、呼ばれるオプションがあります Format Document これは、ユーザーがIDEで設定したルールに従ってコードをフォーマットします。それはあなたの同僚がこれを使用している可能性があります(知らなくても自動的に、または意図的なアプリケーションのいずれかです。おそらく、彼らのIDEはタブの代わりにスペースを使用しているか、その逆であり、これらは知らなくても自動的に適用されていますか?しかし、あなたは彼らと話すために話す必要があります。

ちなみに、それが明らかに何らかのフォーマットスキームに従わない場合、私はしばしば同僚のコードを再構築します(つまり、それはあちこちにあります)。うまくいけば、彼らに気づく微妙な方法です。 (しかし、それがきれいであれば、私はそれを再フォーマットしませんが、私の好みではありません)。

チームのコーディング基準を満たすように彼がそれを変更している場合は、次回は基準に従う必要があります。

彼がそれを変更して、それがあなたのチームのコーディング基準に従わないようにした場合、彼が間違っていることを彼に知らせ、彼にそれを変えさせます。

...あなたのチームには、すべての人が使用するコードフォーマット標準のセットがありますよね?

私は時々、乱雑な同僚によって書かれたコードを並べ替えます(またはコメントでタイプミスを修正します)。彼らは私がコードの書式と順序に執着していることを知っているので、あまり文句を言うことなく私にそれをさせてくれます。時々彼らは私に無料のソーダやクッキーをくれます。

もちろんこれはそうです 時々 SVNで「非難」機能を破ったときに機能します。

これは、何らかのコードレビューを行うための非常に基本的な方法でもあります(通常、私が取り組んでいるモジュールで同僚がコミットしたコードのほとんどを読みます)。

コード規則 答え。あなたは仕事中のものを持っているはずです。そうしない場合は、今すぐ始めます(良い出発点は Googleスタイルガイド)。書かれた(または少なくとも一般的に知られている)規則がある場合、あなたの質問に対する答えは些細なことです。

私はあなたがそうするのは攻撃的だと思っていると感じています...?たとえば、私自身はすぐにこのコードを修正します

int myFunction( ) {

    int i ;
  return  0;

}

になるために

int myFunction() {
    int i;
    return 0;
}

だから...私は自分の行動のために罰せられるべきですか?実生活では、実際には「フォーマット」を読むSVNログがたくさんあります。 ;-)

スタイルチェックツールを使用します

使用を開始します stylecop または同様のコードスタイルのルールを実施し、すべての開発者がそれを使用する義務にします。すべてのコードは例外なく同じように見えます。そして一緒に集まります ワイズヘッド 組織に最も適切なルールを議論する。デフォルトのルールは、既に.NETフレームワークコード自体に非常に似ていますが。

それはそれを行う最も簡単な方法です。私は以前の雇用主の1人で他の人のコードを修正していることに気づきました。なぜなら、この他の男は、過剰な量の空の行とインデンテーションルールがまったくないコードを書いていたからです。コードは実際には平均的な開発者によって読み取れませんでした。 Stylecopが存在するなら、それは私たちの多くを本当に幸せにするでしょう。

これは私がインターネットで話している考えです リファクタリング そして、なぜ誰かがあなたのコードに触れてそれをより良くするのかを説明してください:

なんで?

リファクタリングする主な理由は2つあります。

  1. コード/デザインを上に構築する前に改善するには、最初の試みで良いコードを思いつくのは本当に難しいです。最初のデザインを実装しようとすると、ロジックを誤って解釈または忘れてしまったことが示されます。

  2. 要件の変更に適応するため。ソフトウェア開発で変化が発生します。変更に対応することは、優れたコードベースを持つ方が良いことです。両方のシナリオの2つのオプション、コードのパスまたはリファクタリングがあります。コードにパッチを当てることで、私たちは維持不可能なコードに導かれ、技術的な負債が増加します。リファクタリングする方が常に良いです。

いつ?

  1. 簡単になるほど早くなります。

  2. コードがほぼ完了するのをリファクタリングするのを待つのではなく、最近リファクタリングされたコードをリファクタリングするのがより速く、リスクが低くなります。

何?

  1. すべてのコードとすべての設計は、リファクタリングの候補です。

  2. 何かをリファクタリングしないことの例外は、品質が低い作業コードである可能性がありますが、締め切りに近いため、計画を危険にさらすよりも技術的な負債を維持することを好みます。

それが両方にとって素晴らしいことであり、将来あなたの時間を節約するなら、あなたは彼に最善を尽くしてもらう必要があります!

乾杯

ライセンス: CC-BY-SA帰属
所属していません softwareengineering.stackexchange
scroll top