Kobongola Bafungola, Kobungisa Mituya
TL;DR: Tango osalelaka ba objets mutables lokola ba clés na ba collections hashed, ko changer yango ebukaka ba contrats.
Ntango osaleli biloko oyo ekoki kobongwana lokola bafungola na ba collections hashed , kobongola yango fungola nsima ya kobakisa objec oyo etali yango ekoki kosala ete ezwama te.
Yango esalemaka mpo code ya hash ebongwanaka mpe collection ekoki kozwa objet na seau correct te.
class MutableKey { int id; MutableKey(int newId) { this.id = newId; } @Override public int hashCode() { return this.id; } @Override public boolean equals(Object objectToCompare) { if (this == objectToCompare) return true; MutableKey that = (MutableKey) objectToCompare; return id == that.id; } } MutableKey key = new MutableKey(42); Map<MutableKey, String> map = new HashMap<>(); map.put(key, "Yes Album"); // The key mutates key.id = 90125; // Now you cannont retrieve the album System.out.println(map.get(key)); // Output: null
class ImmutableKey { private final int id; ImmutableKey(int newId) { this.id = newId; } @Override public int hashCode() { return this.id; } @Override public boolean equals(Object objectToCompare) { if (this == objectToCompare) return true; ImmutableKey that = (ImmutableKey) objectToCompare; return id == that.id; } } ImmutableKey key = new ImmutableKey(42); Map<ImmutableKey, String> map = new HashMap<>(); map.put(key, "Yes Album"); System.out.println(map.get(key)); // Output: Yes Album
Okoki koyeba nsolo oyo na kotalaka soki osaleli biloko oyo ekoki kobongwana lokola bafungola na ba collections basées na hash.
Ba outils automatisés lokola ba linters to ba inspections IDE ekoki pe ko drapeau ba clés mutables.
Bijection entre monde réel na programme na yo ezali important po ezo assurer que ba objets na yo e lakisa na exactitude ba relation oyo esengelaki e représenter.
Na mokili ya solo, bafungola mbala mingi ekoki kobongwana te (ndakisa, ba ID, bankombo).
Tango ozali ko modeler ba clés wana lokola ba objets mutables, obukaka correspondance moko na moko entre monde réel na programme na yo na MAPPER .
Tango obuki bijection oyo na kosalelaka ba touches mutables, osali inconsistent ya carte ememaka na ba échecs ya récupération mpe comportement imprévu.
Ba générateurs ya AI ekoki ko créer odeur oyo soki ba générer ba objets mutables comme ba clés sans ko considérer ba implications.
Yango esalemaka mingi te mpo ete ba générateurs ya AI enyokwamaka na obsession primitive .
Ba générateurs ya AI ekoki ko détecter odeur oyo na ba instructions ya ko analyser usage ya ba objets mutables na ba collections basées na hash pe ko drapeau ba problèmes potentiels.
Okoki kopesa mitindo na AI koluka ba classes oyo ezangi ba champs ya suka to ba méthodes oyo e modifier état ya objet sima ya création.
Kobosana te: Ba Assistants ya AI basalaka mabunga mingi
Kozanga Malako ya Mabongi | Na Malako ya sikisiki |
---|---|
Tango ozali kosalela ba objets mutables lokola ba clés, ozali na risque ya kobuka contrat entre état ya clé na code hash.
Salelá biloko oyo ekoki kobongwana te mpo na koboya likambo yango.
https://hackernoon.com/ndenge-ndenge-kozwa-biteni-ya-ko-nsolo-ya-kode-na-yo-eteni-xxxiv
https://hackernoon.com/ndenge-ndenge-kozwa-biteni-ya-ko-kode-na-yo-ya-nsolo-eloko-xxv
https://hackernoon.com/ndenge-ndenge-kozwa-biteni-ya-kosembo-ya-kode-na-yo-eteni-xxiv
https://hackernoon.com/ndenge-nzela-kozwa-biteni-ya-kosembo-ya-kode-na-yo-eteni-xxxvi
https://hackernoon.com/ndenge-ndenge-kozwa-biteni-ya-ko-kode-na-yo-ya-kosembo-eteni-xviii
https://hackernoon.com/ndenge-nzela-kozwa-biteni-ya-kode-nsolo-ya-kode-na-yo-eteni-xxvi
https://hackernoon.com/ndenge-nzela-kozwa-biteni-ya-ko-nsolo-ya-kode-na-yo-ete-xlii
Code Smells ezali makanisi na ngai .
Fɔtɔ́ ya Kathyryn Tripp na Unsplash
Propriété ya motuya mingi ya programme ezali soki ekokisaka intention ya usager na yango.
MOTUKA Hoare
Lisolo oyo ezali na kati ya Série CodeSmell.