ときは許容他人のコードを誰かを書き換えるのですか?
私は主に自分のdevの店として、大規模な多国籍企業の小規模な組織のために働く。ほぼ毎日、私は書き換えまたはより多くの情報ソリューションに自分のコードをアップグレードを見つける。明らかに、これは問題ないので、私はそれを書き換えでも攻撃を取るコードを書いている。他の誰かが自分のコードを書き直した場合は私の反応が同じになる場合は、私は疑問に思う。 質問は、ときに、あるいは望ましい許容コードを誰かによって書かれた書き換えですか?これにより、私は少しのエラーを修正するわけではない、私は合計、おそらく元のコードは(必ずしも良い)別の方法で同じことを実現して何か書き換えを意味します。 サイドノートでは、どのようなコードを取得上書き人々の反応ですか?それは大丈夫ムッと、ほとんど、あるいはている怒りや屈辱的なより強い感情をするか? 私は知らないので、お願いします。 |
17 Replies
1)
それは許容しないですこのとき:
そうでなければ、ほっておいて。同じことはあなたのコードのために行く。コードは、常により良いかもしれない。これは完璧なする必要はありません。実際には、それが完璧なことはありません。さらに、すべての書き換えでは潜在的に新しいバグを紹介します。それはリスク軽く実施すべきではありません。 おそらく私が間違えてあなたが言っていることの行間を読む、それはあなたのように自分自身に、またはそれを取る場合のあなたの方法、既存のコード(あなたと他の変更への移動)だ。あなたはその人の先輩している場合、または、彼らはあなたのチームにしているか、またはそれ以外の自分の仕事の後の責任は、そのコードの株式を持っている、それ以外の場合は実際にはありません。 そして、もしあなたが何が間違って彼らが何をやったか、どのようにそれが良いことができると簡単に理解裾を支援する必要がありますその人や自分の仕事をする責任があります。それは開発チームの指導的地位は、すべてです。 そしてそれをする場合やっていない場合は、必要の場合にすることはできませんし、なぜあなたのバージョンがし)、それを切って実質的に 良い (ないより少しは。あるプログラマーの間で傾向が私たちのことを行う方法を考えてのわなに陥るする正しい方法です。あなたはそれを避けるために必要があります。あなたが正しい場合は、特別なことはありませんしている考える。私たちはすべて我々が正しいと思います。 |
2)
心他の人のこと、彼らがよりお持ちの問題のさまざまな理解している可能性がありますコードを誰かを書き換えるにしてください。あなた自身が"考えて見つければ、なぜ地球上は、彼がそれをやったの方法?"は、一歩必要がありますし、それを書き換え再考。誰かがバグを見つけたので、それらを修正旧コードでは、ハッキングをしています。あなたは退行を導入していないことを確認する必要があります。 |
3)
私は時間がコードを学ぶことよりも簡単に維持することだと同等のものを書くことがかかる長くなるまでコードを書き換えます。あなたは、かなり容易に見ることができる必要があります |
4)
これは、あなたが作業しているコンテキストに、あなたの同僚の期待に依存します。 一般的に、私は決定が書き換え誰が書いたかの影響を受けてはならないでしょうね。それは修正が必要な場合/リファクタリングは、それを行う。 しかし、それは丁寧で、お勧め実用的な理由は、元の著者と、最初にいる場合にのみ詳細については、コードが似ている理由について、これを議論するためのことだ。 場合は、その書き換え(もしそれが本当に必要です)は問題がない場合。 |
5)
あなたは自分の感情を傷つけるのを恐れていますか?てはいけません。として場合、それをすることができることを認識すべき開発元をお持ちのコードを次に変更の理由を客観的固体にこのようなときにそれを説明する場合は。 、最も賢い開発者は自分のコードよりも6ヶ月前から何が嫌いています、彼らはおそらく変更が必要であることに同意しますので。 |
6)
誰かが自分のコードの任意の改善を(せずに書き換えていない場合、または読み高速)すなわち、私は可能性が混同されると思います/ /腹を立ててイライラ。その範囲内のどこか。 彼らは改良を加えた場合、私は構わない方が良い。結局のところ、 最悪のコードは、私が見てきた最近自分は私の。 |
7)
この問題を解決は簡単です - コードです人に話を再書いて、最良の方法は前方に合意に達する必要があると思います。 |
8)
私が思うの価値も"のような"他の人が彼らのコードを書き換えていない任意の開発者。何も悪いことでは、単に彼らは自分の仕事に誇りを持ってということです。私はコメントことが明らかに私が変更とその理由をなされることを確認するなど、他人のコード(に改善したで働いている複数の開発者環境)で。私は正当な理由なしに行うようにしてください。私はいつも、特に私がどのようなコードで私が変更することですが起こっている理解しておくように注意だ - それは一般的に困難だと誰かのコードよりもそれはあなた自身ですバグのない変更を加えること。 最後に、バージョン管理システムのいくつかの言及はここで行われる必要があります。すなわち、複数の開発者環境での場所の1つがある。 |
9)
私は特に、私は一般的に私の仕事でこれを行うに強制的に午前与え、これをやや敏感な内容であることがわかりました。幸いなことに私にとっては。NET開発者はここので、午前再盲目的に同僚に受け入れられるの書き込みを行うが、それは私だけです。 私が与えることができる最高のアドバイスはより重要な問題を考慮することです:
行くとして古い諺に:壊した場合ではないが、それを修正しないでください。が醜いのアップグレードでは何も悪いだけで、プロセス内の誰の足を踏まないようにしないようにだ。 |
10)
これにより、私はエラーを少し修正を意味しない、私は方法を意味)の合計書き換えより、必ずしも異なる(できない可能性が何か達成のコードは、同じことを元でした。 私はそれが本当に受け入れフル既に動作するコードの書き換え行うことは、そのコードではない、生産やメンテナンスの問題を引き起こしていると仮定はないと思う。私は、人の時間を持って意味ですか?あなたが完璧を求めている場合も、あなたはそれで長い時間がかかるでしょう。コードの記述は、本を - 即実際には""やったことがない書くようなものです。 それはさておき、私は守られて私のチームに間に合わせる小さな変更をのコードでは欠陥、バグの場合、またはある特定のコーディング規約設計参照してください私は。いっそのこと、私が責任者にこれらのことを指摘し、それらを書き換えてみましょう。いくつかはこれらのものの例のコードレビュー、中に動揺されます。 |
11)
アジャイルプロジェクトでは、コードがチーム全体に属します。だから、誰の責任のコードを確認することです最高の品質です。これは、いつでも誰でもすることができますリファクタリング、コードベースの任意の部分を意味します。 我々はこのアイデア、コードが1人または所属一人によって所有され超えて移動する必要があります。コードは、ビジネスに、あなたには属しています。プロの職人として、それはあなたの責任コードの品質を確保するためです。 しかし、私は書き換えコードをリファクタリングを区別するだろう。私はそれまでのコードを書き換えることの責任であることを確認ではない。ビジネスの再既に動作何かを実装するかを払っていない。しかし、リファクタリングするすべての人の責任のコードは、クリーンかつ容易に理解できるようにすることです。それは専門的なソフトウェア開発者であることの意味これは単にの一部です。 |
12)
ちょうどコメント:私はsleskeで、同意するが、お使いの環境を考慮:プロジェクトにスプリント内で、上司を混乱させる可能性があります行う。 あなたの変更が論争(コードの書式設定、タブかスペース、行末および/またはエンコード)、することを確認、少なくとも理由のリストを思い付くになる場合は、サンプルでは、副作用のシナリオを修正する可能性が影響を受ける。 あなたは確かに、している場合だけ、開発者を確認し、それを押して、それは頻繁にやって避けてください。 ところで、:軽度のパフォーマンスヒットUAT /テストの準備が十分な理由ではありません。マークがないか、ローカルの変更を保持し、一方のシステムテストを押してください。 |
13)
私がいるかどうかのコードが良いかではない評価の問題に話をされません。それがあなたの基準です。 コードをする場合を決めたをお持ちのひどい完全に:今後の検討どのくらいの相互作用この持つ必要になります悪い")のコードをに嫌な("。多くの場合は、それは正気をだ自分を維持も相当するだけで書き換えは。 |
14)
重要な点を考慮するという事実である場合は、プロジェクトのリスクを追加してコードを書き換えることで。このコードはあなたに改善するために割り当てられていない製品コードされた場合、私はそれを最初に議論せずに手を触れないでいる。あなたが何らかの理由で、企業環境で何かを壊し終了する場合は、かなり申し訳ありませんが変更を行った終わるかもしれない。 |
15)
後行ってきたのは、コードのレビューを可能にする場合書き込み、それを(一人)と、コードの後ろの要件を理解する。場合は、カントなぜコードがないように見えるの質問"と答える?"と、あなたはおそらく多くの問題をよりも(これは私の経験は、少なくとも)解決が追加されますので、おそらくそれを変更しないでください。 |
16)
まず、それがプロジェクトのスコープに依存します。あなたが誰か自分以外の後、あなたはそれらの賛同を必要と管理されているコードを修正している場合。これは、すべての意図や目的のコードです。 第二に、それはあなたの目標によって異なります。コードが保守されないため、または、それは書き換える必要があります明らかにバグがある場合は、書き換えの合計をしている場合。しかし、そのあなたが1つ、それを書き換える必要がありますわけではない。ために他のチームメンバーは、自分の過ちを見せるし、それらを再度試してみましょう必要成長を支援する。ペアプログラミングでうまくここに - それ以外の場合で購入する来て、問題のdevパッケージ(秒)で座って彼らを助ける。 最後に、あなたのコードが良くなると思う理由によります。良いコードとは非常に主観的であり、あなたはあなたのコードが良くなることを証明する必要があります。あなたが/その後、もう一度考えてみてくださいコンストラクトいくつかの新しいプログラミング機能の活用するために書き換えてください。ポイント2 1として、そこに明白なバグやメンテナンスの問題、コードを書き換える必要がありますしている場合... ちょうど私の2セント.. |
17)
これは、変数の多くの複雑な問題です。
ボトムラインは、最高のためには顧客。 私が若かった頃、私はいつものことを変更したいが、私は実行するために、作業、生産コードを健全な敬意を開発しました。あるという点での値です。そこを明確に勝利だがない限り、それは廃棄物を書き換えることです。目的、長所と短所をスタックし、かつ、あなたのケースを確認します。あなたが決定共同することができます場合には最高です。あなた、そして他の人のチャンスをもいくつかの所有権を持つに与える場合は不必要にそれを攻撃しない、彼らはしばしばより喜んで最高のコードではありませんだと認めざるをもっとされます。 また、正しい道のあなたのビジョンは、彼らとは異なる場合があります。 それを考えて改装が好きです。週末場合の友人を訪問してあなたがいると部屋ゲスト滞在での、それは、寝具を非常識になるように変更描画し、カーテンを掛ける、新しいどんなにそれらを嫌っていました。それは 、廃棄物になるの努力彼らが侮辱されると思うん混乱。あなたが6ヶ月間滞在していた場合は、非常によくかかわらず会話を持っている場合があります。それはあなたの家ている場合はもちろん、あなたにも5-6年間に移動している場合は、いくつかの壁をノックダウン、またはどんな前の所有者が考えたキッチン拡大についての不安を持ってね。 最後に、卸売事を書き換えることも。それが少しずつ、少しずつ、かと何をしたいしながら1日の問題1日に対処した後に移動します。日の問題1日現在のベースとあなたはどのようなものの種類を処理する必要があり、計画に応じて学習を扱うこと。お客様の愛憎"申し訳ありませんが、このリリースで"物事はそんなに悪くない得ているのない限り、どんな新しい機能がアプリが、実際に不安定であり、それらの問題を確認します。 |