본문 바로가기

디자인 패턴3

개발 일상, 소소한 리팩토링 정리 업무 배치와 푸시 배치 구분하는 작업 진행 reason 두 기능의 변경 빈도, 실행주기가 다름 조만간 푸시 기능 개선이 있었음 기존 배치 프로젝트에서 푸시 관련 코드를 별도 프로젝트 발라냄 기존 코드를 복붙해서 새 프로젝트 이관 이 과정에서 기존 코드를 일부 리팩토링하는 작업도 병행 분리 통지 코드를 별도 클래스로 분리 정적 메서드 -> 객체 JobResultNotifier에 대한 단위 테스트 용이해짐 역할 분리 통지 여부 판단 로직 분리 파일 백업 기능 별도 클래스로 분리 리팩토링과 테스트! 상속보단 조립 com.google.android.gcm.server.Sender 클래스를 상속 불필요하게 Sender의 모든 메서드 노출 조립을 하기 위한 구조로 변경 Sender 클래스를 상속한 클래스 분리 Se.. 2024. 1. 11.
파이브 라인즈 오브 코드 정리 클린코드는 어떻게 보면 기본이기도 하지만어떤 상황과 환경에서는 당장에 지켜야 할 수 없는 원칙이기도 합니다. 이는 대부분의 회사에서는 당장의 좋은 코드보다는 당장의 제품 출시 - 특히 경쟁사가 어떤 기능을 배포한다면 더더욱가 훨씬 중요한 일이고 일정이 가장 중요한 일 중 하나이기 때문입니다. 그럼에도 코드의 퀄리티가 낮아지고 제품, 소프트웨어의 퀄리티가 낮아지는 것은 결국 복잡도가 증가함에 따라 유지보수나 개발의 속도를 저해시키는 주요 요소 중 하나입니다. 이런 클린 코드의 법칙을 기술한 책 중 파이브 라인즈 오브 코드라는 책이 있는데 관련 영상이 있어 조금 정리 해보았습니다.  파이브라인스 오브 코드 의 주요 목표단일 책임 (SRP)추상화(인터페이스  + 구현 구조)캡슐화이를 달성하기 위한 규칙 소개 .. 2024. 1. 11.
디자인패턴: 템플릿 메소드 패턴 템플릿 메서드 패턴은 알고리즘의 구조를 정의하고, 알고리즘의 일부를 서브클래스에서 구현함으로써 알고리즘을 재사용하기 쉽도록 만든 설계 패턴입니다. 일반적으로 템플릿 메서드 패턴은 알고리즘의 각 단계를 정의하는 추상 메서드로 구성되어 있습니다. 그리고 이 추상 메서드는 서브클래스에서 구현하도록 합니다. 이렇게 함으로써 서브클래스는 알고리즘의 구조를 변경하지 않고도 개별적인 단계를 재정의할 수 있습니다. 템플릿 메서드 패턴의 예를 위해, 커피와 차의 제조 과정을 살펴보겠습니다. 이 과정은 물을 끓이고, 물을 어떤 재료에 붓는 두 단계로 구성되어 있습니다. 이를 코드로 표현하면 다음과 같습니다. public abstract class CaffeinBeverage(){ public void prepareReci.. 2022. 12. 15.