From 01478d7be6ed9f64572dc514a7fc54273c7596bd Mon Sep 17 00:00:00 2001 From: hyesungoh Date: Mon, 29 Apr 2024 21:23:36 +0900 Subject: [PATCH 1/2] chore --- ...1:\352\271\200\353\217\231\352\267\234.md" | 28 +++++++++++ ...2:\352\271\200\353\217\231\352\267\234.md" | 20 ++++++++ ...3:\352\271\200\353\217\231\352\267\234.md" | 27 +++++++++++ ...4:\352\271\200\353\217\231\352\267\234.md" | 48 +++++++++++++++++++ ...5:\352\271\200\353\217\231\352\267\234.md" | 18 +++++++ 5 files changed, 141 insertions(+) create mode 100644 "\354\261\225\355\204\260_1/\354\261\225\355\204\2601:\352\271\200\353\217\231\352\267\234.md" create mode 100644 "\354\261\225\355\204\260_2/\354\261\225\355\204\2602:\352\271\200\353\217\231\352\267\234.md" create mode 100644 "\354\261\225\355\204\260_3/\354\261\225\355\204\2603:\352\271\200\353\217\231\352\267\234.md" create mode 100644 "\354\261\225\355\204\260_4/\354\261\225\355\204\2604:\352\271\200\353\217\231\352\267\234.md" create mode 100644 "\354\261\225\355\204\260_5/\354\261\225\355\204\2605:\352\271\200\353\217\231\352\267\234.md" diff --git "a/\354\261\225\355\204\260_1/\354\261\225\355\204\2601:\352\271\200\353\217\231\352\267\234.md" "b/\354\261\225\355\204\260_1/\354\261\225\355\204\2601:\352\271\200\353\217\231\352\267\234.md" new file mode 100644 index 0000000..fb9fe81 --- /dev/null +++ "b/\354\261\225\355\204\260_1/\354\261\225\355\204\2601:\352\271\200\353\217\231\352\267\234.md" @@ -0,0 +1,28 @@ +# 챕터 1: 쏙쏙 들어오는 함수형 코딩에 오신 것을 환영합니다. + +#스터디-쏙쏙들어오는함수형코딩 + +함수형 프로그래밍은 아래와 같은 정의를 가지고 있다. + +- 수학 함수를 사용하고 부수 효과를 피하는 것이 특징인 프로그래밍 패러다임 +- 부수 효과 없이 순수 함수만 사용하는 프로그래밍 스타일 + +**부수 효과**는 함수가 리턴값 이외에 하는 모든 일을 말한다. 대부분의 함수형 프로그래머는 “불필요한” 부수 효과를 가능한 사용하지 않으려고 합니다. **순수 함수**는 인자에만 의존하고 부수 효과가 없는 함수이다. 수학에서의 함수도 비슷하기에 수학 함수라고 볼 수 있다. + +### 실용적인 측면에서 함수형 프로그래밍 정의의 문제점 + +- 부수 효과는 필요하다. +- 함수형 프로그래밍은 부수 효과를 잘 다룰 수 있다. +- 함수형 프로그래밍은 실용적이다. + +### 액션, 계산, 데이터 + +함수형 프로그래밍에서는 액션, 계산, 데이터를 구분하는일이 가장 중요하다. + +**액션**은 호출하는 시점과 횟수에 의존한다. 호출할 때 주의가 필요하다. **계산**은 호출 시점이나 횟수는 관계없지만, 실행하기 전 까지 어떻게 동작할 지 알 수 없다. **데이터**는 계산과 똑같지만 실행할 수 없다는 차이점이 있다. + +요즘 유행하는 분산 시스템에 잘 어울리는 점이 있다. 실행 시점과 횟수에 의존하는 것을 데이터와 계산으로 변경하거나, 액션을 격리 시키면 코드를 이해하기 더 쉽게 만들 수 있다. + +### 일급 추상 + +함수형 프로그래밍에서 액션, 계산, 데이터와 같이 중요한 개념이다. diff --git "a/\354\261\225\355\204\260_2/\354\261\225\355\204\2602:\352\271\200\353\217\231\352\267\234.md" "b/\354\261\225\355\204\260_2/\354\261\225\355\204\2602:\352\271\200\353\217\231\352\267\234.md" new file mode 100644 index 0000000..f000c26 --- /dev/null +++ "b/\354\261\225\355\204\260_2/\354\261\225\355\204\2602:\352\271\200\353\217\231\352\267\234.md" @@ -0,0 +1,20 @@ +# 챕터 2: 현실에서의 함수형 사고 + +#스터디-쏙쏙들어오는함수형코딩 + +### 2-1. 파트 1: 액션과 계산, 데이터 + +계층형 설계 원칙이 어떤 것 인지 살펴본다. + +계층형 설계는 일반적으로 비즈니스 규칙, 도메인 규칙, 기술 스택 계층으로 나눕니다. 계층형 설계로 만든 코드는 테스트, 재사용, 유지보수가 쉽습니다. + +```의견 & 생각 +예제 이해가 힘드네요 ㅠㅠ.. 혹시 이해 하신분 있나요?? +``` + +### 2-2. 파트 2: 일급 추상 + +타임라인 다이어그램과 일급 추상에 대해 알아본다. + +타임라인 다이어그램을 사용하면 액션이 시간 순서에 따라 어떻게 실행되는지 볼 수 있다. 기본적으로 타임라인은 서로 순서를 맞출 수 있는 기능이 없다. +타임라인 커팅을 통해 여러 타임라인이 동시에 진행될 때 순서를 맞출 수 있다. 타임라인 커팅은 고차 동작으로 구현한다. diff --git "a/\354\261\225\355\204\260_3/\354\261\225\355\204\2603:\352\271\200\353\217\231\352\267\234.md" "b/\354\261\225\355\204\260_3/\354\261\225\355\204\2603:\352\271\200\353\217\231\352\267\234.md" new file mode 100644 index 0000000..28b7aaa --- /dev/null +++ "b/\354\261\225\355\204\260_3/\354\261\225\355\204\2603:\352\271\200\353\217\231\352\267\234.md" @@ -0,0 +1,27 @@ +# 챕터 3: 액션과 계산, 데이터의 차이를 알기 + +#스터디-쏙쏙들어오는함수형코딩 + +## 1. 액션과 계산, 데이터 + +| 기능 | 설명 | +| ------ | --------------------------------------------------------------------------------------------------------------- | +| 액션 | 실행 시점과 횟수에 의존합니다.
“부수효과” “부수효과가 있는 함수” “순수하지 않은 함수” 라고 부르기도 합니다. | +| 계산 | 실행 시점과 횟수에 의존합니다.
“부수효과” “부수효과가 있는 함수” “순수하지 않은 함수” 라고 부르기도 합니다. | +| 데이터 | 이벤트에 대한 사실 | + +문제에 대해 생각하거나, 코딩할 때, 코드를 읽을 때 액션, 계산, 데이터로 구분하여 고민해볼 수 있습니다. + +> 계산은 계산을 호출하는 코드를 계산 결과로 바꿀 수 있기 때문에 **참조투영** 합니다. + +## 2. 액션과 계산, 데이터는 어디에나 적용할 수 있습니다. + +- 액션과 계산, 데이터는 어디에나 적용할 수 있습니다. +- 액션 안에는 계산과 데이터, 또 다른 다른 액션이 숨어 있을지도 모릅니다. +- 계산은 더 작은 계산과 데이터로 나누고 연결할 수 있습니다. +- 데이터는 데이터만 조합할 수 있습니다. +- 계산은 때로 “우리 머릿속에서” 일어납니다. + +```의견 & 생각 +1장 부터 비슷한 내용을 예제만 다르게 해서 설명하는 것 같은데... 중요해서 그런거겠죠?? +``` diff --git "a/\354\261\225\355\204\260_4/\354\261\225\355\204\2604:\352\271\200\353\217\231\352\267\234.md" "b/\354\261\225\355\204\260_4/\354\261\225\355\204\2604:\352\271\200\353\217\231\352\267\234.md" new file mode 100644 index 0000000..62a7cc4 --- /dev/null +++ "b/\354\261\225\355\204\260_4/\354\261\225\355\204\2604:\352\271\200\353\217\231\352\267\234.md" @@ -0,0 +1,48 @@ +# 챕터 4: 액션에서 계산 빼내기 + +#스터디-쏙쏙들어오는함수형코딩 + +## 테스트를 더 쉽게 하는 방법 + +- DOM 업데이트와 비즈니스 규칙은 분리 되어야 합니다. +- 전역변수가 없어야 합니다. + +## 재사용하기 쉽게 만드는 방법 + +- 전역변수에 의존하지 않아야 합니다. +- DOM을 사용할 수 없는 곳에서 실행된다고 가정하면 안됩니다. + +## 액션과 계산, 데이터를 구분하기 + +- 변경 가능한 전역변수는 “액션”입니다. +- 어떤 함수 안에 액션이 하나만 있어도 그 함수 전체가 액션이 됩니다. + +## 함수의 입력과 출력 + +- 입력은 함수가 계산을 하기 위한 외부 정보 입니다. 출력은 함수 밖으로 나는 정보나 어떤 동작 입니다. +- 전역변수를 읽고 변경하거나, 콘솔을 찍는 것은 암묵적인 입력이나 출력 입니다. +- 함수에 암묵적인 입력과 출력이 있으면 액션이 됩니다. 반대로 암묵적 입력과 출력을 제거하면 계산이 됩니다. +- 함수형 프로그래밍에서 암묵적 입력과 출력을 “부수효과”라고 부릅니다. + +## 테스트와 재사용성은 입출력과 관련 있습니다. + +- 암묵적 입력과 출력을 없애야 합니다. + +## 액션에서 계산 빼내기 + +- 서브루틴 추출하기를 이용한 리팩토링을 진행하기 +- 암묵적 입력/출력을 명시적 입력/출력으로 변경하기 + +## 액션에서 또 다른 계산 빼내기 + +- 전역 변수 변경을 서브루틴으로 빼내고, 전역변수를 인자로 받아 거기에 업데이트 + +```생각 & 의견 +역할이 명확히 분리되고 함수형 프로그래밍 관점에서 액션이 많이 줄어든 것 같긴합니다. +평소에 코드 분리하면서 이런식으로 많이 분리하려고 노력했던 것 같은데 확실히 책에서 이야기 해주는 +"액션" "계산" "데이터" 로 분리해서 생각하니 엄청 편하게 다가오네요 + +다만,오히려 너무 많은 서브루틴을 통한 코드 파편화 +이로인한 너무많은 입력을 받아야 되는 것 +이런 문제들이 한켠으로는 생각이드는데 어떻게 생각하시나요? +``` diff --git "a/\354\261\225\355\204\260_5/\354\261\225\355\204\2605:\352\271\200\353\217\231\352\267\234.md" "b/\354\261\225\355\204\260_5/\354\261\225\355\204\2605:\352\271\200\353\217\231\352\267\234.md" new file mode 100644 index 0000000..1b8b89f --- /dev/null +++ "b/\354\261\225\355\204\260_5/\354\261\225\355\204\2605:\352\271\200\353\217\231\352\267\234.md" @@ -0,0 +1,18 @@ +# 챕터 5: 더 좋은 액션 만들기 + +#스터디-쏙쏙들어오는함수형코딩 + +## 원칙: 암묵적 입력과 출력을 적을수록 좋습니다. + +- 암묵적 입력 (전역변수 등..)을 최대한 인자로 받아서 사용하기 + +## 계산 분류하기 + +- 의미에 따라 계산을 분리하자 (계층분리) + +## 원칙: 설계는 엉켜있는 코드를 푸는 것이다. + +- 크고 복잡한 것 보다 작고 분리된 것이 조합하기도 쉽다. +- 합수는 작으면 작을수록 재사용하기 쉽다 +- 작은 함수는 이해할 수 있고 유지보수 하기 쉽다 +- 작은 함수는 테스트하기 좋다. From 5c98bca7096daf13bbc2d7eaef77704c4642c78b Mon Sep 17 00:00:00 2001 From: hyesungoh Date: Mon, 29 Apr 2024 21:23:41 +0900 Subject: [PATCH 2/2] chore --- ...51\341\206\274\341\204\200\341\205\262.md" | 28 ----------- ...51\341\206\274\341\204\200\341\205\262.md" | 20 -------- ...51\341\206\274\341\204\200\341\205\262.md" | 27 ----------- ...51\341\206\274\341\204\200\341\205\262.md" | 48 ------------------- ...51\341\206\274\341\204\200\341\205\262.md" | 18 ------- 5 files changed, 141 deletions(-) delete mode 100644 "\354\261\225\355\204\260_1/\341\204\216\341\205\242\341\206\270\341\204\220\341\205\2451:\341\204\200\341\205\265\341\206\267\341\204\203\341\205\251\341\206\274\341\204\200\341\205\262.md" delete mode 100644 "\354\261\225\355\204\260_2/\341\204\216\341\205\242\341\206\270\341\204\220\341\205\2452:\341\204\200\341\205\265\341\206\267\341\204\203\341\205\251\341\206\274\341\204\200\341\205\262.md" delete mode 100644 "\354\261\225\355\204\260_3/\341\204\216\341\205\242\341\206\270\341\204\220\341\205\2453:\341\204\200\341\205\265\341\206\267\341\204\203\341\205\251\341\206\274\341\204\200\341\205\262.md" delete mode 100644 "\354\261\225\355\204\260_4/\341\204\216\341\205\242\341\206\270\341\204\220\341\205\2454:\341\204\200\341\205\265\341\206\267\341\204\203\341\205\251\341\206\274\341\204\200\341\205\262.md" delete mode 100644 "\354\261\225\355\204\260_5/\341\204\216\341\205\242\341\206\270\341\204\220\341\205\2455:\341\204\200\341\205\265\341\206\267\341\204\203\341\205\251\341\206\274\341\204\200\341\205\262.md" diff --git "a/\354\261\225\355\204\260_1/\341\204\216\341\205\242\341\206\270\341\204\220\341\205\2451:\341\204\200\341\205\265\341\206\267\341\204\203\341\205\251\341\206\274\341\204\200\341\205\262.md" "b/\354\261\225\355\204\260_1/\341\204\216\341\205\242\341\206\270\341\204\220\341\205\2451:\341\204\200\341\205\265\341\206\267\341\204\203\341\205\251\341\206\274\341\204\200\341\205\262.md" deleted file mode 100644 index fb9fe81..0000000 --- "a/\354\261\225\355\204\260_1/\341\204\216\341\205\242\341\206\270\341\204\220\341\205\2451:\341\204\200\341\205\265\341\206\267\341\204\203\341\205\251\341\206\274\341\204\200\341\205\262.md" +++ /dev/null @@ -1,28 +0,0 @@ -# 챕터 1: 쏙쏙 들어오는 함수형 코딩에 오신 것을 환영합니다. - -#스터디-쏙쏙들어오는함수형코딩 - -함수형 프로그래밍은 아래와 같은 정의를 가지고 있다. - -- 수학 함수를 사용하고 부수 효과를 피하는 것이 특징인 프로그래밍 패러다임 -- 부수 효과 없이 순수 함수만 사용하는 프로그래밍 스타일 - -**부수 효과**는 함수가 리턴값 이외에 하는 모든 일을 말한다. 대부분의 함수형 프로그래머는 “불필요한” 부수 효과를 가능한 사용하지 않으려고 합니다. **순수 함수**는 인자에만 의존하고 부수 효과가 없는 함수이다. 수학에서의 함수도 비슷하기에 수학 함수라고 볼 수 있다. - -### 실용적인 측면에서 함수형 프로그래밍 정의의 문제점 - -- 부수 효과는 필요하다. -- 함수형 프로그래밍은 부수 효과를 잘 다룰 수 있다. -- 함수형 프로그래밍은 실용적이다. - -### 액션, 계산, 데이터 - -함수형 프로그래밍에서는 액션, 계산, 데이터를 구분하는일이 가장 중요하다. - -**액션**은 호출하는 시점과 횟수에 의존한다. 호출할 때 주의가 필요하다. **계산**은 호출 시점이나 횟수는 관계없지만, 실행하기 전 까지 어떻게 동작할 지 알 수 없다. **데이터**는 계산과 똑같지만 실행할 수 없다는 차이점이 있다. - -요즘 유행하는 분산 시스템에 잘 어울리는 점이 있다. 실행 시점과 횟수에 의존하는 것을 데이터와 계산으로 변경하거나, 액션을 격리 시키면 코드를 이해하기 더 쉽게 만들 수 있다. - -### 일급 추상 - -함수형 프로그래밍에서 액션, 계산, 데이터와 같이 중요한 개념이다. diff --git "a/\354\261\225\355\204\260_2/\341\204\216\341\205\242\341\206\270\341\204\220\341\205\2452:\341\204\200\341\205\265\341\206\267\341\204\203\341\205\251\341\206\274\341\204\200\341\205\262.md" "b/\354\261\225\355\204\260_2/\341\204\216\341\205\242\341\206\270\341\204\220\341\205\2452:\341\204\200\341\205\265\341\206\267\341\204\203\341\205\251\341\206\274\341\204\200\341\205\262.md" deleted file mode 100644 index f000c26..0000000 --- "a/\354\261\225\355\204\260_2/\341\204\216\341\205\242\341\206\270\341\204\220\341\205\2452:\341\204\200\341\205\265\341\206\267\341\204\203\341\205\251\341\206\274\341\204\200\341\205\262.md" +++ /dev/null @@ -1,20 +0,0 @@ -# 챕터 2: 현실에서의 함수형 사고 - -#스터디-쏙쏙들어오는함수형코딩 - -### 2-1. 파트 1: 액션과 계산, 데이터 - -계층형 설계 원칙이 어떤 것 인지 살펴본다. - -계층형 설계는 일반적으로 비즈니스 규칙, 도메인 규칙, 기술 스택 계층으로 나눕니다. 계층형 설계로 만든 코드는 테스트, 재사용, 유지보수가 쉽습니다. - -```의견 & 생각 -예제 이해가 힘드네요 ㅠㅠ.. 혹시 이해 하신분 있나요?? -``` - -### 2-2. 파트 2: 일급 추상 - -타임라인 다이어그램과 일급 추상에 대해 알아본다. - -타임라인 다이어그램을 사용하면 액션이 시간 순서에 따라 어떻게 실행되는지 볼 수 있다. 기본적으로 타임라인은 서로 순서를 맞출 수 있는 기능이 없다. -타임라인 커팅을 통해 여러 타임라인이 동시에 진행될 때 순서를 맞출 수 있다. 타임라인 커팅은 고차 동작으로 구현한다. diff --git "a/\354\261\225\355\204\260_3/\341\204\216\341\205\242\341\206\270\341\204\220\341\205\2453:\341\204\200\341\205\265\341\206\267\341\204\203\341\205\251\341\206\274\341\204\200\341\205\262.md" "b/\354\261\225\355\204\260_3/\341\204\216\341\205\242\341\206\270\341\204\220\341\205\2453:\341\204\200\341\205\265\341\206\267\341\204\203\341\205\251\341\206\274\341\204\200\341\205\262.md" deleted file mode 100644 index 28b7aaa..0000000 --- "a/\354\261\225\355\204\260_3/\341\204\216\341\205\242\341\206\270\341\204\220\341\205\2453:\341\204\200\341\205\265\341\206\267\341\204\203\341\205\251\341\206\274\341\204\200\341\205\262.md" +++ /dev/null @@ -1,27 +0,0 @@ -# 챕터 3: 액션과 계산, 데이터의 차이를 알기 - -#스터디-쏙쏙들어오는함수형코딩 - -## 1. 액션과 계산, 데이터 - -| 기능 | 설명 | -| ------ | --------------------------------------------------------------------------------------------------------------- | -| 액션 | 실행 시점과 횟수에 의존합니다.
“부수효과” “부수효과가 있는 함수” “순수하지 않은 함수” 라고 부르기도 합니다. | -| 계산 | 실행 시점과 횟수에 의존합니다.
“부수효과” “부수효과가 있는 함수” “순수하지 않은 함수” 라고 부르기도 합니다. | -| 데이터 | 이벤트에 대한 사실 | - -문제에 대해 생각하거나, 코딩할 때, 코드를 읽을 때 액션, 계산, 데이터로 구분하여 고민해볼 수 있습니다. - -> 계산은 계산을 호출하는 코드를 계산 결과로 바꿀 수 있기 때문에 **참조투영** 합니다. - -## 2. 액션과 계산, 데이터는 어디에나 적용할 수 있습니다. - -- 액션과 계산, 데이터는 어디에나 적용할 수 있습니다. -- 액션 안에는 계산과 데이터, 또 다른 다른 액션이 숨어 있을지도 모릅니다. -- 계산은 더 작은 계산과 데이터로 나누고 연결할 수 있습니다. -- 데이터는 데이터만 조합할 수 있습니다. -- 계산은 때로 “우리 머릿속에서” 일어납니다. - -```의견 & 생각 -1장 부터 비슷한 내용을 예제만 다르게 해서 설명하는 것 같은데... 중요해서 그런거겠죠?? -``` diff --git "a/\354\261\225\355\204\260_4/\341\204\216\341\205\242\341\206\270\341\204\220\341\205\2454:\341\204\200\341\205\265\341\206\267\341\204\203\341\205\251\341\206\274\341\204\200\341\205\262.md" "b/\354\261\225\355\204\260_4/\341\204\216\341\205\242\341\206\270\341\204\220\341\205\2454:\341\204\200\341\205\265\341\206\267\341\204\203\341\205\251\341\206\274\341\204\200\341\205\262.md" deleted file mode 100644 index 62a7cc4..0000000 --- "a/\354\261\225\355\204\260_4/\341\204\216\341\205\242\341\206\270\341\204\220\341\205\2454:\341\204\200\341\205\265\341\206\267\341\204\203\341\205\251\341\206\274\341\204\200\341\205\262.md" +++ /dev/null @@ -1,48 +0,0 @@ -# 챕터 4: 액션에서 계산 빼내기 - -#스터디-쏙쏙들어오는함수형코딩 - -## 테스트를 더 쉽게 하는 방법 - -- DOM 업데이트와 비즈니스 규칙은 분리 되어야 합니다. -- 전역변수가 없어야 합니다. - -## 재사용하기 쉽게 만드는 방법 - -- 전역변수에 의존하지 않아야 합니다. -- DOM을 사용할 수 없는 곳에서 실행된다고 가정하면 안됩니다. - -## 액션과 계산, 데이터를 구분하기 - -- 변경 가능한 전역변수는 “액션”입니다. -- 어떤 함수 안에 액션이 하나만 있어도 그 함수 전체가 액션이 됩니다. - -## 함수의 입력과 출력 - -- 입력은 함수가 계산을 하기 위한 외부 정보 입니다. 출력은 함수 밖으로 나는 정보나 어떤 동작 입니다. -- 전역변수를 읽고 변경하거나, 콘솔을 찍는 것은 암묵적인 입력이나 출력 입니다. -- 함수에 암묵적인 입력과 출력이 있으면 액션이 됩니다. 반대로 암묵적 입력과 출력을 제거하면 계산이 됩니다. -- 함수형 프로그래밍에서 암묵적 입력과 출력을 “부수효과”라고 부릅니다. - -## 테스트와 재사용성은 입출력과 관련 있습니다. - -- 암묵적 입력과 출력을 없애야 합니다. - -## 액션에서 계산 빼내기 - -- 서브루틴 추출하기를 이용한 리팩토링을 진행하기 -- 암묵적 입력/출력을 명시적 입력/출력으로 변경하기 - -## 액션에서 또 다른 계산 빼내기 - -- 전역 변수 변경을 서브루틴으로 빼내고, 전역변수를 인자로 받아 거기에 업데이트 - -```생각 & 의견 -역할이 명확히 분리되고 함수형 프로그래밍 관점에서 액션이 많이 줄어든 것 같긴합니다. -평소에 코드 분리하면서 이런식으로 많이 분리하려고 노력했던 것 같은데 확실히 책에서 이야기 해주는 -"액션" "계산" "데이터" 로 분리해서 생각하니 엄청 편하게 다가오네요 - -다만,오히려 너무 많은 서브루틴을 통한 코드 파편화 -이로인한 너무많은 입력을 받아야 되는 것 -이런 문제들이 한켠으로는 생각이드는데 어떻게 생각하시나요? -``` diff --git "a/\354\261\225\355\204\260_5/\341\204\216\341\205\242\341\206\270\341\204\220\341\205\2455:\341\204\200\341\205\265\341\206\267\341\204\203\341\205\251\341\206\274\341\204\200\341\205\262.md" "b/\354\261\225\355\204\260_5/\341\204\216\341\205\242\341\206\270\341\204\220\341\205\2455:\341\204\200\341\205\265\341\206\267\341\204\203\341\205\251\341\206\274\341\204\200\341\205\262.md" deleted file mode 100644 index 1b8b89f..0000000 --- "a/\354\261\225\355\204\260_5/\341\204\216\341\205\242\341\206\270\341\204\220\341\205\2455:\341\204\200\341\205\265\341\206\267\341\204\203\341\205\251\341\206\274\341\204\200\341\205\262.md" +++ /dev/null @@ -1,18 +0,0 @@ -# 챕터 5: 더 좋은 액션 만들기 - -#스터디-쏙쏙들어오는함수형코딩 - -## 원칙: 암묵적 입력과 출력을 적을수록 좋습니다. - -- 암묵적 입력 (전역변수 등..)을 최대한 인자로 받아서 사용하기 - -## 계산 분류하기 - -- 의미에 따라 계산을 분리하자 (계층분리) - -## 원칙: 설계는 엉켜있는 코드를 푸는 것이다. - -- 크고 복잡한 것 보다 작고 분리된 것이 조합하기도 쉽다. -- 합수는 작으면 작을수록 재사용하기 쉽다 -- 작은 함수는 이해할 수 있고 유지보수 하기 쉽다 -- 작은 함수는 테스트하기 좋다.