7 월 1 일, 2019

자바 스크립트 개발자는 요즘 함수형 프로그래밍을 꽤 많이 채택하고 있으며 순수한 함수를 작성하는 데 큰 옹호가 있습니다. 자,순수한 기능은 무엇입니까? 얼마 전,나는 순수 함수의 개념을 배웠고 놀랍게도,나는 그것에 대한 용어가 있다는 것을 깨닫지 않고 이미 많은 순수 함수를 작성하고있었습니다.

순수 함수

순수 함수의 자격은 무엇입니까?

함수는 다음 규칙을 준수하는 경우 순수한 것으로 간주됩니다:

  1. 동일한 인수가 전달되면 함수는 항상 동일한 출력을 반환합니다.
  2. 이 함수는 부작용을 일으키지 않습니다.

우리는 과거에 의도적으로 또는 무의식적으로 순수한 함수를 작성했습니다.
두 개의 입력 인수가 주어진 두 숫자의 합을 반환하는 아래의 순수 함수를 살펴보십시오.

function sumOfNumbers(a, b) { return a + b;}

동일한 입력 인수가 전달되면 이 함수의 출력은 항상 동일하게 유지됩니다. 충분히 간단합니다. 순수 함수는 항상 예측 가능한 동작을 갖는 간단한 빌딩 블록입니다. 따라서 그들은 외부 영향없이 항상 동일한 예측 가능한 출력을 반환합니다.

다음은 불순한 함수가 어떻게 생겼는지에 대한 간단한 예입니다.

var value = 5;function impure(arg) { return value + 2 + 3;}

여기서 함수는 전달 된 인수를 사용하지 않기 때문에 불순한 것으로 간주됩니다. 대신 변경 될 수있는 외부 값을 사용합니다. 따라서 외부 간섭/부작용으로 인해 기능을 불순하게 만듭니다.

좋아,부작용에 대한 요구 사항 2 에 대해 이야기 해 봅시다.

부작용은 무엇입니까?

부작용은 기능이 외부 세계와 상호 작용할 때마다 발생합니다.

일반적인 부작용의 몇 가지 예는 다음과 같습니다:

  • 콘솔이 화면
  • 날짜 조작에 로그합니다.이제()현재 날짜/시간을 얻으려면
  • 비동기 호출 대기/
  • 수학을 해결할 약속을 기다리고 있습니다.랜덤()임의의 숫자를 생성하는

글쎄,당신은 우리가 부작용없이 모든 시간을 함수를 작성할 수있는 방법을 궁금해 할 수 있습니다. 그것은 모두 부작용을 피하기 위해 매우 도전. 내가 말하는 것은 함수가 순수한 것으로 한정되기 위해서는 이름에서 알 수 있듯이 부작용이 없어야한다는 것입니다.

순수 함수를 작성하면 무엇을 얻을 수 있습니까?

순수 함수

그림 제공:Picpedia.Org

좋아,우리는 길에서 정의를 얻었다. 너는 지금 이다 이득 이는 것 묻을지도 모른다.

테스트는 쉽습니다

상상해보십시오,당신은 한 가지만하는 순수한 함수를 가지고 있습니다. 그들은 외부 부작용이 없으며 항상 예측 가능한 출력을 반환합니다. 이러한 함수는 종속성과 예측할 수없는 동작이 많은 함수보다 훨씬 쉽게 테스트 할 수 있습니다. 깨끗하고 테스트 가능한 코드를 작성하면 코드 품질을 크게 향상시킬 수 있습니다.

디버깅 코드는 순수한 함수를 사용하는

의 고통이 아니며,디버깅 코드는 불순한 함수를 디버깅하는 것과 비교하여 큰 고통이 아닙니다. 문제 또는 버그가 발생하고 순수 함수로 좁혀진 경우 문제를 찾기 위해 해당 함수의 범위를 벗어날 필요가 없다는 것을 안심할 수 있습니다. 따라서 개발자의 디버깅 환경이 크게 향상됩니다.

