가변성 분리
: 함수형 언어에서는 변수의 값이 변경되지 않음 즉 상수!
⇒ 이러한 특성은 경합조건, 교착상태 조건, 동시 업데이트 등 동시성 문제들을 해결해준다.
: 어플리케이션을 제대로 구조화하려면 변수를 변경하는 컴포넌트와 변경하지 않는 컴포넌트를 분리애햐하며
: 가변 컴포넌트는 트랜잭션 메모리를 통해 동시성 문제로부터 가변변수를 보호할 수 있다.
이벤트 소싱
: 상태가 아닌 트랜잭션을 저장하자는 전략
: 생성과 읽기 연산만 일어나는 저장소를 만들자는 전략
: Github같은..
결론
•
구조적 프로그래밍은 제어흐름의 직접적인 전환에 대해 규칙을 부과한다.
•
객체 지향 프로그래밍은 제어흐름의 간접적인 전환에 대해 규칙을 부과한다.
•
함수형 프로그래밍은 변수 할당문에 대해 규칙을 부과한다.
: 어떤 패러다임도 우리의 권한이나 능력에 무언가를 보태지 않으며 그저 우리가 코드를 작성하는 방식의 형태를 한정시킨다.
: 도구는 달라졌고 하드웨어도 변했지만, 소프트웨어의 핵심은 그대로이다.
: 개발된 프로그램은 순차, 분기, 반복, 참조로 구성되며 그 그이상도 이하도 아니다.