2017-04-07 1 views
7

C#의 함수 프로그래밍 원리를 적용하여 구현 된 시스템 디자인을 캡처해야합니다. 이를위한 요구 사항은 비공식적 인 영어가 아닌 디자인을 기술하기 위해 모든 종류의 형식주의를 사용하는 것입니다. 또한 UML의 사용은 금지되어 있습니다.기능 패러다임 디자인

이러한 목적으로 F #을 사용하려고했지만 F #을 사용하여 모든 것을 다시 구현하지 않고 추상화 수준을 높게 유지하는 데 어려움이 있습니다. 기능적인 디자인을 설명하는 방법을 어떤 아키텍처 프레임 워크/연습

  1. 있습니까 :

    그래서 나는 몇 가지 질문이?

  2. 구현 세부 정보없이 메소드를 공개하려면 어떻게해야합니까?

  3. F #에서 구성 요소 인터페이스를 만드는 방법은 무엇입니까?

  4. OO에서는 대개 아키텍처에 대한보기가 다릅니다 (예 : 4 + 1). 기능적 디자인을위한 그런 것이 있습니까? 경우 1

답변

0

: 나는의 알고하지 않는 것이하지만 개발자

2의

의 아키텍처 종류 아니다 : 아래는 내가 사용하는 기술과 같은 많이있다.

3 : 구성 요소 인터페이스 란 무엇입니까?

4 : 4 + 1은 기능적 언어에 유효해야하며 언어와 독립적이어야합니다.

일반적으로 고차원 기능, 데이터 및 동작의 분리에보다 중점을 둔 기능 디자인은 가변성 및 불리한 부작용을 "위쪽으로"선호합니다 (IO Monad가 이에 대한 예입니다).

1

TLDR 모두 구성에 관한 것입니다.

HKT를 사용해야하는 모든 곳 (일반 제네릭으로 생각)은 라이브러리 디자인을위한 대부분의 자산입니다. 순수한 기능 프로그래밍을 할 때 GO4 사고 방식이나 새로운 전문 용어와 근본적으로 다릅니다 엔터프라이즈 프로그래밍을위한 이번 주.

하스켈을 배우고 Monads, Functors, Applicatives, Monoids 등을 배우십시오 (지금까지 9000 회 이상 사용하지 않았 으면 두려워하지 마십시오). 그런 다음 Free Monad와 같은 물건을보고, 보일러 플레이트, 렌즈, Typeclasses 및 MTL 스타일의 변압기를 사용하면 더 나은 라이브러리 프로그래머가됩니다.