Ramda를 시작하면서 배운 3가지 교훈
3618 단어 ramdajavascriptfunctional
그때 아무리 노력해도 머리를 감쌀 수 없었습니다. 나는 오늘 Haskell에서 일관된 것을 작성하는 데 어려움을 겪을 것입니다. 여전히 모나드가 무엇인지 또는 함수형 프로그래밍과 관련된 다른 수학적 개념의 내용을 설명할 수 없었습니다.
하지만 시간이 지나면서 함수형 프로그래밍 패러다임이 권장하는 접근 방식을 정말 높이 평가하게 되었습니다. 대부분의 경우 개념은 시간이 지남에 따라 추론, 테스트, 구성 및 적응하기가 훨씬 쉬운 코드로 이어집니다.
몇 년 동안 작업한 프로젝트가 있습니다. 그 중 하나가 "언젠가는 끝내겠다"프로젝트다. 나는 그것을 흥미로운 예제로 만들기에 충분한 복잡성이 있고 내가 그것을 끝낼 때 너무 걱정하지 않기 때문에 다른 접근법과 라이브러리를 시도하기 위해 그것을 자주 사용합니다. 때로는 속담처럼 목적지보다 여정에 관한 것입니다!
이 게시물에서는 해당 프로젝트에 Ramda을 추가하면서 배운 몇 가지 교훈을 살펴보고 보다 기능적인 접근 방식을 취하는 데 도움을 줄 것입니다.
Ramda는 "기능적인 파이프라인을 쉽게 만들 수 있게 해주는"기능 모음입니다. 시작하기는 매우 쉽지만 잠시 후 이를 최대한 활용하는 방법에 대한 몇 가지 교훈을 배웠습니다.
함수 프로그래밍에 대한 더 많은 설명자를 찾고 있다면 그에 대한 다른 훌륭한 기사가 많이 있습니다. 다음은 한 가지 예입니다.
함수형 프로그래밍에 대한 적절한 소개
안드레아 베르톨리 ・ 10월 18일 '19 ・ 10분 읽기
#javascript
#webdev
#functional
#intermediate
이 라이브러리 및 기타 리소스 목록도 살펴볼 가치가 있습니다.
스토펠 / awesome-fp-js
😎 js에서 엄선한 멋진 함수형 프로그래밍 목록
레슨 1 - Lambda 함수 명명은 혼란스러울 수 있습니다.
Ramda에는 많은 기능이 있으므로 무언가를 수행해야 하는 경우 해당 기능이 있을 수 있습니다.
그러나 일부 이름이 약간 명확하지 않은 것 같아서 원하는 것을 찾기가 어려웠습니다. 예를 들어 evolve은 개체의 각 속성에 서로 다른 변형을 적용하는 여러 경우에 유용하지만 우연히 발견했을 뿐입니다.
explore the docs을(를) 확인하면 몇 가지 흥미로운 도구를 찾을 수 있습니다!
수업 2 - 단순하게 유지
문서를 살펴보고 몇 가지 흥미로운 방법을 찾았습니다. 이러한 모든 방법은 더 복잡한 논리에 적합하지만 상대적으로 간단한 논리를 훨씬 더 읽기 어렵게 만들 수도 있습니다.
예를 들어 보겠습니다. 배열에서 첫 번째 요소를 가져오고 0보다 크면 요소를 반환하고 그렇지 않으면 정의되지 않은 반환을 원한다고 가정해 보겠습니다. Ramda를 사용하면 다음과 같이 보일 수 있습니다.
R.ifElse(
R.pipe(R.nth(0), R.gt(R.__, 0)),
R.identity,
R.always(undefined)
);
반면에 동등한 람다 함수는 다음과 같을 수 있습니다.
([elem]) => elem > 0 ? elem : undefined;
Ramda가 제공하는 모든 방법이 유용할 수 있지만, 방금 작성한 일부 코드를 쳐다보고 도대체 무엇을 하려고 했는지 기억하려고 애쓰게 되기 쉽습니다.
Ramda는 기능적인 코드를 작성하는 유일한 방법이 아니라 보다 기능적인 방식으로 코드를 작성하는 데 도움을 주기 위해 존재합니다.
학습 3 - 변수를 중간 파이프 단계로 전달해야 합니까? 람다를 사용하세요!
더 복잡한 파이프라인 작성을 시작하면 결국 파이프라인 시작 시 전달되는 매개변수에 액세스해야 하는 단계가 있는 지점에 도달하게 됩니다.
몇 가지 옵션이 있습니다. 첫 번째는 해당 매개변수를 수락하고 전달하기 위해 매개변수가 필요한 단계 이전에 다른 모든 단계를 변경하는 것입니다. 이것은 지저분하고 빠르게 복잡해집니다.
내가 찾은 대안은 파이프라인을 람다로 래핑하는 것입니다.
(arg1, arg2) => R.pipe(
stage1,
stage2,
stage3(arg2),
stage4,
)(arg1);
이렇게 하면 이전 단계가 영향을 받지 않으며 코드를 읽기가 더 쉽습니다.
이것들은 다른 어떤 것만큼이나 참조용이지만 Ramda를 시작하는 다른 사람에게 이 레슨이 유용하기를 바랍니다. Ramda를 시작할 때 유용하다고 생각한 것이 있거나 위의 내용에 대한 질문/생각이 있는 경우 의견에 공유하십시오!
Reference
이 문제에 관하여(Ramda를 시작하면서 배운 3가지 교훈), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/_kbremner/3-lessons-i-learned-getting-started-with-ramda-4je5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)