Functional C#
도서명:Functional C#
저자/출판사:위스누,앤거로/에이콘출판
쪽수:472쪽
출판일:2019-02-28
ISBN:9791161752754
목차
1장. C#으로 함수형 스타일 맛보기
__함수형 프로그래밍 소개
____정의, 스크립트, 세션 이해하기
____대체와 단순화를 이용한 해석
____함수형 프로그래밍의 함수 이해하기
__함수형 vs 명령형 접근 방식
__C# 컴파일러 준비
__함수형 프로그래밍의 개념
____퍼스트 클래스 함수와 고차 함수
____순수 함수
____재귀 함수
__C#과 함수형 프로그래밍
____수학적 개념을 이용한 함수형 프로그래밍 이해
____함수형 C#에 튜플 적용하기
____C#의 커링
____파이프라인
____메서드 체인
__명령형 코드를 함수형 코드로 바꾸기
____명령형 코드 접근 방식
____함수형 코드 접근 방식
____함수형 프로그래밍의 장점과 단점
__요약
2장. 대리****펴보기
__대리자 소개
____간단한 대리자
____멀티캐스트 대리자
__내장 대리자
____제네릭 대리자
____Action과 Func
__대리자의 가변성 구별
____공변성
____반공변성
__요약
3장. 람다식을 이용한 무명 메서드 표현
__무명 메서드란
____무명 메서드 만들기
____무명 메서드를 인수로 사용하기
____무명 메서드 작성 가이드
____무명 메서드의 장점
__람다식
____무명 메서드를 람다식으로 변환하기
____람다식으로 대리자 형식 만들기
____식 트리와 람다식
__람다식을 이용한 이벤트 구독
____event 키워드
____EventHandler와 EventHandler
__함수형 프로그래밍에서 람다식의 강점
____퍼스트 클래스 함수
____클로저
__요약
4장. 확장 메서드로 객체 기능 확장하기
__확장 메서드와 친해지기
____확장 메서드 만들기
____인텔리센스 연계
__다른 어셈블리의 확장 메서드 호출
____네임스페이스 참조
____기존 네임스페이스 이용
____인터페이스, 컬렉션, object 활용하기
____인터페이스 확장
____컬렉션 확장
____object 확장
__함수형 프로그래밍에서 확장 메서드가 가지는 장점
__확장 메서드의 한계
____정적 클래스 확장
____기존 클래스나 형식의 메서드 구현 수정하기
__요약
5장. LINQ를 이용해 컬렉션 조회하기
__LINQ란 무엇인가
__LINQ의 실행 지연
__플루언트 구문과 질의 식 비교
____LINQ 플루언트 구문
____LINQ 질의 식
__표준 질의 연산자
____필터링
____투영
____조인
____정렬
____그룹화
____집합 연산
____변환 메서드
____요소 연산
__요약
6장. 비동기 프로그래밍으로 함수형 프로그래밍의 반응성 개선하기
__반응형 응용 프로그램 개발
____동기식 프로그램 실행
____스레드 사용하기
____스레드 풀을 이용한 스레드 생성
__비동기 프로그래밍 모델 패턴
____동기식 Read( ) 메서드
____BeginRead( )와 EndRead( )
____LINQ를 이용한 BeginRead( ) 메서드 호출
__태스크 기반 비동기 패턴
____Task와 Task
클래스
____간단한 TAP 모델 적용하기
____WhenAll( ) 확장 메서드
____TAP 모델로 APM 감싸기
__async, await 키워드를 이용한 비동기 프로그래밍
__함수형 프로그래밍의 비동기 함수
__요약
7장. 재귀 호출
__재귀 호출에 대해
____재귀 호출의 동작 방식
____반복을 재귀 호출로 리팩토링하기
__꼬리 재귀
____누적기 전달형
____연속 전달형
____직접 재귀와 간접 재귀
__LINQ Aggregate를 이용한 함수형 재귀 호출
____Aggregate 메서드
__요약
8장. 지연과 캐시 기법을 이용한 코드 최적화
__지연이란
____지연 열거
____지연 평가
____엄격하지 않은 평가
____지연 초기화
____지연의 장단점
__값비싼 자원 캐시하기
____사전 연산
____메모화
__요약
9장. 패턴 이용하기
__함수형 프로그래밍의 패턴 매칭
____패턴 매칭을 이용한 데이터 변환
____패턴 매칭을 위한 분기
____패턴 매칭 간소화
____C# 7의 패턴 매칭
__모나드 설계 패턴 소개
____모나드 M
형식 만들기
____모나드에 제네릭 데이터 형식 구현하기
____Lazy
와 Task
로 모나드 구현하기
____모나드 패턴 규칙
__요약
10장. C#으로 함수형 프로그래밍하기
__함수형 윈도우 폼 개발
____폼 이면의 코드 작성
____명령형 접근 방식의 계산 엔진 구현
__요약
11장. 코딩 모범 사례와 함수형 코드 테스팅
__함수형 C#으로 살펴보는 코딩 모범 사례
____모호한 시그니처 방지
____변경 가능한 클래스를 변경 불가능하게 리팩토링하기
____변경 가능성 및 일시적인 결합의 방지
____부작용에 대한 대응책
__도메인 논리와 가변 셸로 코드 분리하기
____부작용이 있는 코드 확인
____AddRecord( ) 메서드 리팩토링
____RemoveRecord( ) 메서드 리팩토링
____단위 테스트에서 도메인 논리 실행하기
____코드에 가변 셸 추가하기
__요약