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
Modularity
Scalability
Recommended Reading
- App Modularisation by Grab
- Flutter app Modularisation by Evermos
- Redesigning Pinterest Ad System
- Code as a Documentation
- Availability
Recommended Talks
Code Quality
- Improving Code Quality by LY - 1
- Improving Code Quality by LY - 2
- Improving Code Quality by LY - 3
- Improving Code Quality by LY - 4
- Improving Code Quality by LY - 5