SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
The Stinky Code Project

Simon Stewart (shs@google.com)
          @shs96c
Data Envy
Breaking the Law (of Demeter)
The Evil Singleton
Static Cling
Mocking Too Far
Too Many Mocks
Tests at Too High a Level
Tests at Too Low a Level
Fat Constructors
Deep Inheritance
Obscure Intent
Polynaming
Single Layer of Defence
Test Code is Disposable
Mumpsimus




http://www.flickr.com/photos/deepblue66/132439533/
When the Going Gets Tough (the
Tough Stop Testing)
Inconsistency




http://www.flickr.com/photos/31284576@N06/3105146919/
Fin

Contenu connexe

Plus de GrantBell

Toby Beresford
Toby BeresfordToby Beresford
Toby Beresford
GrantBell
 
Vladimir Oane
Vladimir OaneVladimir Oane
Vladimir Oane
GrantBell
 
Dominic Sparkes
Dominic SparkesDominic Sparkes
Dominic Sparkes
GrantBell
 
Toby Beresford
Toby BeresfordToby Beresford
Toby Beresford
GrantBell
 
Karl Bunyan Slides: April Facebook Developer Garage
Karl Bunyan Slides: April Facebook Developer GarageKarl Bunyan Slides: April Facebook Developer Garage
Karl Bunyan Slides: April Facebook Developer Garage
GrantBell
 
Clara Shih Slides: April Facebook Developer Garage
Clara Shih Slides: April Facebook Developer GarageClara Shih Slides: April Facebook Developer Garage
Clara Shih Slides: April Facebook Developer Garage
GrantBell
 
Offerpal Slides: April Facebook Developer Garage
Offerpal Slides: April Facebook Developer GarageOfferpal Slides: April Facebook Developer Garage
Offerpal Slides: April Facebook Developer Garage
GrantBell
 

Plus de GrantBell (11)

Iskandar
IskandarIskandar
Iskandar
 
Buster
BusterBuster
Buster
 
Toby Beresford
Toby BeresfordToby Beresford
Toby Beresford
 
Vladimir Oane
Vladimir OaneVladimir Oane
Vladimir Oane
 
Dan Lester
Dan LesterDan Lester
Dan Lester
 
Dominic Sparkes
Dominic SparkesDominic Sparkes
Dominic Sparkes
 
Iskander
IskanderIskander
Iskander
 
Toby Beresford
Toby BeresfordToby Beresford
Toby Beresford
 
Karl Bunyan Slides: April Facebook Developer Garage
Karl Bunyan Slides: April Facebook Developer GarageKarl Bunyan Slides: April Facebook Developer Garage
Karl Bunyan Slides: April Facebook Developer Garage
 
Clara Shih Slides: April Facebook Developer Garage
Clara Shih Slides: April Facebook Developer GarageClara Shih Slides: April Facebook Developer Garage
Clara Shih Slides: April Facebook Developer Garage
 
Offerpal Slides: April Facebook Developer Garage
Offerpal Slides: April Facebook Developer GarageOfferpal Slides: April Facebook Developer Garage
Offerpal Slides: April Facebook Developer Garage
 

Dernier

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Dernier (20)

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...