「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > JavaScript における宣言型プログラミングと命令型プログラミング

JavaScript における宣言型プログラミングと命令型プログラミング

2024 年 11 月 8 日に公開
ブラウズ:824

プログラミング方法論になると、宣言型プログラミングと命令型プログラミングという 2 つの一般的なアプローチがよく登場します。特に JavaScript では、それぞれに長所と理想的な使用例があります。これら 2 つのスタイルをいくつかの例で調べてみましょう。

命令型プログラミング: コンピューターにやり方を教える

命令型プログラミングは、詳細な指示セットを与えるようなものです。特定の結果を達成する方法を段階的にコンピューターに指示します。これは、誰かにレシピをガイドするようなものだと考えてください。まずこれを実行し、次にあれを実行してください。

命令的アプローチを使用して数値の配列を合計する古典的な例を次に示します:

Declarative vs. Imperative Programming in JavaScript

この例では、配列を手動でループし、合計を累積します。各ステップは明示的に定義されています。0 から開始し、各数値を繰り返し、合計を加算し続けます。

宣言型プログラミング: コンピュータに必要なことを伝える

一方、宣言型プログラミングは、その方法ではなく、何を達成したいかに焦点を当てます。望ましい結果を記述すると、基盤となるシステムがそこに到達するための手順を計算します。

宣言的なアプローチを使用して同じ合計演算を書き直してみましょう:

Declarative vs. Imperative Programming in JavaScript

ここで、reduce メソッドはループと累積の詳細を抽象化します。配列を 1 つの値 (合計) に減らすことを宣言するだけで、JavaScript が残りを処理します。

いつどちらを使用するか?

  • 命令型: 操作の各ステップをきめ細かく制御する必要がある場合は、命令型プログラミングが最適です。複雑なアルゴリズムや、各ステップでパフォーマンスを最適化する必要がある場合に最適です。
  • 宣言型: 制御よりも明確さと単純さが重要な場合、宣言型プログラミングが最適です。データ変換、UI レンダリング、データベース クエリ (SQL など) などのタスクに最適です。

より実用的な例: 配列のフィルタリング

配列から偶数をフィルターで除外したいとします。

命令的アプローチ:

Declarative vs. Imperative Programming in JavaScript

配列を手動で繰り返し、各数値を確認し、条件付きで偶数の数値を新しい配列にプッシュします。

宣言的アプローチ:

Declarative vs. Imperative Programming in JavaScript

フィルターを使用すると、「偶数の数字をすべて教えてください」という意図を宣言するだけです。 filter メソッドは反復と条件チェックを処理します。

結論

TypeScript 開発では、宣言型スタイルと命令型スタイルの両方にそれぞれの役割があります。命令型コードは冗長で読みにくい場合がありますが、より詳細な制御が可能になります。一方、宣言型コードはより簡潔で読みやすい傾向があり、保守が容易になります。

次回コーディングするときは、どのアプローチが自分のニーズに最も適しているかを検討してください。正確な制御が必要ですか?命令的に行ってください。明確で保守しやすいコードが必要ですか?宣言型が最善の策かもしれません。コーディングを楽しんでください!

