Skip to main content

Software Maintainability

In this Software Maintainability section, I share insights on keeping software manageable and adaptable through various strategies. My approach includes Refactoring, guided by Refactoring Guru to improve code quality and tackle technical debt. I also delve into the effectiveness of Design Patterns for addressing common challenges in software architecture. Additionally, I outline the significance of Documentation, Testing, Deployment, Modularity, Scalability, and Security in maintaining a robust and scalable codebase. These notes reflect my journey and the methodologies I find most effective for ensuring software remains clean, efficient, and secure over time.

Refactoring​

One of my ways to do refactoring is based on this website: refactoring guru and usually the reason I do refactoring is because I want my codebase is free from code smells that can be burden in the future of my team just like a technical debt.

Design Pattern​

For design pattern, I'm all in with this holy grail.

Documentation​

I am referencing to this documentation docs.

Testing​

Testing docs.

Modularity​

Microservices docs.

Scalability​

Scalability docs.

  1. App Modularisation by Grab
  2. Flutter app Modularisation by Evermos
  3. Redesigning Pinterest Ad System
  4. Code as a Documentation
  5. Availability
  6. How we built a robust ecosystem for dataset development
  1. Why Google Stores Billions of Lines of Code in a Single Repository

Code Quality​

  1. Improving Code Quality by LY - 1
  2. Improving Code Quality by LY - 2
  3. Improving Code Quality by LY - 3
  4. Improving Code Quality by LY - 4
  5. Improving Code Quality by LY - 5

Refactoring Articles​

  1. How to Refactor and Not Break Things