SlideShare uma empresa Scribd logo
1 de 9
Code Smells
Prasad Narasimhan – Technical Architect
System starts
 All the business & technical stakeholders
brainstorm a lot.
 They want to start somewhere rather than
getting into more of design paralysis.
 Core level classes gets created, Utility
classes, Exception classes…
System grows
 System grows based on the usage ,
features gets added either by extending
or changing current code.
 Structure is maintained, silos and
monolithic code gets created.
 With minimal documentation and fear of
touching core & utility its duplicated.
System expands
 Now more features are needed in short
time.
 No time to take stock of what is already
available how the design could be
extended.
 If it works don’t touch it syndrome.
 Some piece of code which lies dead , Silos
in method and class level.
 Duplicates at class level and variables
level
System explodes
 Now the business wants maximum use of
system , invites users through campaigns
and various launch pads.
 Application is perfectly scalable to optimum
level no issues. The Variables – scope, life
time.
 Collection handling – creation of collection
based on items, customer details which was
small now its rapidly increasing.
 Loop which process the collection becomes
bottleneck.
Explosion handled
 Giga bytes of processor, clustered system.
 Failover mechanism, Caching large
amount of data with latest caching
mechanism.
 Persist the data when failure happens.
 Predictive recovery approach.
Code Smells patterns
 Particular main functionality gets
enhanced without proper refactoring of
the base classes and dependent classes
 Class & methods violating SRP – Single
Responsibility principle.
 Open & Closed principle – Base class
should be open for extension and closed
for changes.
Some thoughts
 Refactoring when needed.
 Test Driven development.
 Inline Documentation for proper piece.
 SQALE based cost remediation and code
correction at periodic intervals.
 Code and design audit at periodic
intervals
Thanks

Mais conteúdo relacionado

Destaque

Marius Romila Romanian Photograph Adf
Marius Romila Romanian Photograph AdfMarius Romila Romanian Photograph Adf
Marius Romila Romanian Photograph Adfsokoban
 
Karl blossfeld
Karl blossfeldKarl blossfeld
Karl blossfeldjuan paez
 
Animal Tracks
Animal TracksAnimal Tracks
Animal Trackssokoban
 
F.L.Wright's masterpieces - Oeuvres de l'architecte Frank Lloyd Wright
F.L.Wright's masterpieces - Oeuvres de l'architecte Frank Lloyd WrightF.L.Wright's masterpieces - Oeuvres de l'architecte Frank Lloyd Wright
F.L.Wright's masterpieces - Oeuvres de l'architecte Frank Lloyd Wrightsokoban
 
Subiendo ImáGenes A Una Entrada
Subiendo ImáGenes A Una EntradaSubiendo ImáGenes A Una Entrada
Subiendo ImáGenes A Una EntradaAster
 
Lazli moholy nagy
Lazli moholy nagyLazli moholy nagy
Lazli moholy nagyjuan paez
 
Arte latinoamericano
Arte latinoamericanoArte latinoamericano
Arte latinoamericanojuan paez
 
станислав поздняков
станислав поздняковстанислав поздняков
станислав поздняковecole70
 
Nicio femeie nu e urata! - Ce pot face banii!!
Nicio femeie nu e urata! - Ce pot face banii!!Nicio femeie nu e urata! - Ce pot face banii!!
Nicio femeie nu e urata! - Ce pot face banii!!sokoban
 
Gorputza
GorputzaGorputza
GorputzaAster
 
2014-04-16 Protection of Personal Information Act Readiness Workshop
2014-04-16 Protection of Personal Information Act Readiness Workshop2014-04-16 Protection of Personal Information Act Readiness Workshop
2014-04-16 Protection of Personal Information Act Readiness WorkshopPaul Jacobson
 
Become a software technical architect
Become a software technical architectBecome a software technical architect
Become a software technical architectPrasad Narasimhan
 
EXCELLENT OLD PICTURES (a very cool powerpoint presentation)
EXCELLENT OLD PICTURES (a very cool powerpoint presentation)EXCELLENT OLD PICTURES (a very cool powerpoint presentation)
EXCELLENT OLD PICTURES (a very cool powerpoint presentation)sokoban
 
051207 Commonsense Geography Meets Web Technology
051207 Commonsense Geography Meets Web Technology 051207 Commonsense Geography Meets Web Technology
051207 Commonsense Geography Meets Web Technology andrea huang
 
Sam's_Story
Sam's_StorySam's_Story
Sam's_Storysokoban
 
Technology needs to be disruptive
Technology needs to be disruptiveTechnology needs to be disruptive
Technology needs to be disruptivePrasad Narasimhan
 
