Gleyzer両氏によって共同開発されました。2019で、同言語の発表を行いました。InfoQはPurdy氏に言語と、氏らが解決を目指した問題について聞きました。設計/アーキテクチャアジャイルマニュフェスト:ソフトウェアアーキテクトの視点ソフトウェアアーキテクトの役割と責任はアジャイルソフトウェア開発のためのマニフェストの価値と矛盾していると見えますが、優れたアーキテクトはアジャイル開発チームをサポートするテクニックを見つけています。Streamingは、ストリーミングデータのためのSQLライクなインターフェースを提供します。Streamsによって、Redisがストリーミングデータを複数のプロデューサとコンシューマの間で消費、保持、配信することができるようになります。ソフトウェア開発のマニフェストたゆまず息もつかずに市場に突進することで、会社を静かに消滅の崖っぷちへと追い込みます。それは設計してコードを書く方法を再考する時です。簡単さへの投資は、速さへの投資です。簡単さは知的財産の主鉱脈でもあります。競争上の優位性は、一度失ったら、もう一度手に入れることはほとんど不可能です。Buytaerts氏が過去10年間にわたって、企業がDevOps採用のハイプサイクルをくぐり抜け、変革に対する誤解を解消する過程を支援してきた経験について語ります。16.8をリリースした。Hooksは独立的に再利用、構成、テスト可能な機能構文で、複雑なロジック(状態、効果など)をカプセル化する機能を持つ。16.8に同梱されている定義済みのHooksを組み合わせることで、独自のHooksを定義することも可能だ。HooksベースのReactコンポーネントを使用することによって、開発者は、複雑なReactコンポーネントツリーをコンパクトに、理解しやすい形で構築できる。HooksはFacebookでは広く使用されてるが、この機能には注意書きが添えられており、残された問題が一部開発者による議論の的になることがある。Modeの実現が含まれていない。Reactアプリケーションを構成するReactコンポーネントの大部分は、エフェクトを実現し、ローカルおよびグローバルな状態とのインタラクションを行っている。異なるコンポーネントが、同じエフェクトフルな計算を実行することも少なくない。Hooksは、これらエフェクトフルな計算を機能構文にパッケージすることにより、Reactアプリケーションのフレーム内での再利用を可能にする。ドキュメントには、チャットアプリケーション上で友人がオンラインかオフラインかを示す、FriendStatusコンポーネントの例が紹介されている。'Offline';}FriendStatusは、事前定義されたuseStateとuseEffectを使用して、指定された動作をJavaScript関数として実装している。useEffectは、FriendStatusの各レンダリングに対してエフェクトを実行する。エフェクトは、そのエフェクトを実行する関数を通じて指定され、関連するリソースを必要に応じて初期化すると同時に、不要になったリソースを解放するためのクリーンアップ関数を返す。Reactコンポーネントツリーでは、特定の動作は単一の<FriendStatus>ノードとして参照される。一般的なクラスベースの振る舞い実装では、高次コンポーネントを経由して状態や効果ロジックを再利用した場合、その高次コンポーネントがコンポーネントツリーを変更する可能性があるため、可読性に悪影響を及ぼす可能性がある。一方で、状態やエフェクトロジックを再利用しなければ、同じコーディングの繰り返しに分類されるバグになる可能性が高い上に、コードサイズが肥大する可能性や、それに起因するユーザーエクスペリエンス低下につながる。16.8には、このようなエフェクトの懸念に対応するため、10の定義済みフックが付属している。これらのフックはReactと密接に統合されており、React的なコンテキストやランタイム以外では意味を持たない。Hookを構成することが可能である。Reactのドキュメントには、現在選択中の友だちがオンラインかどうかを表示する、ChatRecipientPickerという、メッセージ受信者ピッカが例として挙げられている。Reactコンポーネントは、useStateフックとuseFriendStatusカスタムフックを再利用する。Hooksの重要な利点を活用している。受信者IDをキャプチャするローカル状態は、パラメータとしてuseFriendStatusに渡すことが可能であるため、受信者が変更されたタイミングとは独立的に、選択された受診者がオンラインかどうかを計算するという、期待に沿った動作を提供することができる。Hooksコンポジションは、構文上は通常のJavaScript関数コンポジションと似ているようにも見えるが、非直感的な意味が異なっている。Hooksは動作の都合上、次のようなルールに従って呼び出すことになっている。ループ、条件、ネストされた関数内で呼び出すことはできない。React関数コンポーネントからのみ呼び出すHooksの構成動作を管理する規則は、専用のeslintプラグインによって強制することが可能ではあるが、一部の開発者にとっては困難であるため、混乱の元になりかねない。ある開発者は、事情を次のように説明している。私は特製のライブラリを使用しているので、有効なJavaScriptを有効でないというようなリンタを使う必要はありません。私の意見(に過ぎません)では、これは、プログラミングに関するいくつかの基本的原則に大きく反しています。他の開発者の中には、Hookを積極的に受け入れた上で、独自の技法や推奨プラクティスを開発しているものもいる。Hooksの実装詳細にリンクするための詳細な説明を公開した。セマンティクスを理解してメンタルモデルを構築するために、実装の詳細を把握しなければならない点は、開発者による早期かつ広範な受け入れに対するハードルになる可能性がある。Hooksは開発開始から日が浅く、ReactレンダリングパイプラインへのHooksの統合に関連するバグや不一致の存在が確認されているため、陥りやすい落とし穴とその対抗策が、Reactチームによって活発に進められている。Reactチームでは、既存のクラスベースのコードベースをHooksで書き換えるのではなく、段階的に導入する方法を推奨している。今すぐHooksを学ぶ必要はありません。Hooksに重大な変更はありませんし、Reactからクラスを削除する予定もありません。(...)既存のアプリケーションを、Hooksを使うように、一気に書き直す方法はお勧めしません。なく、新しいコンポーネントのいくつかでHooksを使ってみて、感想を私たちに知らせてほしいのです。Hooksを使用するコードは、クラスを使用する既存のコードと並行して機能します。Hooksよりも特性的に優れた提案、あるいは純粋な関数アプローチを採用したHooksの代案が、一部のReact開発者によって現在も模索されている。Renderingの実現を達成できていない。Abramov氏が詳しく説明している。レンダリングした値をクロージャで捉えて、それらの値を永続的に見るようにしたいのです。現在値という概念が事実上存在しないコンカレントモードでは、これは本当に重要です。Hooksのデザインでは、現在の状態を切り替えるのではなく、衝突しない多くの状態が同時にあるものとして、コンポーネントをモデル化しています(これはクラスがうまくモデル化できるものです)。このような詳細を考える必要はまったくありませんが、これが設計上のモチベーションを与えているのです。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見るあなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。登録するとさまざまなことができます。アカウント登録をしてInfoQをお楽しみください。あなたの意見をお聞かせください。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見る様々なイノベーターとアーリーアダプターがお送りするテクノロジーの概要を見る。自分がまだ知らないことに気づいていないと知るあなたが興味のあるトピックスをいつでも最新な情報に。あなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。よい世界へ私たちが暮らす世界を大切に思い、よりよいものにしたいと考えています。人のためのソフトウェア開発を加速し私たちのミッションを実現することで、この思いを成し遂げようとしています。私たちは利益の1%をさまざまな慈善団体に寄付しています。会社として、また従業員として、そうしたことの価値を強く信じているからです。with.プライバシーBTあなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。アドレス*Eメールを変更すると確認のメールが配信されます。会社名:現在の会社名をご入力ください。Other組織規模:現在の組織規模をご入力ください。2,501+国:現在の国を設定してください。Zimbabwe都道府県:現在の都道府県に設定してください。次の都道府県にアップデートする:ニュースレターを購読しますか?インダストリーメールを購読しますか?本Eメールに登録すると、以前より関心のあったトピックの関連情報をお送りする場合がございます。詳細はこちらのプライバシーポリシーをご覧ください。newsletter?新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。