Code how it matures in syste

315 views
280 views

Published on

How the code matures when the system expands and transforms. This creates redundancy and code duplication.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
315
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Code how it matures in syste

  1. 1. Code Smells Prasad Narasimhan – Technical Architect
  2. 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. 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. 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. 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. 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. 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. 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
  9. 9. Thanks

×