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

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
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...Martijn de Jong
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 

Recently uploaded (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
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...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

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