-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
e4fb55a
commit dbf2179
Showing
1 changed file
with
12 additions
and
34 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,36 +1,14 @@ | ||
## Ch 4. 액션에서 계산 빼내기 | ||
## Ch 5. 더 좋은 액션 만들기 | ||
|
||
- 테스트를 하기 쉽게 만들기 | ||
- DOM 업데이트와 비즈니스 규칙을 분리 | ||
- 재사용하기 쉽게 만들기 | ||
- 전역변수에 의존하지 않기 | ||
- DOM을 사용할 수 있는 곳에서 실행된다고 가정하지 않기 | ||
- 함수가 결괏값을 리턴 | ||
- 함수에는 입력과 출력이 있다. | ||
- 함수에서 암묵적 입력과 출력을 없애면 계산 | ||
- 함수에서 암묵적 입력과 출력을 있으면 액션 | ||
- 테스트와 재사용성은 입출력과 관련있다. | ||
- DOM 업데이트와 비즈니스 규칙 분리 | ||
- 전역변수 없애기 → 전역변수는 암묵적 입력 | ||
- 전역변수에 의존하지 않기 | ||
- DOM을 사용할 수 있는 곳에서 실행된다고 가정하지 않기 → DOM 직접 변동은 암묵적 출력 | ||
- 함수가 결괏값을 리턴 → 명시적 출력을 위해서 | ||
- 액션에서 계산 빼내기 | ||
- 서브루틴 추출하기 | ||
- 액션에서 또 다른 계산 빼내기 | ||
- 함수 추출하기 → 결국은 함수를 잘게 쪼개라 | ||
- 전역변수를 인자로 넘겨라 | ||
- 인자로 전달한 배열을 직접 변경하는 경우 그 함수는 계산이 아니라 액션이 된다. (왜 기존 배열을 변경하면 안되는지에 대한 이유) | ||
- 계산 추출을 단계별로 알아보기 | ||
- 계산 코드를 찾아 빼내기 | ||
- 새 함수에 암묵적 입력과 출력을 찾기 | ||
- 암묵적 입력은 인자로 암묵적 출력은 리턴값으로 바꾸기 (인자와 리턴값은 불변값) | ||
- 비즈니스 요구 사항과 설계를 맞추기 | ||
- 요구 사항에 맞춰 더 나은 추상화 단계 선택하기 | ||
- 코드의 냄새 (중복) | ||
- 암묵적 입력과 출력은 적을 수록 좋다. | ||
- 테스트하기 용이 | ||
- 계산 분류하기 | ||
- 관심사 분리 | ||
- 설계는 엉켜있는 코드를 푸는 것이다 | ||
- 정리 | ||
- 액션은 암묵적인 입력 또는 출력을 가지고 있다. | ||
- 계산의 정의에 따르면 계산은 암묵적인 입력이나 출력이 없어야 한다. | ||
- 공유 변수(전역변수 같은)는 일반적으로 암묵적 입력 또는 출력이 된다. | ||
- 암묵적 입력은 인자로 바꿀 수 있다. | ||
- 암묵적 출력은 리턴값으로 바꿀 수 있다. | ||
- 함수형 원칙을 적용하면 액션은 줄어들고 계산은 늘어난다. | ||
- 후기 | ||
- 뭔가 굉장히 웅장한 것이 나올 줄 알았는데 그 정돈 아니었다.. | ||
- 일반적으로 암묵적 입력과 출력은 인자와 리턴값으로 바꿔 없애는 것이 좋다. | ||
- 설계는 엉켜있는 것을 푸는 것이다. 풀려있는 것은 언제든 다시 합칠 수 있다. | ||
- 엉켜있는 것을 풀어 각 함수가 하나의 일만 하도록 하면, 개념을 중심으로 쉽게 구성할 수 있다. |