web-dev-qa-db-ja.com

「クリーンコード」の実践は本当にクリーンで便利なのでしょうか。

私は現在大企業でインターンシップを行っており、彼らはソフトウェア配信構造(アジャイルへの移行)で多くの変更を受けています。

過去2か月の間に、Clean Codeの実践に対するこの宗教的な愛着と が開発者にとって聖書のようなものであることに気付きました。

現在、クリーンなコードの最も重要な機能の1つは、わかりやすい命名と厳密なリファクタリングに基づいた自明のコードです。この後にno commentingルールが続きます。

このクリーンなコードは、コードの保守と改善に続く長期的な投資であることを理解していますが、これは本当にこの大騒ぎに値するのでしょうか?

Clean Codeに関する経験や、私が保守的すぎるか、それとも一時的な傾向にすぎないかについて、誰かが意見を述べますか?.

11
Arturs Vancans

このクリーンなコードは、コードの保守と改善に続く長期的な投資であることを理解していますが、これは本当にこの大騒ぎに値するのでしょうか?

もちろんです。

リファクタリングは非常に重要ですが、メソッドの移動に75%の時間を費やし、適切なタイトルを決定するために大量の時間を費やしても、それほど生産的ではないようです。

もちろんですが、大企業にはおそらく数年または数十年に渡ってクリーンアップする不良コードがあることを考慮してください。それには多くの時間と労力が必要です。

気づくべき主なことは、あなたが両方正しいことです。 「クリーンなコード」は非常に重要であり、クリーンなコードはそこに到達するために広く尊敬されている方法です。会社は道に沿って始まったばかりなので、彼らはより多くの経験を持つグループよりも本に見舞われるでしょう。彼らが少しの間それをやったら、彼らは何が機能し何が機能しないかを学び始めるでしょう。彼らがそれをよりよく理解したら、彼らは(うまくいけば)より実用的で自然なアプローチに従い、クリーンなコードを維持しますが、70文字の関数名にはなりません。

17
Telastyn

私はもともとコメントを書いていた。検討する視点よりも少ない答えを出すようにします。ただし、わかりやすいネーミングやリファクタリングなどの「クリーンコード」プラクティスは絶対に推奨しています。

将来のコードの破損を防ぐためにコメントが必要な場合があるため、私は常にコメントなしルールを嫌っています。彼らは通常、何が行われているのか、そしてその理由に制限されるべきです。コードが予期しない動作をしているとき、またはアルゴリズムを置き換える必要があるときは、これらを慎重に使用してください。

コードを読んだり保守したりするときは、生産性を考慮してください。コードの存続期間中、これはコードを書くときの生産性よりも重要かもしれません。これらのプラクティスは、これらのタスクの生産性に役立ちますか?

経験を積むと、これらのプラクティスは根底にあり、生産性を低下させるものではなくなります。コードが何をする必要があるかを明確にしているため、正しい名前を選択するのに時間がかかる場合があります。 (この説明により、コーディングとデバッグがより高速になる場合があります。)これにより、必要なことだけを実行するコードになるか、バグが少なくなるコードになりますか?これは生産性にどのような影響を与えますか?

適切なメソッド名を選択するのにかかる時間は、メソッドの目的が何であるかをよりよく理解するためにすぐに報われるでしょう。メソッド名「iterateOverCustomers」を「locateActiveCustomers」と比較します。どちらが機能の意図を伝えていますか?必要に応じて、どちらをリファクタリングする方が簡単でしょうか?

4
BillThor