SOLID
SRP : Single Responsibility Principle. 한 클래스에 대해 한 가지 기능만을 수행하도록 해라.
OCP : Open/Closed Principle. 새로운 기능의 추가가 일어났을 때에는 기존 코드의 수정 없이 추가가 되어야 하고, 내부 매커니즘이 변경되어야 할 때에는 외부의 코드 변화가 없어야 한다.
- 버그 수정이 아닌 새로운 기능을 개발할 때 기존에 개발된 함수를 수정하면서 코드를 개발하고 있다면 OCP 원칙을 위배한 코드를 작성하고 있을 확률이 높다.
LSP : Liskov Substitution Principle. 자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야 한다.
ISP : Interface Segregation Principle : 클라이언트는 자신이 이용하지 않는 메서드에 의존해선 안된다.
DIP : Dependency Inversion Principle
- 상위 모듈은 하위 모듈에 의존해서는 안된다.
- 추상화는 세부 사항에 의존해서는 안된다.
- clean code + ts
https://github.com/labs42io/clean-code-typescript#solid
- js에서도 SOLID 원칙이 통할까?
https://velog.io/@teo/Javascript%EC%97%90%EC%84%9C%EB%8F%84-SOLID-%EC%9B%90%EC%B9%99%EC%9D%B4-%ED%86%B5%ED%95%A0%EA%B9%8C