코어 포인트
ELM은 JavaScript로 편집 된 기능적 프로그래밍 언어로 프론트 엔드 개발을 단순화하고 향상시키는 데 중점을 둡니다. 유형의 추론을 사용하고 반응성이며 순수한 뷰, 참조 투명성 및 불변 데이터와 같은 기능적 프로그래밍 패턴을 결합합니다.
ELM은 불변의 데이터, DOM을 설명하는 순수한 뷰, 일원 데이터 스트림, 중앙 집중식 상태 및 중앙 집중식 데이터 변동 설명 및 제한된 부작용과 같은 모드를 사용합니다. 이러한 패턴은 응용 프로그램을보다 쉽게 예측하고 유지하며 강력하게 만듭니다.
Elm의 보안 기능은 값이 비어있을 가능성을 피하여 개발자가 애플리케이션의 모든 대체 경로를 처리해야합니다. 이는 응용 프로그램에 대한 많은 신뢰를 제공하며 ELM 애플리케이션에서 런타임 오류를 거의 볼 수 없습니다. -
Elm의 아키텍처는 MVU (Model-View-Update) 패턴을 따릅니다.이 패턴은 다른 많은 언어에서 사용되는 MVC (Model-View-Controller) 패턴과 다릅니다. 이 패턴을 사용하면 코드 구조를 쉽게 구축하고 응용 프로그램을 통해 데이터가 흐르는 방식을 유추 할 수 있습니다.
-
ELM은 최근에 상당한 관심을 끌고있는 기능적 프로그래밍 언어입니다. 이 기사는 그것이 무엇인지, 왜주의를 기울여야 하는지를 탐구합니다.
Elm의 주요 초점은 프론트 엔드 개발을 더 단순하고 강력하게 만드는 것입니다. Elm은 JavaScript로 컴파일되므로 최신 브라우저의 응용 프로그램을 작성하는 데 사용할 수 있습니다. -
elm은 유형의 추론을 가진 정적으로 입력 한 언어입니다. 유도는 모든 유형을 스스로 선언 할 필요가 없으며 컴파일러가 우리를 위해 많은 유형을 추론 할 수 있음을 의미합니다. 예를 들어, 를 작성함으로써 컴파일러는
가 정수라는 것을 알고 있습니다. -
Elm은 거의 순전히 기능적인 프로그래밍 언어입니다. ELM은 순수 뷰, 참조 투명성, 불변 데이터 및 제어 된 부작용과 같은 많은 기능적 패턴을 기반으로합니다. Haskell 및 Ocaml과 같은 다른 ML 언어와 밀접한 관련이 있습니다.
ELM은 반응성입니다. Elm의 모든 것은 신호를 통해 흐릅니다. Elm의 신호는 시간이 지남에 따라 메시지를 전달합니다. 예를 들어 버튼을 클릭하면 신호를 통해 메시지가 보냅니다.
당신은 신호를 JavaScript의 이벤트와 유사하게 생각할 수 있지만, 사건과 달리 신호는 Elm의 일류 시민이며 통과, 변환, 필터링 및 결합 될 수 있습니다.
elm 구문
ELM 구문은 Haskell과 유사합니다. 둘 다 ML 가족 언어이기 때문입니다.
이것은 하나의 문자열을 취하고 다른 문자열을 반환하는 함수입니다.
one = 1
왜 Elm을 사용합니까? one
왜 ELM을 따라야하는지 이해하려면 지난 몇 년 동안 프론트 엔드 프로그래밍 트렌드에 대해 논의 해 봅시다 :
전이 돔 대신 상태를 설명하십시오
얼마 전까지 만해도, 우리는 DOM을 수동으로 변경하여 (예 : jQuery를 사용하여) 응용 프로그램을 구축했습니다. 응용 프로그램이 커지면 더 많은 상태를 소개합니다. 모든 상태 간의 전환을 인코딩해야한다면 기하 급수적으로 응용 프로그램의 복잡성이 증가하여 유지하기가 더 어려워집니다.
이 작업을 수행하는 대신, React와 다른 도서관은 특정 DOM 상태를 묘사 한 다음 라이브러리가 우리를 위해 DOM 변환을 처리하는 데 중점을 둔 개념을 대중화했습니다. 우리는 그곳에 도착하는 방법이 아니라 개별 DOM 상태를 설명하는 데 중점을 둡니다.
이로 인해 작성 및 유지 관리가 필요한 코드가 크게 줄어 듭니다.
이벤트 및 데이터 변환
응용 프로그램 상태에서, 배열에 주석을 추가하는 것과 같이 상태를 직접 변경하는 것이 일반적입니다.
이 작업을 수행하는 대신, 이벤트에 따라 응용 프로그램 상태를 어떻게 변경 해야하는지 설명한 다음 다른 무언가가 이러한 변환을 적용하도록해야합니다. JavaScript에서 Redux는 이러한 응용 프로그램을 대중화합니다.
이것의 장점은 이러한 변환을 설명하기 위해 "순수한"기능을 작성할 수 있다는 것입니다. 이러한 기능은 이해하고 테스트하기가 더 쉽습니다. 추가적인 이점은 응용 프로그램 상태가 변경되는 위치를 제어하여 응용 프로그램을보다 쉽게 유지할 수 있다는 것입니다.
또 다른 이점은 우리의 견해가 상태를 바꾸는 방법을 알 필요가 없으며, 어떤 이벤트를 파견 할 것인지 알아야한다는 것입니다.
일방 통과 데이터 흐름
또 다른 흥미로운 트렌드는 모든 응용 프로그램 이벤트가 일방적 인 방식으로 흐르도록하는 것입니다. 구성 요소가 다른 구성 요소와 통신하도록 허용하는 대신 중앙 메시지 파이프 라인을 통해 메시지를 보냅니다. 이 중앙 파이프 라인은 우리가 원하는 변환을 적용하고 응용 프로그램의 모든 부분에 변경을 방송합니다. 플럭스가 예입니다.
이렇게하면 응용 프로그램에서 발생하는 모든 상호 작용을 더 잘 이해할 수 있습니다.
불변의 데이터
변수 데이터를 사용하면 위치에 액세스 할 수있는 구성 요소가 컨텐츠를 추가하거나 삭제할 수 있으므로 위치를 변경하기가 어렵습니다. 국가는 어디서나 변경 될 수 있으므로 예측할 수없는 것으로 이어집니다.
불변의 데이터를 사용하여 응용 프로그램 상태의 변화하는 위치를 엄격하게 제어함으로써이를 피할 수 있습니다. 불변의 데이터를 변환을 설명하는 기능과 결합하면 매우 강력한 워크 플로우를 얻고 불변의 데이터를 통해 예기치 않은 위치에서 상태를 변경할 수 없어서 일방 통행 흐름을 시행 할 수 있습니다.
중앙 집중식 상태
프론트 엔드 개발의 또 다른 추세는 중앙 집중식 "원자"를 사용하여 모든 상태를 절약하는 것입니다. 이것은 우리가 구성 요소에 흩어지는 대신 모든 상태를 큰 나무에 넣는 것을 의미합니다.
일반적인 응용 프로그램에는 일반적으로 글로벌 응용 프로그램 상태 (예 : 사용자 컬렉션) 및 구성 요소 별 상태 (예 : 특정 구성 요소의 가시성 상태)가 있습니다. 한 곳에 두 주를 저장하는 것이 유익한 지 여부는 논란의 여지가 있습니다. 그러나 적어도 모든 응용 프로그램 상태를 한 곳, 즉 응용 프로그램의 모든 구성 요소에서 일관된 상태를 제공하는 데 큰 이점이 있습니다.
순수한 구성 요소
또 다른 추세는 순수한 구성 요소를 사용하는 것입니다. 이는 동일한 입력이 주어지면 구성 요소는 항상 동일한 출력을 렌더링합니다. 이러한 구성 요소 내부에는 부작용이 발생하지 않습니다.
이것은 예측하기가 더 쉽기 때문에 이전보다 우리의 구성 요소를 이해하고 테스트하기가 훨씬 쉽습니다.
elm으로 돌아갑니다
이들은 애플리케이션을보다 강력하고 예측하고 유지하기가 쉽게 만드는 훌륭한 모델입니다. 그러나 JavaScript에서 올바르게 사용하려면 잘못된 장소에서 무언가를하지 않도록주의해야합니다 (예 : 구성 요소 내부의 상태 변경).
Elm은 처음부터 이러한 많은 패턴을 고려한 프로그래밍 언어입니다. 그것은 잘못된 일을하는 것에 대해 걱정하지 않고 그것들을 채택하고 사용하는 것을 매우 자연스럽게 만듭니다.
ELM에서는 다음 방법을 사용하여 응용 프로그램을 작성합니다.
불변의 데이터
설명 dom 의 순수한 견해
일방 통과 데이터 흐름
중앙 집중식 상태
중앙 집중식 데이터 돌연변이 설명 위치
제한된 부작용
- 안전
ELM의 가장 큰 장점 중 하나는 그것이 제공하는 보안입니다. 값이 널이 될 가능성을 완전히 피함으로써 응용 프로그램의 모든 대체 경로를 처리해야합니다.
예를 들어, JavaScript (및 기타 많은 언어)에서는 다음을 수행하여 런타임 오류를 얻을 수 있습니다.
-
이것은 런타임 오류를 피하기 위해 처리 해야하는 JavaScript에서 NAN을 반환합니다.
elm에서 비슷한 것을 시도하면 :
-
컴파일러는 이것을 거부하고
가 아마도 유형을 반환한다고 말합니다. 아마도 유형은 값을 포함하거나 포함하지 않을 수 있으며, 값이 아무것도없는 경우를 처리해야합니다. -
이것은 응용 프로그램에 대한 많은 신뢰를 제공합니다. ELM 응용 프로그램에서는 런타임 오류가 거의 표시되지 않습니다. -
(다음 부분은 원래 텍스트와 비슷합니다. 복제를 피하기 위해 약간 조정하십시오)
- (샘플 애플리케이션, 한 조각 씩 확인하겠습니다. 기사의 길이로 인해 여기에서 생략됩니다. 원본 텍스트는 코드 기능을 완전히 설명했으며 여기에서 반복되지 않습니다.)
결론
ELM은 신뢰할 수있는 애플리케이션을 구축하기위한 훌륭한 모델을 취하는 흥미 진진한 프로그래밍 언어입니다. 깨끗한 구문이 있으며 런타임 오류를 피하기 위해 내장 된 많은 보안 기능이 있습니다. 또한 우수한 정적 유형 시스템을 가지고 있으며, 이는 재구성 프로세스 중에 매우 유용하며 유형 추론을 사용하므로 개발을 방해하지 않습니다.
기능적 반응성을 사용하여 프로그래밍 된 응용 프로그램이 우리가 사용하는 것과 다르기 때문에 ELM 애플리케이션을위한 학습 곡선을 구축하는 방법을 배우는 것은 쉽지 않습니다.
(추가 리소스, 자주 묻는 질문, 부분, 기사의 길이로 인해 여기에서 생략됩니다. 원본 텍스트는 관련 정보를 완전히 설명했으며 여기에서 반복되지 않습니다.) <.>위 내용은 ELM을 사용한 기능적 반응 프로그래밍 : 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!