Finding Digital Love
Finding Digital LoveFinding Digital Love
Finding Digital Lovehitmansystem
 
2014-09-18 Protection of Personal Information Act readiness workshop
2014-09-18 Protection of Personal Information Act readiness workshop2014-09-18 Protection of Personal Information Act readiness workshop
2014-09-18 Protection of Personal Information Act readiness workshopPaul Jacobson
 

Destaque (20)

Marius Romila Romanian Photograph Adf
Marius Romila Romanian Photograph AdfMarius Romila Romanian Photograph Adf
Marius Romila Romanian Photograph Adf
 
Karl blossfeld
Karl blossfeldKarl blossfeld
Karl blossfeld
 
Animal Tracks
Animal TracksAnimal Tracks
Animal Tracks
 
F.L.Wright's masterpieces - Oeuvres de l'architecte Frank Lloyd Wright
F.L.Wright's masterpieces - Oeuvres de l'architecte Frank Lloyd WrightF.L.Wright's masterpieces - Oeuvres de l'architecte Frank Lloyd Wright
F.L.Wright's masterpieces - Oeuvres de l'architecte Frank Lloyd Wright
 
Subiendo ImáGenes A Una Entrada
Subiendo ImáGenes A Una EntradaSubiendo ImáGenes A Una Entrada
Subiendo ImáGenes A Una Entrada
 
Lazli moholy nagy
Lazli moholy nagyLazli moholy nagy
Lazli moholy nagy
 
Arte latinoamericano
Arte latinoamericanoArte latinoamericano
Arte latinoamericano
 
станислав поздняков
станислав поздняковстанислав поздняков
станислав поздняков
 
Be Positive
Be PositiveBe Positive
Be Positive
 
Managing your digital footprint
Managing your digital footprintManaging your digital footprint
Managing your digital footprint
 
Nicio femeie nu e urata! - Ce pot face banii!!
Nicio femeie nu e urata! - Ce pot face banii!!Nicio femeie nu e urata! - Ce pot face banii!!
Nicio femeie nu e urata! - Ce pot face banii!!
 
Gorputza
GorputzaGorputza
Gorputza
 
2014-04-16 Protection of Personal Information Act Readiness Workshop
2014-04-16 Protection of Personal Information Act Readiness Workshop2014-04-16 Protection of Personal Information Act Readiness Workshop
2014-04-16 Protection of Personal Information Act Readiness Workshop
 
Become a software technical architect
Become a software technical architectBecome a software technical architect
Become a software technical architect
 
EXCELLENT OLD PICTURES (a very cool powerpoint presentation)
EXCELLENT OLD PICTURES (a very cool powerpoint presentation)EXCELLENT OLD PICTURES (a very cool powerpoint presentation)
EXCELLENT OLD PICTURES (a very cool powerpoint presentation)
 
051207 Commonsense Geography Meets Web Technology
051207 Commonsense Geography Meets Web Technology 051207 Commonsense Geography Meets Web Technology
051207 Commonsense Geography Meets Web Technology
 
Sam's_Story
Sam's_StorySam's_Story
Sam's_Story
 
Technology needs to be disruptive
Technology needs to be disruptiveTechnology needs to be disruptive
Technology needs to be disruptive
 
Finding Digital Love
Finding Digital LoveFinding Digital Love
Finding Digital Love
 
2014-09-18 Protection of Personal Information Act readiness workshop
2014-09-18 Protection of Personal Information Act readiness workshop2014-09-18 Protection of Personal Information Act readiness workshop
2014-09-18 Protection of Personal Information Act readiness workshop
 

Semelhante a Code Smells Detection and Refactoring Techniques

Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringSaqib Raza
 
Building Maintainable PHP Applications.pptx
Building Maintainable PHP Applications.pptxBuilding Maintainable PHP Applications.pptx
Building Maintainable PHP Applications.pptxdavorminchorov1
 
Architecting a Large Software Project - Lessons Learned
Architecting a Large Software Project - Lessons LearnedArchitecting a Large Software Project - Lessons Learned
Architecting a Large Software Project - Lessons LearnedJoão Pedro Martins
 
Tech challenges in a large scale agile project
Tech challenges in a large scale agile projectTech challenges in a large scale agile project
Tech challenges in a large scale agile projectHarald Soevik
 
Agile Development unleashed
Agile Development unleashedAgile Development unleashed
Agile Development unleashedlivgeni
 
Information systems development methodologies (autosaved)
Information systems development methodologies (autosaved)Information systems development methodologies (autosaved)
Information systems development methodologies (autosaved)Vaska Shefteroska
 
