# Clean Codebase Is Like A Clean House - Scratch
Below are a few things I will touch base on in my next blog post.
Use function type hinting
Readability. Doc blocks return types. Adhere to PSR.
Having suite of test helps refactoring. Eg renaming methods and classes.
Directory structure
Single responsibility principle - small classes. Tell your self what is this class doing.
Delete methods and properties that are not being used. It adds no value and confuses a system's design because the interface effectively lies about its own functionality
DRY eliminate code duplication through inheritance or traits. Moving conditionals to manager classes.
Helps IDE functionality.
Confusing nested Ifs.
Public protected private visibility. clear interface. Gateway between the system and the rest of the code.
Abstract the abstraction trap
Use enums