他のコードを読むとき、あなたは通常それを理解するのに問題がありますか、それとももっと普通に、他のコードが間違っている/非効率的/フォーマットが悪いなどについて質問することですか?
他のコードを読むとき、あなたは通常それを理解するのに問題がありますか、それとももっと普通に、他のコードが間違っている/非効率的/フォーマットが悪いなどについて質問することですか?
回答:
最近は他の人のコードを読むのにそれほど問題はありません。私は悪いコードをたくさん見たので、どんな進化が私が見つけたものにつながったのかを診断することさえできます。
多くの場合、専門的に悪いコードとは、最初は問題ないが、ベストプラクティス、要件、またはスキルセットがその下から移動したコードのことです。時々それは、その言語に悪いまたは新しい人であるだけですが、それもかなり明白です(そしてプロの設定では珍しいです)。コードが腐敗する理由を理解すればするほど、他のプログラマーの能力に疑問を感じることが少なくなります。
過去2年間で、私は他の人々のコードを扱ってきました。私はそれをデバッグし、バグを修正し、改善を加えました。私の経験では、私は通常、コードが悪い、バグが多い、遅い、必要以上に多くのメモリを消費する、プログラミングの概念が不適切に使用されている、非常にフォーマットが悪い(これは使いにくい)、コメントされておらず、ロジックフローは混乱。5,000行のコードを持つ関数が1つ見つかったとしたらどうなりますか?
したがって、私の経験では、通常、コードの品質に疑問を投げかけています。理解しにくいものは複雑なため、理解してから理解してください。しかし、それが単に悪いなら、それは常に悪いでしょう。
短い答え:ほとんどの場合、それが気に入らないか、コーディングがこのように行われる理由について非常に批判的であり、逆ではありません。ただし、他の悪いコードを読むほど、よく書かれたコードをすぐに理解できます。
当たり前のように聞こえるかもしれませんが、人々のコードを上手に読むための最良の方法は、人々のコードを読むことです。問題は、一般的に人々が他の人々のコードを読むとき、彼らはそれを「グロック」しようとしない、すなわちそれを親密に理解することができないことです。彼らは速読詩と同等のことをします。
他の誰かのコードを見るには、次のことを試してみてください:
これらのすべての手順では、コードをより深く読む必要があります。
メンテナンスとサポートのために紹介されている、コードベースの理解を最大限に高めるためのヒントもいくつかあります。
何が起こっているのかについての基本的な考えがわかったら、データストレージ(永続化レイヤー)をよく見ることができます。これは、何が起こっているのかを理解するためのもう1つの優れた方法ですが、調査しているものが実際に使用されていることを確認してください。私はシステムを理解していると思って、このアプローチでいくつかのクラスの底に実際に到達したことを何度か思い出しました-その後、クラスがまったく使用されなかったことに気付きました。
それは困難な作業のように見えるかもしれません-それは時間を要し、高度なツールはインテリジェンスの必要性を取り除くことができません-しかし、それはまた非常にやりがいのあることです。進むにつれて、コーナー/エッジケースで多くのバグを見つけ、コードを改善する方法を確認します。アドバイスの1つ-コードを十分に理解するまでは、リファクタリングや変更に過度の負荷をかけないでください。多くの場合、最初にそれを目にしたときに、間違いまたは単純な悪いコードのように見えるものは、後で、啓発された調査に取り組んでいる微妙な天才であることが判明します。また、未使用のコードを削除することは非常に満足のいくものであり、将来のメンテナーにとって素晴らしいことです。もちろん、すべてのコードベースはバージョン管理されていると仮定しています。