はんのうプログラムせっけい

3470 ワード

はんのうプログラムせっけい
必要なデータを取得するために、アプリケーションは外部環境にデータを取得するように要求するのではなく、外部環境を観察したときに外部環境からデータストリームを解放し、それに反応してデータを取得します.
外部環境では、アプリケーション内で連続的に流れるデータ(すなわち、データストリームを作成および解放するオブジェクトを「傍観者」と呼ぶ)、「傍観者解放」(Notification:「傍観者」)および「傍観者」(Observer)が解放できるプッシュベースのイベントまたは値を取得することによって使用されるオブジェクトを「傍観者」(Observer)と呼ぶ.言い換えれば、データ消費者(Data Consumer)光ファイバは、データ生産者(Data Productor)光ファイバを購読する.この購読により,傍観者は傍観者に接続され,傍観者の状態を観察する.また、光ファイバから放出されるノイズは、光ファイバに自動的に伝播する.
はんのうプログラムせっけい
反応プログラム設計はその名の通り「即座に応答するプログラム設計」である.厳密には、反応は反応プログラミングのモデルに完全に合致していないが、「ユーザーの要求に直接応答する」という核心概念に合致している.
反応器はpropsを用いて状態(データ)の変化を伝播し、これらの状態の伝播または移行は、ユーザが直ちに持続的な要求に応答できるようにすることができる.また、アクティブなプログラミングの特徴の一つである「柔軟性」もあります.データの変化に伴ってレンダリングされると、エラーが発生することなく、正常でないデータや異常なデータを柔軟に処理できます.光ファイバ、ストリームなどの複雑な概念を必要とせず、リアクターはステータスをサブエレメントに降格させ、ステータスの変化に応じてレンダリングし、自然な「インスタントレスポンスプログラミング」を実現します.
  • 反応器は反応プログラム設計とは言えない.アクティブプログラミングとは、応答性(Responsive)、柔軟性(Resilient)、弾力性(Elastic)、メッセージドライバ(Message Driven)を備えている場合にのみ使用できます.レスポンスマップにRxJSを追加することで、レスポンスプログラミングを完璧に実現できます.これにより、光ファイババブルを用いてデータストリームを処理することができる.
  • どうして反応を書くの?

  • ファイバチャネルを必要としないアクティブプログラミング
    UIはユーザーと絶えず対話している.アプリケーションのステータスはユーザーの入力によって変わり、画面はユーザーの入力によって変わります.ステータスと画面 値は時間とともに変化します.
    変化した値は扱いにくい.これは、値の変化に関連する他の側面に常に注目する必要があるためです.しかし、人々はここであきらめず、「価値の変化を自分で伝えればいい」と話した.この考えに基づいて,アクティブプログラミングと呼ばれるプログラミングモデルを提案した.はんのうプログラムせっけい(アクティブプログラミング)は、変化する値を処理するために、光ファイバおよび複数の概念を使用する.例を見せてあげるとこんな感じ
    NOTE:光ファイバフォーム、流れ.この2つの用語は同義語である.反応式プログラミングコミュニティは、どんな言葉を使っても同じ意味だと考えています.
    import { fromEvent } from 'rxjs';
    import { map } from 'rxjs/operators';
    
    const inputElement = document.getElementById('textInput');
    const input$ = fromEvent(inputElement, 'change'); // inputElement에서 'change' 이벤트가 발생할 때 마다 그 이벤트를 자신의 구독자(subscriber)에게 전달하는 옵져버블을 만듭니다.
    const text$ = input$.pipe(map(event => event.target.value)); // input$가 값을 전달할 때 마다 주어진 함수를 이용해 그 값을 변형시킨 후 다시 전달하는 옵져버블을 만듭니다.
    
    text$.subscribe(console.log); // text$ 옵져버블이 전달한 값을 출력합니다.
    
    こつこつと、アクティブなプログラミングを使用してデータストリームを宣言することで、非同期および非同期の変化の値を簡単に処理できます.素晴らしいように聞こえますが、反応式プログラミングにもいくつかの問題があります.まず、最大の問題は、プログラマーが一括購読に非常に注目しなければならないことです.しんごうバブルではなく  イベントファイババブル  購読時間は非常に重要です.  これは、サブスクリプションの結果が異なるため、どれ(hot/cold/warm)がファイババブルであるかどうかによって異なります.これは,プログラマがファイババブルとファイババブルの周囲環境をファイル室として扱うことによる問題であり,反応はファイババブルとファイババブルの周囲環境を隠すことによってこの問題を解決する.すなわち、簡単に言えば、反応は以下のように構成される.
    import React from 'react';
    
    function MyComponent() {} // 여기에 우리가 작성한 멋진 컴포넌트가 있다고 상상하세요.
    
    const element$ = props$.map(MyComponent) // props 들의 옵져버블이 props를 전달할 때 마다 그 props를 가지고 컴포넌트를 호출합니다. 결과적으로 props들의 옵져버블을 리액트 엘리먼트들의 옵져버블로 만듭니다.
    element$.subscribe(React.renderReactElement); // 리액트 엘리먼트들의 옵져버블을 구독해, 리액트 엘리먼트들이 전달될 때 마다 화면을 새로 랜더링합니다.
    
    私たちのコンポーネントは光ファイバで、購読して、複雑な概念を考慮しません. 指定したデータをレンダリングする方法を考えるだけです.反応式プログラミングに関わる複雑なことは反応器に取って代わられるから!