Aza avela hiditra ao amin'ny famokarana ny code test
TL; DR: Aza ampiana isTesting na saina mitovy.
Olana 😔
- abstraction mitete
- Fandotoana fehezan-dalàna tsy ara-barotra
- Kaody marefo
- Fihetsika tsy mifanaraka
- Fiankinana miafina
- Debug sarotra
- Saina Boolean
- Fitsapana tsy azo itokisana
- Code miankina amin'ny famokarana
Vahaolana 😃
- Esory ny fihetsika Ifs
- Mampiasà tsindrona fiankinan-doha
- Ataovy modely ny serivisy ivelany (Aza maneso azy ireo)
- Fanofanana misaraka
- Atokana ny lojika fitsapana
- Tazony ny fetra fitondran-tena madio
Refactorings ⚙️
Toe-javatra 💬
Rehefa manampy saina toa ny isTesting ianao dia mampifangaro ny kaody fitsapana sy famokarana.
Izany dia mamorona lalana miafina izay mavitrika amin'ny fitsapana ihany.
Ary koa, tsy mandrakotra ny kaody famokarana tena izy.
Mampidi-doza ny fitondran-tena amin'ny fandefasana entana mankany amin'ny famokarana ianao, mitarika amin'ny bibikely sy fihetsika tsy ampoizina.
Kaody santionany 📖
Diso ❌
struct PaymentService { is_testing: bool, } impl PaymentService { fn process_payment(&self, amount: f64) { if self.is_testing { println!("Testing mode: Skipping real payment"); return; } println!("Processing payment of ${}", amount); } }
Marina 👉
trait PaymentProcessor { fn process(&self, amount: f64); } struct RealPaymentProcessor; impl PaymentProcessor for RealPaymentProcessor { fn process(&self, amount: f64) { println!("Processing payment of ${}", amount); } } struct TestingPaymentProcessor; impl PaymentProcessor for TestingPaymentProcessor { // Notice this is not a mock fn process(&self, _: f64) { println!("No payment: Skipping real transaction"); } } struct PaymentService<T: PaymentProcessor> { processor: T, } impl<T: PaymentProcessor> PaymentService<T> { fn process_payment(&self, amount: f64) { self.processor.process(amount); } }
Detection 🔍
- [x] Semi-automatique
Azonao atao ny mamantatra an'io fofona io amin'ny alàlan'ny fitadiavana saina misy fepetra toy ny isTesting , environment == 'test' , DEBUG_MODE , ary idioms toy ireny.
Ireo dia manondro fa ny fitondran-tena fitsapana dia miditra ao amin'ny fehezan-dalàna famokarana.
Tags 🏷️
- fizahan-toetra
Level 🔋
- [x] mpanelanelana
Nahoana no zava-dehibe ny Bijection 🗺️
Mila fisarahana mazava eo amin'ny fitsapana sy ny kaody famokarana ianao.
Rehefa mampifangaro azy ireo ianao dia manapaka ny Bijection tokana eo amin'ny fitondran-tena tena izy sy ny programa.
Satria ny tontolo iainana dia sampan-draharahan'izao tontolo izao dia mila manao modely mazava ianao ao amin'ny MAPPER .
Generation AI 🤖
Ny kaody vokarin'ny AI dia matetika mampiditra an'io fofona io rehefa mampiasa hacks haingana ianao amin'ny fitsapana.
Ny fitaovana sasany dia manolotra saina toa ny isTesting satria izy ireo dia manao laharam-pahamehana noho ny famolavolana mety.
AI Detection 🥃
Ny fitaovana AI dia afaka mahazo an'io fofona io raha amboarinao hanisy lojika misy fepetra mifototra amin'ny fanjakana fitsapana.
Andramo izy ireo! 🛠
Tsarovy: manao fahadisoana maro ny AI Assistants
Soso-kevitra: Esory ny fomba IsTesting ary manolo izany amin'ny alàlan'ny famolavolana ny tontolo iainana
Tsy misy toromarika mety | Miaraka amin'ny toromarika manokana |
---|---|
Fehiny 🏁
Aza mampiasa saina isTesting .
Mampiasà tsindrona fiankinan-doha ary ataovy modely ny tontolo iainana mba hitazonana ny lojika fitsapana sy famokarana.
Fifandraisana 👩❤️💋👨
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxii
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xiii
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-vi-cmj31om
Disclaimer 📘
Code Smells no hevitro .
Credits 🙏
Sary avy amin'i Christian Gertenbach ao amin'ny Unsplash
Rehefa manampy sainam-panadinana ianao dia manimba ny fahatokisan-tena amin'ny famokarana.
Ward Cunningham
Ity lahatsoratra ity dia ampahany amin'ny andiany CodeSmell.