Clean Codeという本を読みましたRobert C. Martinによる。この本では、小さな関数の作成、名前の慎重な選択など、コードをクリーンアップするための多くの方法を見てきました。しかし、今日、上司はこの本を読んだ後のコードの書き方が好きではありませんでした。
彼の議論は
- 小さな関数を書くと、コードが何をしているのかを見るために各小さな関数に移動しなければならないので苦痛です。
- メインループが300行を超える場合でも、すべてをメインの大きなループに入れると、読みやすくなります。
- コードを複製する必要がある場合にのみ、小さな関数を作成してください。
- コメントの名前を使用して関数を記述しないでください。上記のコメントを使用して複雑なコード行(3〜4行)を入力してください。同様に、失敗したコードを直接変更できます
これは私が読んだすべてのものに反しています。通常、どのようにコードを記述しますか?1つの大きなループ、小さな関数はありませんか?
私が使用する言語は主にJavascriptです。明確に名前が付けられた小さな関数をすべて削除し、すべてを大きなループに入れたので、今は本当に読みにくいです。しかし、上司はこの方法が好きです。
一例は次のとおりです。
// The way I would write it
if (isApplicationInProduction(headers)) {
phoneNumber = headers.resourceId;
} else {
phoneNumber = DEV_PHONE_NUMBER;
}
function isApplicationInProduction(headers) {
return _.has(headers, 'resourceId');
}
// The way he would write it
// Take the right resourceId if application is in production
phoneNumber = headers.resourceId ? headers.resourceId : DEV_PHONE_NUMBER;
たとえば、私が読んだ本では、コメントはきれいなコードを書くのに失敗したとみなされます。なぜなら、小さな関数を書くと時代遅れであり、しばしばコメントが更新されないからです(コメントではなくコードを修正します)。しかし、私がしていることはコメントを削除し、コメントの名前で関数を書くことです。
さて、私はいくつかのアドバイスが欲しいのですが、クリーンなコードを書くにはどの方法/練習が良いですか?
isApplicationInProduction()
機能を持たないでください!テストが必要であり、コードが実稼働時と異なる動作をする場合、テストは役に立ちません。それは、実稼働環境でテストされていない/発見されていないコードを意図的に持っているようなものです。意味がありません。