Developer Philosophy

Developer Philosophy

Post Date : 2023-09-25T21:13:42+07:00

Modified Date : 2023-09-25T21:13:42+07:00

Category: cheatsheet


Single Responsibility

Gather together the things that change for the same reasons. Separate those things that change for different reasons.

KISS ( Keep It Stupid Simple)

Make things as simple as possible, but not simpler.


Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.


Single Responsibility

A class should only have one responsibility. Furthermore, it should only have one reason to change

Open for Extension, Closed for Modification

Classes should be open for extension but closed for modification.

Liskov Substituation Principle

The Liskov Substitution Principle states that subclasses should be substitutable for their base classes. If class A is a subtype of class B, we should be able to replace B with A without disrupting the behavior of our program.

Interface Segregation

Larger interfaces should be split into smaller ones. By doing so, we can ensure that implementing classes only need to be concerned about the methods that are of interest to them

Dependency Inversion

The principle of dependency inversion refers to the decoupling of software modules. This way, instead of high-level modules depending on low-level modules, both will depend on abstractions.

ReactJS Testing Philosophy

Many integration tests. No snapshot tests. Few unit tests. Few e to e tests.