コレクションを公開すると、ソリューションが結合されます
TL;DR: 意図しない副作用を防ぐために不変コレクションを使用します。
問題点
- 予測できない動作
- デバッグの課題
- データ破損
- 最小の驚きの原則の違反
- 時期尚早な最適化
- 予期せぬ突然変異
- 同時実行の問題
- スレッドの安全性が侵害されました
- カップリングの増加
ソリューション
- 不変コレクションを使用する
- 不変クラスを作成する
- 変更前にコレクションをコピーします
- コレクションゲッターを避ける
- 自動プロパティを避ける
- 情報の隠蔽とカプセル化を優先します
コンテクスト
エイリアシングは、2 つ以上の変数が同じオブジェクトを参照する場合に発生します。
これは、特に 1 つの変数が共有オブジェクトを変更する場合に、予期しない副作用を引き起こす可能性があります。
不変コレクションは、作成後に変更することはできないため、誤ってエイリアスが作成されることを防ぐことができます。
時期尚早なオプティマイザーは、コレクションのコピーはコストのかかる操作であり、避けるべきであると主張するでしょう。
これはオブジェクト エイリアシングの特殊なケースです
サンプルコード
間違っている
リーリー
右
リーリー
検出
[X] 半自動
いくつかの静的解析ツールは、エイリアシングの乱用について警告することがあります。
タグ
レベル
[x] 中級
AIの生成
AI コード ジェネレーターは、特に可変コレクションを操作する場合、デフォルトで常に不変オブジェクトを作成するとは限りません。
不変のコレクションを優先し、エイリアスを避けるために既存のコレクションをラップするように促すことができます。
AI検出
AI ツールは、潜在的なエイリアシングの問題についてコードを分析し、代わりに不変コレクションの使用を提案できます。
結論
不変コレクションを使用すると、意図しない副作用を回避できます。
これにより、コードがより予測可能になり、推論が容易になります。
関係
コード スメル 86 - 変更可能な Const 配列
マキシ・コンティエリ ・ 2021年8月25日
#javascript #おっと #プログラミング #コード初心者
コードの匂い 127 - 変更可能な定数
Maxi Contieri ・ 2022 年 4 月 5 日
#チュートリアル #webdev #javascript #初心者
コードの匂い 256 - 可変ゲッター
マキシ・コンティエリ・6月29日
#webdev #初心者 #プログラミング #java
コード スメル 109 - 自動プロパティ
Maxi Contieri ・ 2021年12月7日
#おっと #webdev #コード初心者 #チュートリアル
コードスメル 68 - ゲッターズ
Maxi Contieri ・ 2021年4月29日
#コード初心者 #チュートリアル #おっと #プログラミング
詳細情報
Les pouvoirs maléfiques des mutants
Maxi Contieri ・ 19 décembre 20
#webdev #programmation #mutation #oop
Modèles nus — Partie II : Getters
Maxi Contieri ・ 23 février 21
#webdev #programmation #oop #tutoriel
Couplage : le seul et unique problème de conception logicielle
Maxi Contieri ・ 6 février 21
#webdev #programmation #oop #tutoriel
Clause de non-responsabilité
Les odeurs de code sont mon opinion.
Crédits
Photo de Martino Pietropoli sur Unsplash
Si un objet est immuable, il ne peut être que dans un seul état, et vous gagnez gros.
Josué Bloch
Citations intéressantes sur le génie logiciel
Maxi Contieri ・ 28 décembre 20
#codenewbie #programmation #citations #logiciel
Cet article fait partie de la série CodeSmell.
Comment trouver les parties puantes de votre code
Maxi Contieri ・ 21 mai '21
#codenewbie #tutoriel #qualitéducode #débutants
以上がコードの匂い - コレクションのエイリアシングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。