Kuchinja Makiyi, Kurasika Tsika
TL; DR: Paunoshandisa zvinhu zvinochinjika sekiyi mukuunganidzwa kwehashi, kuzvishandura kunotyora zvibvumirano.
Matambudziko 😔
- Yakarasika Tsika
- Hard Debugging
- The Kashoma Kushamisika Principle Kutyora
- Usingatarisirwi maitiro
Mhinduro 😃
- Shandisa zvinhu zvisingachinjiki sekiyi.
- Kupfuura zvakaenzana/hashCode zvakanaka.
- Shandisa minda yekupedzisira (Kana mutauro wako uchibvumira)
- Rehash mushure mekuchinja (Iyi inopfuura-injiniya mhinduro)
Context 💬
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.
Sample Code 📖
Wrong ❌
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
Right 👉
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
Kuonekwa 🔍
- Semi-Automatic
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.
Tags 🏷️
- Mutability
Level 🔋
- Pakati
Nei Hurukuro Huchikosha 🗺️
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.
AI Generation 🤖
Majenareta eAI anogona kugadzira kunhuwa uku kana vakagadzira zvinhu zvinoshanduka sekiyi vasingatarise zvinorehwa.
Izvi hazviwanzo kuitika sezvo majenareta eAI achitambura nekusagadzikana .
Kuonekwa kweAI 🥃
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.
Edza Ivo! 🛠
Rangarira: Vabatsiri veAI vanoita zvikanganiso zvakawanda
Pasina Mirayiridzo Yakakodzera | NeMirayiridzo Yakananga |
---|---|
Mhedziso 🏁
Paunoshandisa zvinhu zvinochinjika sekiyi, unogona kutyora chibvumirano pakati pekiyi yenyika uye hashi kodhi.
Shandisa zvinhu zvisingashanduki kudzivirira nyaya iyi.
Hukama 👩❤️💋👨
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
Mamwe Ruzivo 📕
Disclaimer 📘
Code Smells ndiwo maonero angu.
Credits 🙏
Mufananidzo naKathyryn Tripp paUnsplash
Chinhu chinonyanya kukosha chechirongwa ndechekuti inozadzisa chinangwa chemushandisi wayo.
CAR Hoare
Ichi chinyorwa chikamu cheCodeSmell Series.