함수형 프로그래밍으로 관리 가능한 코드를 작성하는 방법은 무엇입니까? 작성중인 코드가 일종의 객체

방금 함수 프로그래밍 (JavaScript 및 Node.js 사용)으로 시작했으며 작성중인 코드가 일종의 객체 지향 패러다임.

OOP를 사용하면 코드를 쉽게 관리하고 확장 할 수있는 방법에 익숙합니다. 그러나 함수형 프로그래밍과 비슷한 규칙을 확신 할 수는 없습니다.



답변

실제로, 큰 기능적 코드베이스는 여전히 일종의 구조 시스템으로 나뉘어 야합니다. OOP에 익숙하다면 수업은 자연스러운 구조 요소로 남아 있습니다. 당신은 “기능적 객체”를 위해 노력합니다 : 개념적으로 관련된 기능들은 클래스에 함께 배치됩니다. 물론 비대화 상태를 피하고 인스턴스 변수에 의존합니다.

구조를 넘어서서 확장, 유지 관리 및 일반화를 위해 기능 세계에서 선호되는 부분 기능 적용과 같은 특정 기술이 있습니다. 그러나 하이브리드 기능 / 개체 모드에서 작업 할 때는 이러한 기회를 인식하는 것이 어려울 수 있습니다. 개인적 으로 하이브리드 모드에서 작업 하는 것이 좋지만 Haskell에서 제공하는 것과 같은보다 순수한 환경에서 공부 하고 게임 하는 것이 좋습니다 .


답변

함수형 프로그래밍 언어는 부분적으로 적용되는 함수, 함수 구성 (이것은 정말 강력하고 내가 좋아하는 것), 매크로, 고차 함수와 같은 고품질 코드를 작성하기 위해 많은 강력한 개념을 사용합니다. 그리고 불변의 데이터 구조를 잊지 마십시오.


답변

FP에 대한 OOP를 포기하지 말고 일부 FP 패턴으로 OOP를 보강하십시오. 콜렉션을 처리해야 할 때마다 좋은 후보이며 맵, 접기 및 축소와 같은 일반적인 FP 메소드 세트를 가리 킵니다. 전자를 광범위하게 사용하는 MVC 프레임 워크 인 underscore.js와 backbone을 살펴보십시오.