Event Driven Architecture, javascript와 Node js에서 작업하고 싶은 최고의 패러다임

2578 단어 eventsnodejavascript

소개



EDA(Event-Driven Architecture)는 이벤트 생성, 감지, 소비 및 반응을 촉진하는 소프트웨어 아키텍처 패러다임입니다.

간단한 단어로 이벤트 기반 아키텍처 란 무엇입니까



음, EDA는 서로를 직접 알지 못하는 분리된 서비스 간에 통신하는 방법이지만 일부는 다른 서비스가 무언가를 수행하기를 기다립니다.

초인종이 울리면



간단한 예를 들어 보겠습니다. 어머니가 초인종 소리가 나면 문을 열라고 하면 당연히 예 엄마라고 대답할 것입니다. 그래서 귀하는 게으른 소파에서 일어나 문을 열 수 있도록 문 요금이 울리기를 기다리고 있습니다. 문 위로.

이제 문 요금이 울리므로 이제 문을 열고 케이스를 닫으십시오!

이것이 EDA가 작동하는 방식입니다.

DOM 이벤트



이 기사를 읽고 있다는 것은 확실히 당신이 javascript에 익숙하다는 것을 의미합니다. 이벤트에 대해 더 많이 알 수 있는 가장 좋은 예는 DOM의 javascript에 있는 Events listeners입니다.

따라서 사용자clicks가 버튼에 있을 때 "Welcome User"를 표시하려고 합니다.

<button onclick="alert('Welcome User')">
Click me
</button>


보시다시피 사용자가 버튼을 클릭할 때만 경고 메시지를 표시합니다.

EDA 워크플로



그래서 우리는 EDA의 개념과 기본 사항을 알게 되었으니 기본 단계에서 어떻게 작동하는지 살펴보겠습니다.

모든 이벤트 시스템에는 세 부분이 있습니다.
  • 이벤트 이름 자체(초인종이 울림).
  • 이벤트 리스너(초인종이 울리기를 기다리고 있을 때).
  • 이벤트 트리거(초인종이 울릴 때).

  • 따라서 우리는 door bell rings(이벤트)가 발생하면 올라가서 문을 열면(이벤트 리스너) 예를 들어 다음 15분 안에 일어날 것이라고 말합니다(이벤트 트리거 또는 이벤트 액션).

    이전 단계를 기반으로 이벤트가 발생하기 전에 반드시 들어야 한다는 결론을 내릴 수 있습니다. 이는 30분 전에 초인종이 울린 후 엄마가 문을 열라고 말하지 않을 것이기 때문에 분명히 이치에 맞습니다. 순서가 중요합니다!

    알아야 할 EDA ​​용어



    EDA에 대한 기사를 읽거나 비디오를 볼 때 볼 수 있는 몇 가지 용어가 있습니다. 혼동하지 않도록 그 중 일부를 공유하겠습니다.
  • 이벤트 리스너의 경우 이벤트 구독자 이벤트 소비자, 이벤트 소비자subscribe에 해당합니다.
  • 이벤트 트리거의 경우 이벤트 생산자 또는 이벤트 게시자라고도 합니다.

  • 따라서 일부 프레임워크에서 Pub/Sub 용어를 읽을 수 있습니다. pub은 Publish 또는 Publisher의 줄임말이고 sub는 Subscribe 또는 Subscriber의 줄임말입니다.

    EDA 사용의 실제 사례



    DOM 이벤트 처리 외에도 EDA가 내부의 주요 영웅인 여러 실제 사례가 있습니다.

    예를 들어 채팅 메시징, 사용자가 메시지를 보내고 다른 사용자가 메시지를 기다리면 메시지가 서버로 전송되면 서버가 다른 사용자에게 메시지를 보내고 다른 사용자는 사용자의 채널을 구독하여 메시지를 받습니다. 메시지, 이것은 단순히 채팅 메시징을 넘어선 주요 개념입니다.

    또한 Sockets에서 전송되는 모든 데이터 관리/버스는 기본적으로 EDA를 구현합니다.

    저는 Forms, Ajax Requests, Atoms 등 많은 패키지에서 사용하고 있으며 백엔드 또는 프런트엔드 프로젝트의 거의 모든 프로젝트에서 적극적으로 사용하는 독립 실행형 이벤트 패키지도 있습니다.

    결론



    Event Driven Architecture는 서로 다른 계층, 모델 또는 서로 다른 별도의 앱 간에 데이터를 관리하는 강력한 패러다임입니다.

    나는 당신이 기사를 즐겼기를 바랍니다. 그것은 당신에게 충분히 명확했습니다 :)

    좋은 하루 되시고 행복한 코딩하세요 :)

    좋은 웹페이지 즐겨찾기