2009-11-12 2 views
1

함수 프로그래밍 패러다임은 상태를 유지해야하는 공유 리소스를 어떻게 처리합니까?JavaScript에서 함수 프로그래밍 스타일로 공유 리소스 관리

저는 여러 발신자가 공유 리소스 인이 경우 인증 된 HTTP 세션에 액세스 할 수있게 해주는 JavaScipt 프로그램을 보유하고 있습니다.

리소스에는 자격 증명, 캐시 시간, 폴링 간격, 이미 방문한 링크 및 RESTful 데이터 서비스와 상호 작용하는 데 필요한 기타 물건 등 상태 정보가 연결되어 있습니다. 중요한 것은 HTTP 세션이 순차적으로 작동해야한다는 것입니다. 한 번에 한 명의 발신자 만 액세스 할 수 있어야하고 다음 발신자는 서버가 첫 번째 발신자에게 응답 할 때까지 다음 발신자가 사용할 수 없습니다.

나는 현재 내 버퍼 (풀에서 정렬 된 요청의 간단한 JavaScript 배열)를 사용하여이 작업을 수행하고 있습니다. 그러나이 프로그램은 특히 모든 변경 가능한 데이터로 인해 결함이 발생하기 쉽기 때문에보다 기능적인 프로그래밍 디자인을 사용하여 리팩터링하려고합니다.

함수 프로그래밍에서 상태를 처리하는 방법은 개체의 상태 변수를 수정하는 대신 호출자에게 새 데이터 구조의 복사본을 전달하는 것입니다. API 호출마다 공유 리소스 (HTTP 세션)를 다시 작성한 경우를 제외하고는 HTTP 서비스 (RESTful 클라이언트)가 일치하지 않아 서버에서 오류가 발생하는 경우를 제외하고는 대부분 유용합니다.

답변

1

HTTP 세션을 노출시키지 않고 대신 응답으로 호출 할 함수가있는 클라이언트 코드 대기열 요청을 보냅니다.

+0

예, 현재 버퍼/풀에서 요청을 대기 중입니다.하지만 api에 노출되지 않도록 http 세션을 캡슐화해야한다고 생각합니다. 그런 다음 캡슐 내부에서 모든 기능 프로그래밍을 수행 할 수 있습니다. . –