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
  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