SlideShare a Scribd company logo
1 of 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

More Related Content

Viewers also liked

Diario Rojo+Wiki
Diario Rojo+WikiDiario Rojo+Wiki
Diario Rojo+WikiAster
 
Vanguardias Latinoamericanas, Blaa
Vanguardias Latinoamericanas, BlaaVanguardias Latinoamericanas, Blaa
Vanguardias Latinoamericanas, Blaajuan paez
 
Greenfields
GreenfieldsGreenfields
Greenfieldssokoban
 
湖山水庫工程計畫環境影響調查報告
湖山水庫工程計畫環境影響調查報告湖山水庫工程計畫環境影響調查報告
湖山水庫工程計畫環境影響調查報告relax.chi
 
Liburutegixan
LiburutegixanLiburutegixan
LiburutegixanAster
 
The Taj Mahal (An inside look)
The Taj Mahal (An inside look)The Taj Mahal (An inside look)
The Taj Mahal (An inside look)sokoban
 
Fwd: trevs-POWERPOINT-SHOWS Trevs- powerpoint.126
Fwd: trevs-POWERPOINT-SHOWS Trevs- powerpoint.126Fwd: trevs-POWERPOINT-SHOWS Trevs- powerpoint.126
Fwd: trevs-POWERPOINT-SHOWS Trevs- powerpoint.126sokoban
 
Creando Un Blog
Creando Un BlogCreando Un Blog
Creando Un BlogAster
 
arte chocolate.pps
arte chocolate.ppsarte chocolate.pps
arte chocolate.ppssokoban
 
Muntele Athos
Muntele AthosMuntele Athos
Muntele Athossokoban
 
Underground City of Derinkuyu
Underground City of DerinkuyuUnderground City of Derinkuyu
Underground City of Derinkuyusokoban
 
Excitans - Visievorming op zorg-ICT
Excitans - Visievorming op zorg-ICTExcitans - Visievorming op zorg-ICT
Excitans - Visievorming op zorg-ICTForugy
 
Pieter and Ian FLL part 2
Pieter and Ian FLL part 2Pieter and Ian FLL part 2
Pieter and Ian FLL part 2bezier
 
Diccionario visual
Diccionario visualDiccionario visual
Diccionario visualAster
 
StartupBisnis.com Indonesia General Profile for Public
StartupBisnis.com Indonesia General Profile for PublicStartupBisnis.com Indonesia General Profile for Public
StartupBisnis.com Indonesia General Profile for PublicReinҲ Rein
 
Excitans - Requirements verrijker
Excitans - Requirements verrijkerExcitans - Requirements verrijker
Excitans - Requirements verrijkerForugy
 

Viewers also liked (20)

Biblioteche di ateneo e Iris
Biblioteche di ateneo e IrisBiblioteche di ateneo e Iris
Biblioteche di ateneo e Iris
 
Diario Rojo+Wiki
Diario Rojo+WikiDiario Rojo+Wiki
Diario Rojo+Wiki
 
Vanguardias Latinoamericanas, Blaa
Vanguardias Latinoamericanas, BlaaVanguardias Latinoamericanas, Blaa
Vanguardias Latinoamericanas, Blaa
 
Greenfields
GreenfieldsGreenfields
Greenfields
 
Publish or be damned
Publish or be damnedPublish or be damned
Publish or be damned
 
Wordpress
WordpressWordpress
Wordpress
 
湖山水庫工程計畫環境影響調查報告
湖山水庫工程計畫環境影響調查報告湖山水庫工程計畫環境影響調查報告
湖山水庫工程計畫環境影響調查報告
 
Liburutegixan
LiburutegixanLiburutegixan
Liburutegixan
 
The Taj Mahal (An inside look)
The Taj Mahal (An inside look)The Taj Mahal (An inside look)
The Taj Mahal (An inside look)
 
Fwd: trevs-POWERPOINT-SHOWS Trevs- powerpoint.126
Fwd: trevs-POWERPOINT-SHOWS Trevs- powerpoint.126Fwd: trevs-POWERPOINT-SHOWS Trevs- powerpoint.126
Fwd: trevs-POWERPOINT-SHOWS Trevs- powerpoint.126
 
Creando Un Blog
Creando Un BlogCreando Un Blog
Creando Un Blog
 
arte chocolate.pps
arte chocolate.ppsarte chocolate.pps
arte chocolate.pps
 
Muntele Athos
Muntele AthosMuntele Athos
Muntele Athos
 
Underground City of Derinkuyu
Underground City of DerinkuyuUnderground City of Derinkuyu
Underground City of Derinkuyu
 
Excitans - Visievorming op zorg-ICT
Excitans - Visievorming op zorg-ICTExcitans - Visievorming op zorg-ICT
Excitans - Visievorming op zorg-ICT
 
Pieter and Ian FLL part 2
Pieter and Ian FLL part 2Pieter and Ian FLL part 2
Pieter and Ian FLL part 2
 
Comic07
Comic07Comic07
Comic07
 
Diccionario visual
Diccionario visualDiccionario visual
Diccionario visual
 
StartupBisnis.com Indonesia General Profile for Public
StartupBisnis.com Indonesia General Profile for PublicStartupBisnis.com Indonesia General Profile for Public
StartupBisnis.com Indonesia General Profile for Public
 
Excitans - Requirements verrijker
Excitans - Requirements verrijkerExcitans - Requirements verrijker
Excitans - Requirements verrijker
 

Similar to Code how it matures in syste

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
 

Similar to Code how it matures in syste (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
 

More from Prasad Narasimhan

Technology needs to be disruptive
Technology needs to be disruptiveTechnology needs to be disruptive
Technology needs to be disruptivePrasad 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
 
Become a software technical architect
Become a software technical architectBecome a software technical architect
Become a software technical architectPrasad Narasimhan
 

More from Prasad Narasimhan (20)

Single Page Application
Single Page ApplicationSingle Page Application
Single Page Application
 
Analytics
AnalyticsAnalytics
Analytics
 
Technology needs to be disruptive
Technology needs to be disruptiveTechnology needs to be disruptive
Technology needs to be disruptive
 
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
 
Become a software technical architect
Become a software technical architectBecome a software technical architect
Become a software technical architect
 

Recently uploaded

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
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
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
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
 

Recently uploaded (20)

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
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)
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
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
 

Code how it matures in syste

  • 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