リリースステートメント この記事は次の場所に転載されています: https://dev.to/avwerosuoghene/declarative-vs-imperative-programming-in-javascript-2ipe?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>
  • ランタイムを理解する: C から最新言語まで
    ランタイムを理解する: C から最新言語まで
    現代のソフトウェア開発とプログラミングの時代では、「ランタイム」という用語は、議論されているコンテキストや言語に応じて異なる意味を持ちます。ここでは、Java や Python などの最新の言語と比較して C でのランタイムがどのように動作するかに焦点を当てて、これらの違いを明確にするためにここにい...
    プログラミング 2024 年 11 月 8 日に公開
  • Python と ArkScript の非同期モデルの比較
    Python と ArkScript の非同期モデルの比較
    Python は最近非常に注目を集めています。今年 10 月に予定されている 3.13 リリースでは、GIL を削除するという大規模な作業が開始されます。 (ほぼ) GIL なしの Python を試してみたい好奇心旺盛なユーザー向けに、プレリリースがすでにリリースされています。 この誇大宣伝のせい...
    プログラミング 2024 年 11 月 8 日に公開
  • JavaScript ウィザードになる上位の VS Code 拡張機能
    JavaScript ウィザードになる上位の VS Code 拡張機能
    Writing code is hard. As a JavaScript developer, you’ve probably felt the pressure of juggling multiple tasks — writing clean code, debugging tricky i...
    プログラミング 2024 年 11 月 8 日に公開
  • Python で ndarray の出現回数をカウントするにはどうすればよいですか?
    Python で ndarray の出現回数をカウントするにはどうすればよいですか?
    ndarray の出現回数をカウントするnumpy では、次の操作を試みているときに「numpy.ndarray オブジェクトには属性カウントがありません」というエラーが発生することがあります。 .count() メソッドを使用して、配列内の特定の値の出現をカウントします。numpy.unique ...
    プログラミング 2024 年 11 月 8 日に公開
  • 誰も話題にしていないように見える唯一のこと
    誰も話題にしていないように見える唯一のこと
    私たちのほとんどのソフトウェア開発者に最初に起こることは、希望を失うことだと思います。それは、手抜きを強いられることです。 基本的には、特定の締め切りを守らなければならないと言われています。 そして、いくつかの作業を開始し、締め切りが近づくと、思ったよりも時間がかかることに必然的に気づきます。 そし...
    プログラミング 2024 年 11 月 8 日に公開
  • PHP で配列からクエリ文字列を生成するにはどうすればよいですか?
    PHP で配列からクエリ文字列を生成するにはどうすればよいですか?
    PHP で配列からクエリ文字列を作成するPHP フレームワークは、配列からクエリ文字列を作成するために特別に設計された多用途の関数を提供します。 &&&]http_build_query()。この関数の主な目的は、キーと値のペアの配列を標準の URL エンコードされたクエリ文字列に変換することです。...
    プログラミング 2024 年 11 月 8 日に公開
  • JavaScript における基本的なオブジェクトと関数の連鎖の原則とは何ですか?
    JavaScript における基本的なオブジェクトと関数の連鎖の原則とは何ですか?
    JavaScript における基本的なオブジェクト/関数チェーンについて理解する関数チェーンは、開発者が特定の順序で実行される一連の操作を作成できるようにするプログラミング手法です。 JavaScript では、これは関数自体を返すことと this キーワードを使用することを組み合わせることによって...
    プログラミング 2024 年 11 月 8 日に公開
  • 開発ツールは必要ありません
    開発ツールは必要ありません
    私は数か月前、フロントエンド プロジェクトに取り組んでいました。このプロジェクトは、従来のダッシュボードに統合されることを目的としたマイクロフロントエンドでした。 マイクロフロントエンド アプローチの理由は、ダッシュボードの複雑さを軽減することでした。私はこの挑戦に興奮し、それに飛び込みました。 ...
    プログラミング 2024 年 11 月 8 日に公開
  • OpenAI はコードの非縮小化が驚くほど得意です
    OpenAI はコードの非縮小化が驚くほど得意です
    While browsing the Internet for inspiration, I came across an interesting-looking component. I thought the block with the running ASCII art looked coo...
    プログラミング 2024 年 11 月 8 日に公開
  • 有毒な Laravel コミュニティが私のコーディングへの情熱をいかに破壊したか。
    有毒な Laravel コミュニティが私のコーディングへの情熱をいかに破壊したか。
    今でも昨日のことのように覚えていますが、私が Web 開発者になる旅を始めたのは 20 年以上前のことでした。 お気に入りの Web サイトをいくつか閲覧するために、56k モデムにダイヤルアップして電話回線を占有しました。それから、どうすれば自分で作ることができるだろうかと考えました。 Micro...
    プログラミング 2024 年 11 月 8 日に公開
  • ワーカーと一緒に導入する
    ワーカーと一緒に導入する
    ボタンジェネレーター ボタン ジェネレーターは、GitHub でホストされているプロジェクトのデプロイメント プロセスを合理化するために設計されたツールです。 「Cloudflare Workers にデプロイ」ボタンを作成すると、デプロイメントプロセスが簡素化され、ユーザーはワン...
    プログラミング 2024 年 11 月 8 日に公開
  • PHP で文字列を操作する
    PHP で文字列を操作する
    文字列は、プログラミングで文字のシーケンスを表すために使用されるデータ型です。これらの文字には、文字、数字、スペース、記号などを使用できます。多くのプログラミング言語では、文字列は一重引用符 (') または二重引用符 (") で囲まれます。 文字列の連結 連結は、2 つ以上の文字列...
    プログラミング 2024 年 11 月 8 日に公開
  • jQuery は Comet パターンを使用したサーバー送信メッセージングに役立ちますか?
    jQuery は Comet パターンを使用したサーバー送信メッセージングに役立ちますか?
    jQuery を使用したサーバー送信メッセージングのための Comet の活用JavaScript プログラミングの領域では、サーバー プッシュ機能が注目を集めています。コメットのデザイン パターンが人気のアプローチとして登場。この記事では、有名な jQuery ライブラリ上に構築されたこのようなソ...
    プログラミング 2024 年 11 月 8 日に公開
  • Keras でサイコロ誤差係数のカスタム損失関数を実装するにはどうすればよいですか?
    Keras でサイコロ誤差係数のカスタム損失関数を実装するにはどうすればよいですか?
    Keras のカスタム損失関数: Dice Error Coefficient の実装この記事では、カスタム損失関数の作成方法を検討します。 Keras では、Dice エラー係数に焦点を当てています。パラメータ化された係数を実装し、Keras の要件との互換性を保つためにそれをラップする方法を学習...
    プログラミング 2024 年 11 月 8 日に公開
  • MySQL が「警告: mysql_fetch_assoc の引数が無効です」エラーをスローするのはなぜですか?
    MySQL が「警告: mysql_fetch_assoc の引数が無効です」エラーをスローするのはなぜですか?
    MySQL 警告: mysql_fetch_assoc の引数が無効です問題:MySQL からデータを取得しようとしたときデータベースでは、次のエラー メッセージが表示されます。検出されました:mysql_fetch_assoc(): supplied argument is not a valid...
    プログラミング 2024 年 11 月 8 日に公開

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3