他の人のコードを読んでいる間、プログラマーに最も頻繁に何が起こりますか?[閉まっている]


8

他のコードを読むとき、あなたは通常それを理解するのに問題がありますか、それとももっと普通に、他のコードが間違っている/非効率的/フォーマットが悪いなどについて質問することですか?

最初の仕事でコーディングしたものを読んでいる人


あなたは同化します。あなたはOneの一部になります。
Thomas Eding

1
プロの設定では、コードの最悪の部分になりがちな壊れた部分を修正することになります。私の経験では、ほとんどいつもあなたの漫画のようです。ソフトウェアの品質がビジネスの成功に不可欠である場所で働くことができて幸運であり、会社がそれを高く評価している場合、あなたの経験ははるかに良くなります。しかし、バグを修正し、物事を拡張すると、必然的に、コードベースの最悪の部分を通り抜けます。
GlenPeterson 2012

回答:


19

最近は他の人のコードを読むのにそれほど問題はありません。私は悪いコードをたくさん見たので、どんな進化が私が見つけたものにつながったのかを診断することさえできます。

多くの場合、専門的に悪いコードとは、最初は問題ないが、ベストプラクティス、要件、またはスキルセットがその下から移動したコードのことです。時々それは、その言語に悪いまたは新しい人であるだけですが、それもかなり明白です(そしてプロの設定では珍しいです)。コードが腐敗する理由を理解すればするほど、他のプログラマーの能力に疑問を感じることが少なくなります。


9
+100「私が他のプログラマーの能力に疑問を投げかけるほど」。時々存在する「明らかに馬鹿がこれを書いた」という態度は、初心者が質問をするのが怖い(または「馬鹿ではない」が自分の慣習を十分に質問しない)環境を作り、それが悪いコードにつながります。
ティモシージョーンズ

1
@TimothyJonesバウンティメカニズムにより、実際に+100を授与することが可能であることを理解していますか?
Dawood ibnカリーム2012

1
@DavidWallace忘れてしまいました、ありがとう。ただし、それ以上コメントすることはできません。多分私は戻ってきて、それが私のすべての担当者ではないときにそれをします。
ティモシージョーンズ

3
最悪なのは、自分のコードを見ていることに気づく直前に「明らかに馬鹿がこれを書いた」と言うときです。
GlenPeterson 2012

1
@GlenPeterson、いや、最悪なのは、それを書いた人があなたのすぐ隣に立っているときだと思います...
Svish

9

これは、この開発プロセスの結果である可能性があります

過去2年間で、私は他の人々のコードを扱ってきました。私はそれをデバッグし、バグを修正し、改善を加えました。私の経験では、私は通常、コードが悪い、バグが多い、遅い、必要以上に多くのメモリを消費する、プログラミングの概念が不適切に使用されている、非常にフォーマットが悪い(これは使いにくい)、コメントされておらず、ロジックフローは混乱。5,000行のコードを持つ関数が1つ見つかったとしたらどうなりますか?

したがって、私の経験では、通常、コードの品質に疑問を投げかけています。理解しにくいものは複雑なため、理解してから理解してください。しかし、それが単に悪いなら、それは常に悪いでしょう。


4

短い答え:ほとんどの場合、それが気に入らないか、コーディングがこのように行われる理由について非常に批判的であり、逆ではありません。ただし、他の悪いコードを読むほど、よく書かれたコードをすぐに理解できます。

当たり前のように聞こえるかもしれませんが、人々のコードを上手に読むため最良の方法、人々のコードを読むことです。問題は、一般的に人々が他の人々のコードを読むとき、彼らはそれをグロックしようとしない、すなわちそれを親密に理解することができないことです。彼らは速読詩と同等のことをします。

他の誰かのコードを見るには、次のことを試してみてください:

  • コードのリファクタリング。
  • 追加する機能を選択するには、コードの詳細を調べる必要があります。
  • コードの包括的な単体テストを記述します。

これらのすべての手順では、コードをより深く読む必要があります。

メンテナンスとサポートのために紹介されている、コードベースの理解を最大限に高めるためのヒントもいくつかあります。

何が起こっているのかについての基本的な考えがわかったら、データストレージ(永続化レイヤー)をよく見ることができます。これは、何が起こっているのかを理解するためのもう1つの優れた方法ですが、調査しているものが実際に使用されていることを確認してください。私はシステムを理解していると思って、このアプローチでいくつかのクラスの底に実際に到達したことを何度か思い出しました-その後、クラスがまったく使用されなかったことに気付きました。

それは困難な作業のように見えるかもしれません-それは時間を要し、高度なツールはインテリジェンスの必要性を取り除くことができません-しかし、それはまた非常にやりがいのあることです。進むにつれて、コーナー/エッジケースで多くのバグを見つけ、コードを改善する方法を確認します。アドバイスの1つ-コードを十分に理解するまでは、リファクタリングや変更に過度の負荷をかけないでください。多くの場合、最初にそれを目にしたときに、間違いまたは単純な悪いコードのように見えるものは、後で、啓発された調査に取り組んでいる微妙な天才であることが判明します。また、未使用のコードを削除することは非常に満足のいくものであり、将来のメンテナーにとって素晴らしいことです。もちろん、すべてのコードベースはバージョン管理されていると仮定しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.