Kuchinja Makiyi, Kurasika Tsika
TL; DR: Paunoshandisa zvinhu zvinochinjika sekiyi mukuunganidzwa kwehashi, kuzvishandura kunotyora zvibvumirano.
Paunoshandisa zvinhu zvinochinjika sekiyi muunganidzwa wehashi , uchivashandura kiyi mushure mekunge wawedzera chinhu chine hukama zvinogona kuita kuti isadzoke.
Izvi zvinoitika nekuti hashi kodhi inoshanduka uye muunganidzwa haugone kuwana chinhu chiri mubhaketi chairo.
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
Iwe unogona kuona kunhuhwirira uku nekutarisa kana iwe ukashandisa zvinochinjika zvinhu sekiyi mune hash-based collections.
Zvishandiso zveotomatiki senge linters kana IDE ongororo inogona zvakare mureza mutable makiyi.
Iyo bijection pakati penyika chaiyo uye chirongwa chako chakakosha nekuti inova nechokwadi chekuti zvinhu zvako zvinonyatso kuratidza hukama hwavanofanirwa kumiririra.
Munyika chaiyo, makiyi kazhinji haachinjike (semuenzaniso, maID, mazita).
Paunotevedzera makiyi aya sezvinhu zvinochinjika, unotyora tsamba imwe-kune-imwe pakati penyika chaiyo uye chirongwa chako muMAPPER .
Paunotyora iyi bijection uchishandisa makiyi anochinja, unoita kuti mepu isaenderane zvichitungamira mukutadza kudzoreredza uye maitiro asingatarisirwe.
Majenareta eAI anogona kugadzira kunhuwa uku kana vakagadzira zvinhu zvinoshanduka sekiyi vasingatarise zvinorehwa.
Izvi hazviwanzo kuitika sezvo majenareta eAI achitambura nekusagadzikana .
Majenareta eAI anogona kuona kunhuhwirira uku nemirayiridzo yekuongorora mashandisirwo ezvinhu zvinochinjika muhash-based collections uye mureza zvinogona kuitika.
Iwe unogona kuraira iyo AI kutsvaga makirasi asina minda yekupedzisira kana nzira dzinogadzirisa mamiriro echinhu mushure mekusikwa.
Rangarira: Vabatsiri veAI vanoita zvikanganiso zvakawanda
Pasina Mirayiridzo Yakakodzera | NeMirayiridzo Yakananga |
---|---|
Paunoshandisa zvinhu zvinochinjika sekiyi, unogona kutyora chibvumirano pakati pekiyi yenyika uye hashi kodhi.
Shandisa zvinhu zvisingashanduki kudzivirira nyaya iyi.
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxxiv
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxv
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxiv
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxxvi
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xviii
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxvi
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xlii
Code Smells ndiwo maonero angu.
Mufananidzo naKathyryn Tripp paUnsplash
Chinhu chinonyanya kukosha chechirongwa ndechekuti inozadzisa chinangwa chemushandisi wayo.
CAR Hoare
Ichi chinyorwa chikamu cheCodeSmell Series.