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


14

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

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


4
JavaScript는 객체 지향 언어이므로 Node.js를 사용하여 OOP 기술을 사용하십시오.
Jonas

5
기능을 시도하십시오. 그것들은 거의 모든 문제를 해결할 것입니다.
tp1

4
여기 노드 소스 코드는 단정하고 깔끔하기 때문에 관리 유지에 큰 자원입니다 : nodeguide.com/style.html
다니엘 브래들리

2
내가 아는 한 JavaScript가 가진 유일한 기능적 프로그래밍 기능은 람다 (보다 정확하게는 이름없는 함수)와 함수 전달입니다. 함수형 프로그래밍을 배우려면 Haskell 또는 F # / OCaml 또는 Scala 또는 Lisp와 같은 것을 살펴 봐야합니다.
Rei Miyasaka

답변:


8

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

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


2

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


1

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.