일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 쏙쏙 들어오는 함수형코딩
- 나는 flux좋아...
- 리엑트를 다루는 기술
- 에릭 노먼드
- 출처 : 코딩애플
- 흥달쌤
- 함수형 코딩
- 출처 : 한입크기로 잘라먹는 타입스크립트
- https://product.kyobobook.co.kr/detail/S000001952246
- 고등애플
- 쏙속 들어오는 함수형코딩
- 이웅모
- 출처는 코딩애플
- 에릭 노이먼
- 김영한쌤
- 갈길이 멀구나
- 유틸리티타입은 공식문서 자주 보자
- 쏙쏙 들어오는 함수형 코딩
- 에릭노이먼
- 자바스크립트 딥다이브
- 로버트 C마틴
- 출처 : https://www.boostcourse.org/
- 클린코드다시읽기
- 출처 : 자바스크립트 딥다이브
- 쏙쏙들어오는함수형코딩
- 큰돌의 CS책
- 생코님Redux
- 출처 : 코딩앙마
- 오종택개발자님
- 출처는 코딩앙마
- Today
- Total
흰둥씨의 개발장
[#6] 테스트와 함수형프로그래밍 본문
🤍 함수형 프로그래밍과 프로그램 테스트
명령형 코드를 테스트 하려고 한다면...
1. 순수함수와 부수효과가 있는 함수를 분리해서 테스트 가능한 단위를 설정해야 함
2. 전역 데이터에 의존하는 함수를 테스트 할 수 없음
3. 평가순서도 신경써야 함
선언형 코드(함수형)를 테스트 하려고 한다면...
1. 평가해야할 함수를 블랙박스로 보고 "동일한 input에 동일한 output내는지" 보면 됨
2. 비즈니스 로직에 집중해서 테스트 할수 있음
3. 모나드로 결합된 함수에서 순수함수/부수효과있는 함수를 떼어서 테스트할 수 있음
4. 부수효과 있는 함수는 "mocking"을 이용하여 테스트
(mocking? 테스트할 함수와 상호작용하는 객체가 할 일을 미리 정의, 기대식을 충족하지 않으면 불합격하는 식으로 사용)
함수형코드는 명령형 코드보다 "참조투명성" 이 좋다는 점에서 테스트성이 압도적으로 좋다.
**번외 ) 퀵체크 ? 속성을 무작위로 생성하여 프로그램 명세와 속성을 테스트 하는 하스켈 라이브러리
케이스 자동생성해서 테스트 실행해주고 보고서도 생성해준다고 함
🤍 JSCheck를 응용한 속성 기반 테스트
JSCheck ? 퀵체크를 모방한 자바스크립트 라이브러리 (made by 더글러스 크록퍼드) <- 저서 <자바스크립트 핵심가이드>절판됨...
순수함수에만 사용할수 있음
JSC.claim(이름, 술어, 특정자, 분류자);
//이름 : 주장을 서술함
//술어 : 주장을 만족하면 true, 그렇지 않으면 false의 결론을 내는 함수
//특정자 : 입력 매개변수의 형식과 무작위 자료집합의 생성 기준을 서술한 배열
//분류자 (optional) : 해당없음 케이스를 버릴 때 쓰려고 각 테스트 케이스에 붙이는 함수
🤍 블랭킷JS로 프로그램 복잡도를 측정
블랭킷 JS ? 자바스크립트용 코드 실행률 도구
- 소스 파일을 읽고 -> 추적기 라인을 추가해서 코드를 장착하고 -> 테스트 실행기에 걸어 상세 실행률 정보를 산출함
'함수형 프로그래밍 > 함수형 자바스크립트' 카테고리의 다른 글
[#8] 비동기 이벤트와 데이터 관리 (0) | 2023.09.17 |
---|---|
[#7] 함수형 최적화 (4) | 2023.09.14 |
[#5] 복잡성을 줄이는 디자인 패턴 (0) | 2023.09.06 |
[#4] 재사용 가능한, 모듈적인 코드로 (0) | 2023.09.05 |
[#3] 자료구조는 적게, 일은 많이 (0) | 2023.09.01 |