Workshop - The Little Pattern That Could.pdf
Workshop - The Little Pattern That Could.pdfWorkshop - The Little Pattern That Could.pdf
Workshop - The Little Pattern That Could.pdfTobiasGoeschel
 
Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...
Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...
Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...CodeScience
 
Large scale agile development practices
Large scale agile development practicesLarge scale agile development practices
Large scale agile development practicesSkills Matter
 
Techcello at a glance
Techcello at a glanceTechcello at a glance
Techcello at a glancekanimozhin
 
Techcello at a glance
Techcello at a glanceTechcello at a glance
Techcello at a glanceTechcello
 
Software development process models
Software development process modelsSoftware development process models
Software development process modelsMuntha Ulfat
 
API-driven Legacy Migration: Results from Project Winterfell
API-driven Legacy Migration: Results from Project WinterfellAPI-driven Legacy Migration: Results from Project Winterfell
API-driven Legacy Migration: Results from Project WinterfellKeith McFarlane
 

Semelhante a Code Smells Detection and Refactoring Techniques (20)

Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
L12 GRASP
L12 GRASPL12 GRASP
L12 GRASP
 
Building Maintainable PHP Applications.pptx
Building Maintainable PHP Applications.pptxBuilding Maintainable PHP Applications.pptx
Building Maintainable PHP Applications.pptx
 
Architecting a Large Software Project - Lessons Learned
Architecting a Large Software Project - Lessons LearnedArchitecting a Large Software Project - Lessons Learned
Architecting a Large Software Project - Lessons Learned
 
Lect7
Lect7Lect7
Lect7
 
Lect7
Lect7Lect7
Lect7
 
Tech challenges in a large scale agile project
Tech challenges in a large scale agile projectTech challenges in a large scale agile project
Tech challenges in a large scale agile project
 
So You Bought Oracle Ecm
So You Bought Oracle EcmSo You Bought Oracle Ecm
So You Bought Oracle Ecm
 
Agile Development unleashed
Agile Development unleashedAgile Development unleashed
Agile Development unleashed
 
Information systems development methodologies (autosaved)
Information systems development methodologies (autosaved)Information systems development methodologies (autosaved)
Information systems development methodologies (autosaved)
 
Workshop - The Little Pattern That Could.pdf
Workshop - The Little Pattern That Could.pdfWorkshop - The Little Pattern That Could.pdf
Workshop - The Little Pattern That Could.pdf
 
Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...
Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...
Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...
 
Large scale agile development practices
Large scale agile development practicesLarge scale agile development practices
Large scale agile development practices
 
Day1
Day1Day1
Day1
 
Techcello at a glance
Techcello at a glanceTechcello at a glance
Techcello at a glance
 
Software process model
Software process modelSoftware process model
Software process model
 
Techcello at a glance
Techcello at a glanceTechcello at a glance
Techcello at a glance
 
Software development process models
Software development process modelsSoftware development process models
Software development process models
 
software engineering
software engineering software engineering
software engineering
 
API-driven Legacy Migration: Results from Project Winterfell
API-driven Legacy Migration: Results from Project WinterfellAPI-driven Legacy Migration: Results from Project Winterfell
API-driven Legacy Migration: Results from Project Winterfell
 

Mais de Prasad Narasimhan

Data visualization representation of Analytics data
Data visualization representation of Analytics  dataData visualization representation of Analytics  data
Data visualization representation of Analytics dataPrasad Narasimhan
 
Art of creating good software
Art of creating good softwareArt of creating good software
Art of creating good softwarePrasad Narasimhan
 
Internet of things & predictive analytics
Internet of things & predictive analyticsInternet of things & predictive analytics
Internet of things & predictive analyticsPrasad Narasimhan
 
Application of predictive analytics
Application of predictive analyticsApplication of predictive analytics
Application of predictive analyticsPrasad Narasimhan
 
Software engineering at the speed of technology
Software engineering at the speed of technologySoftware engineering at the speed of technology
Software engineering at the speed of technologyPrasad Narasimhan
 
Challenges in adapting predictive analytics
Challenges  in  adapting  predictive  analyticsChallenges  in  adapting  predictive  analytics
Challenges in adapting predictive analyticsPrasad Narasimhan
 
Predictive analytics in marketing
Predictive analytics in marketingPredictive analytics in marketing
Predictive analytics in marketingPrasad Narasimhan
 
Predictive analytics in financial service
Predictive analytics in financial servicePredictive analytics in financial service
Predictive analytics in financial servicePrasad Narasimhan
 
