'내 코드가 그렇게 이상한가요?' 개발 서적을 읽고 정리합니다.책의 코드가 전부 JAVA 로 구성되어 있기 때문에 Typescript 를 사용해서 변경하여 정리하였습니다. 프론트엔드에서도 사용가능한 지식이 충분히 잘 담겨있는 설계 책이라 선택하였고, 차근 차근 정리해나
클래스 하나로도 동작에 무리가 없어야 하며, 복잡한 초기 설정을 하지 않아도 되며, 최소한의 조작 방법으로 외부에 제공되어야 한다.클래스의 구성 요소클래스는 인스턴스 변수 와 메서드 로 구성된다.잘 만들어진 클래스는 인스턴스 변수, 인스턴스 변수에 잘못된 값이 할당되지
변수에 값을 다시 할당하는 것을 재할당, 파괴적 할당 이라고 한다. 재할당은 변수의 의미를 바꿔 추측하기 어렵게 만든다.불변 변수로 만들어 재할당 막기재할당을 막기 위해 변수를 다시 변경하지 못하도록 const 키워드를 사용해 막는다.매개변수도 불변으로 만들기매개변수를
static 메서드로 만든 시점에 이미 데이터와 데이터를 조작하는 로직 사이에 괴리가 생겨 응집도가 낮아진다.인스턴스 메서드 척하는 static 메서드 주의하기static 키워드가 붙어 있지 않지만 static메서드와 동일한 역할을 하는 메서드를 주의해라add 메서드는
조기 리턴(early return)은 조건을 만족하지 않는 경우 곧바로 리턴하는 방법이다.조건 로직과 실행 로직을 분리하여 가독성을 향상시킬 수 있다.if 와 else로 구성된 코드인데 아래 코드는 else도 필요없이 구현이 가능하다.개선 전 코드개선 후 코드예를 들어
이미 구현되어 있는 고차함수(map, filter, findIndex 등)을 사용해서 복잡해지는 로직을 직접 구현하지 않고도 가독성을 높일 수 있다.중첩된 if문을 사용하는 대신에 continue로 건너뛰게 해준다.마찬가지로 중첩된 if문을 사용하는 대신에 break로
아래 코드는 온라인 쇼핑몰에 할인 서비스가 추가된 코드이다.상품 하나당 3000원 할인최대 200000원까지 상품 추가 가능이후 새로운 요구사항이 추가되어 다음과 같이 클래스를 구현했다.300000까지 상품 추가 가능할인 가격을 3000 → 4000으로 변경했다고 하자
절대로 실행되지 않는 조건 내부에 있는 코드를 데드 코드, 도달 불가능한 코드(unreachable code) 라고 부른다. 코드의 가독성을 떨어트림해당 코드가 어떤 조건에서 실행되는지 생각하게 만들어 읽는 사람을 혼란스럽게 만든다.지금까지 실행되지 않는 죽은 코드가
이름 설계가 부적절해 악마를 불러들이는 경우 (강한 결합 구조를 갖게 된다.)예시) 상품을 그대로 ‘상품 클래스’ 라고 이름을 붙이는 것→ 상품 클래스가 관련 있는 여러 로직을 갖게 되어 점점 거대하고 복잡해진다. 변경사항이 생기면 상품 클래스와 관련된 클래스를 모두
11장 주석: 유지 보수와 변경의 정확성을 높이는 주석 작성 방법 1. 내용이 낡은 주석 게임에서 적의 공격을 받아 중독 상태가 되거나 할 때, 멤버의 얼굴이 힘든 표정으로 변하는 가상의 메서드이다. 어떤 상태일 때 표정을 변화시키는지 친절하게 설명해주는 주석 같
인스턴스 변수를 안전하게 조작하도록 메서드를 설계하면, 클래스 내부가 정상적인 상태인지 보장할 수 있다.다른 클래스의 인스턴수 변수를 변경하는 메서드는 좋지 않다. 다른 클래스의 인스턴스 변수를 변경하는 메서드를 작성할 때는 변경된 내용을 다루는 새로운 인스턴스를 생성
업로드중..로그인 사용자를 나타내는 User클래스는 사양 변경이 잦아서 여러 가지 문제를 일으키기 쉬운 클래스이다.로그인과 최소한의 정보를 갖도록 구현했다가 다양한 사양이 추가되어 모든 정보를 User클래스 인스턴스 변수에 추가 될 수 있다User클래스 내에서 유효성
리팩터링이란 실질적인 동작은 유지하면서, 구조만 정리하는 작업이다.PurchasePointPayment 클래스에서 조건 판정을 위해 if 조건문을 여러 번 중첩하고 있다.이러한 중첩문을 없애보자.서로 다른 일이 뒤섞여 있으므로, 로직이 정리되지 않는다. 조건 확인과 값
이 책엣허 다룬 설계는 주로 유지 보수성과 관련 있는 품질 특성이었다. 유지 보수성은 ‘시스템이 정상 운용되도록 유지 보수하기가 얼마나 쉬운가를 나타내는 정도’라고 했다. 유지 보수성 중에서도 특히 변경 용이성을 목적으로 하는 설계 방법을 다루어 왔다.변경이 어렵고 버