메모 작성 순수한 함수로 성능

을 향상시키기 위해 주어진 입력에 대해 동일한 출력을 반환 할 수 있습니다. 이 메모의 가능성을 만듭니다. 동일한 입력이 함수에 전달되면 캐시에서 결과를 가져와 앱을 더 빠르게 수행 할 수 있습니다. 캐싱은 수많은 리소스를 절약하고 성능을 향상시킬 수 있습니다. 그리고 순수한 함수를 캐싱하는 것은 부작용없이 예측 가능하기 때문에 걱정없이 수행 할 수 있습니다.

유지 보수 가능한 코드,

리팩터링하기 쉽습니다. 너무 깨끗하고 테스트 및 디버깅이 용이 한 코드를 사용하면 유지 보수가 가능한 코드도 끝납니다. 이 마음에 미래를 유지하는 중요한 측면이다. 몇 년/몇 달 후 소프트웨어에 추가 기능 및 리팩토링이 있어야하는 경우 순수한 함수로 구성된 코드는 매우 직관적으로 다시 고려해야합니다. 그들은 개발자가 걱정해야 할 외부 부작용이 없습니다. 팀의 새로운 개발자조차도 쉽게이 작업을 수행 할 수 있습니다.

순수 함수를 사용하는 실제 예제

돌아 오는 것은 매우 인기가 있으며 우리 중 대부분은 일부 프로젝트에서 사용했거나 들어 봤습니다. 감속기는 돌아 오는 패턴의 일부이며 중요한 역할을하는 기능입니다. 돌아 오는 감속기의 가장 중요한 특징은 순수한 기능이라는 것입니다.

감속기는 상태 및 조치를 취하고 새 상태를 반환하는 순수한 함수입니다.

function(state, action) => newState

감속기는 돌아 오는 통합의 주요 부분이며 비즈니스 로직을 많이 보유합니다. 그리고 돌아 오는 감속기 부작용과 순수 함수해야한다는 강제 때문에 우리는 쉽게 유지 관리 할 수있는 매우 우아하고 간단한 함수로 끝

돌아 오는 순수 함수를 작성하는 고전적인 예입니다. 함수형 프로그래밍에서 영감을 얻었으며 지난 몇 년 동안 엄청난 인기를 얻었습니다. 상태 관리를 위해 최신 웹 응용 프로그램에서 많이 사용됩니다. 이제 당신은 그 성공의 이유를 알고 있습니다. 이렇게하면 코드를 테스트 할 수 있고 깨끗하며 디버깅하기 쉽고 유지 관리 할 수 있습니다.

결론

우리는 순수한 함수를 작성하는 것이 어떻게 당신에게 유익하고 코드를 간단하고 우아하게 유지할 수 있는지 조사했습니다. 순수한 함수는 자바스크립트에만 국한되지 않습니다. 이 개념은 원하는 프로그래밍 언어로 채택 할 수 있습니다. 그것은 자바 스크립트 및 함수형 프로그래밍 언어와 잘 작동합니다.

자바스크립트 기술을 향상시키고자 한다면,모쉬의 자바스크립트 강좌를 적극 추천한다.

모든 자바 스크립트 과정을 여기에서 확인하십시오.: https://codewithmosh.com/p/full-stack-javascript-developer-bundle

이 게시물을 즐길 경우,단어를 확산하고 공유 할하시기 바랍니다. 더 많은 게시물을 다시 확인하십시오.

아디 티 라비 찬드 란 캔자스 시티에 본사를 둔 소프트웨어 컨설턴트입니다. 그녀는 현재 반응,반응 네이티브 및 그래프로 앱을 빌드하고 있습니다. 그녀는 회의 연사,복수형 저자,블로거 및 소프트웨어 컨설턴트입니다. 그녀는 교육에 대한 열정과 그녀의 과정과 기술 커뮤니티에 기여 번성,블로그 게시물 및 말하기 계약.

태그:자바 스크립트,순수 함수

답글 남기기

이메일 주소는 공개되지 않습니다.