Predictive analytics in health insurance
Predictive analytics in health insurancePredictive analytics in health insurance
Predictive analytics in health insurancePrasad Narasimhan
 
360 degree view of architect
360 degree view  of architect360 degree view  of architect
360 degree view of architectPrasad Narasimhan
 
Information + insight = action
Information + insight = actionInformation + insight = action
Information + insight = actionPrasad Narasimhan
 
What is happening in Information Technology
What is happening in Information TechnologyWhat is happening in Information Technology
What is happening in Information TechnologyPrasad Narasimhan
 
Html5 (looks ready for everything)
Html5 (looks ready for  everything)Html5 (looks ready for  everything)
Html5 (looks ready for everything)Prasad Narasimhan
 

Mais de Prasad Narasimhan (20)

Single Page Application
Single Page ApplicationSingle Page Application
Single Page Application
 
Analytics
AnalyticsAnalytics
Analytics
 
Riseof technology
Riseof technologyRiseof technology
Riseof technology
 
Information as commodity
Information as commodityInformation as commodity
Information as commodity
 
Data visualization representation of Analytics data
Data visualization representation of Analytics  dataData visualization representation of Analytics  data
Data visualization representation of Analytics data
 
Art of creating good software
Art of creating good softwareArt of creating good software
Art of creating good software
 
Internet of things & predictive analytics
Internet of things & predictive analyticsInternet of things & predictive analytics
Internet of things & predictive analytics
 
Application of predictive analytics
Application of predictive analyticsApplication of predictive analytics
Application of predictive analytics
 
Software engineering at the speed of technology
Software engineering at the speed of technologySoftware engineering at the speed of technology
Software engineering at the speed of technology
 
Challenges in adapting predictive analytics
Challenges  in  adapting  predictive  analyticsChallenges  in  adapting  predictive  analytics
Challenges in adapting predictive analytics
 
Predictive analytics in marketing
Predictive analytics in marketingPredictive analytics in marketing
Predictive analytics in marketing
 
Predictive analytics in financial service
Predictive analytics in financial servicePredictive analytics in financial service
Predictive analytics in financial service
 
Predictive analytics in health insurance
Predictive analytics in health insurancePredictive analytics in health insurance
Predictive analytics in health insurance
 
3D printing
3D printing3D printing
3D printing
 
Internet of things
Internet of thingsInternet of things
Internet of things
 
360 degree view of architect
360 degree view  of architect360 degree view  of architect
360 degree view of architect
 
Where business meet’s IT
Where business meet’s ITWhere business meet’s IT
Where business meet’s IT
 
Information + insight = action
Information + insight = actionInformation + insight = action
Information + insight = action
 
What is happening in Information Technology
What is happening in Information TechnologyWhat is happening in Information Technology
What is happening in Information Technology
 
Html5 (looks ready for everything)
Html5 (looks ready for  everything)Html5 (looks ready for  everything)
Html5 (looks ready for everything)
 

Último

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 

Último (20)

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 

Code Smells Detection and Refactoring Techniques

  • 1. Code Smells Prasad Narasimhan – Technical Architect
  • 2. System starts  All the business & technical stakeholders brainstorm a lot.  They want to start somewhere rather than getting into more of design paralysis.  Core level classes gets created, Utility classes, Exception classes…
  • 3. System grows  System grows based on the usage , features gets added either by extending or changing current code.  Structure is maintained, silos and monolithic code gets created.  With minimal documentation and fear of touching core & utility its duplicated.
  • 4. System expands  Now more features are needed in short time.  No time to take stock of what is already available how the design could be extended.  If it works don’t touch it syndrome.  Some piece of code which lies dead , Silos in method and class level.  Duplicates at class level and variables level
  • 5. System explodes  Now the business wants maximum use of system , invites users through campaigns and various launch pads.  Application is perfectly scalable to optimum level no issues. The Variables – scope, life time.  Collection handling – creation of collection based on items, customer details which was small now its rapidly increasing.  Loop which process the collection becomes bottleneck.
  • 6. Explosion handled  Giga bytes of processor, clustered system.  Failover mechanism, Caching large amount of data with latest caching mechanism.  Persist the data when failure happens.  Predictive recovery approach.
  • 7. Code Smells patterns  Particular main functionality gets enhanced without proper refactoring of the base classes and dependent classes  Class & methods violating SRP – Single Responsibility principle.  Open & Closed principle – Base class should be open for extension and closed for changes.
  • 8. Some thoughts  Refactoring when needed.  Test Driven development.  Inline Documentation for proper piece.  SQALE based cost remediation and code correction at periodic intervals.  Code and design audit at periodic intervals