ホームページ > 記事 > ウェブフロントエンド > コードの匂い - ハンロンのカミソリ
複雑にしすぎないでください: シンプルにしてください
TL;DR: 過剰防御的なコードは不必要な複雑さをもたらします。
不必要な複雑さ
紛らわしいロジック
隠れたバグ
メンテナンスが難しくなる
パフォーマンスが遅い
乱雑なコード
チェックを簡素化します
自分の論理を信じてください
要点に焦点を当てる
K.I.S.S.をフォローしてください。原則
定期的にリファクタリング
コードを考えすぎたり設計しすぎたりすると、不必要な複雑さが生じる可能性があります。
考えられる すべて のシナリオに対して防御する必要があるかもしれませんが、このアプローチでは、多くの場合、肥大化してわかりにくいコードが生成されます。
Hanlon's Razor は、単純な間違いや誤解が発生する可能性が高い場合は悪意を想定すべきではないと示唆しています。
過度に防御的なプログラミングを避け、明確で単純なロジックに焦点を当てます。
決して起こらないかもしれない将来の問題を予測したり、コードを柔軟にしすぎたりする可能性があります。
シンプルなコードは、保守、デバッグ、理解が容易です。
function processData(data) { if (typeof data === 'undefined') { throw new Error('Data is undefined'); } if (typeof data !== 'object') { throw new Error('Data is not an object'); } if (data === null) { throw new Error('Data is null'); } if (Array.isArray(data)) { throw new Error('Data should not be an array'); } if (!data.hasOwnProperty('items')) { return []; } if (!Array.isArray(data.items)) { throw new Error('Items should be an array'); } if (data.items.length === 0) { return []; } let processedItems = []; for (let item of data.items) { if (typeof item === 'undefined') { continue; // Skip undefined items } if (typeof item !== 'object') { continue; // Skip non-object items } if (item === null) { continue; // Skip null items } processedItems.push(processItem(item)); } return processedItems; }
function processData(data) { if (!Array.isArray(data.items)) { throw new Error('Invalid data'); } return data.items .filter(item => typeof item === 'object' && item !== null) .map(item => processItem(item)); }
[X] マニュアル
複雑なコードには通常より多くの行が含まれており、長いメソッドがヒントになる可能性があります。
[x] 中級
AI ジェネレーターは、考えられるあらゆるエッジケースを考慮しようとすると、この臭いが発生する可能性があります。
たとえば、NULL を完全に回避すれば、NULL の処理は不要です。
AI ツールは、ロジックを分析し、適切なガイダンスとともに簡略化を提案することで、過度に防御的なコードを検出するのに役立ちます。
これらのツールでは、多くの場合、不要なチェックを削除するか、明確にするためにチェックを結合することが推奨されます。
コードを考えすぎたり設計しすぎたりしないようにしてください。
最も可能性の高いシナリオに焦点を当て、明確で単純なロジックを作成します。
シンプルさはコードの品質を向上させ、メンテナンスを容易にします。
ウィキペディア
防御的なプログラミング
コードの匂いは私の意見です。
Unsplash の Nacho Fernández による写真
シンプルさは究極の洗練です。
レオナルド・ダ・ヴィンチ
この記事は CodeSmell シリーズの一部です。
以上がコードの匂い - ハンロンのカミソリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。