좋은 코드를 위해 의식해야할 6가지 원칙
1. DRY(Don't Repeat Yourself)
2. PIE(Program Intently and Expressively)
3. SRP(Stable Dependencies Principle)
4. OCP(Open Closed Principle)
5. SDP(Single Responsibility Principle)
6. ADP(Acyclic Dependencies Priciple)
중복코드가 있다면 메소드로 분리
명확하게 기술
애매한 이름으로 혼란 방지
컨벤션을 따를것 ref 1, 2
매직넘버 이름 사용 ref 3
1개의 클래스는 1개의 책임 및 일만
하나의 에러 수정을 위해서는 해당 클래스만 수정
역으로 클래스 분리가 심하면 관리가 어려움
자유로운 확장
의존부분 변경 불필요
인터페이스 적극 활용 확장 가능
수정될 가능성이 낮은 클래스에 의존
안전한 것에 의존
의존성 비순환 원칙
의존 관계간의 사이클 발생 방지
일명 의존성 주입
생성자를 통해 테스트 가능한 종속 항목 삽입
객체 간의 의존성을 외부에서 주입하여 코드의 유연성과 테스트 용이성을 향상시키는 디자인 패턴
ref)
1. "Effective Dart: Style | Dart", 23.12.19, https://dart.dev/effective-dart/style
2. "Effective Dart: Design", 23.12.19, https://dart.dev/effective-dart/design
3. "Magic number (programming) - Wikipedia", 23.12.19, https://en.wikipedia.org/wiki/Magic_number_(programming)
4. "Dependency Injection In Flutter. Introduction | by Zubair Rehman | Flutter Community | Medium", 23.12.19, https://medium.com/flutter-community/dependency-injection-in-flutter-f19fb66a0740
5. "Dependency Injection in Flutter - DEV Community", 23.12.19, https://dev.to/alvbarros/dependency-injection-in-flutter-598k