問題タブ [paradigms]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
paradigms - 文字配列と文字列の違いは何ですか?
高水準言語に時間を費やしていると、突然、文字配列と文字列の違いがわからないことに気づきました。それらは同じものだと思いますが、確かではありません。違いはありますか?抽象化された単なる文字配列ですか?
language-agnostic - 「ガードステートメント」対「単一関数出口点」パラダイムの保守性に関する研究はありますか?
「ガードステートメント」パラダイムと「単一関数出口点」パラダイムを使用するプロジェクトの保守性に関する研究 (カジュアルと堅牢の両方) があるかどうか疑問に思っています。
ガード ステートメントの例 (C#):
単一関数の終了点の例 (C#):
両方の長所と短所が SO で際限なく議論されていることは知っていますが、各パラダイムがどれほど保守可能かについての実際の研究を探しています*。これは不明かもしれませんが、情報がそこにある場合、SOの誰かがそれがどこにあるかを知っていると思いました. これまでのところ、私の Web 検索は成功していません。
**多くのプログラマー (私を含む) が、状況に応じてコード全体で両方の原則を使用していることも認識しています。好ましいパラダイムとして使用するための優れた保守性の実績があるのはどれかを発見したいと思っています.*
c# - プログラミングパラダイム間の相違点と類似点
私は過去4年間開発者として働いており、その4年前は大学でソフトウェア開発を勉強していました。業界での4年間、私はVB6(冗談でした)でいくつかの作業を行いましたが、そのほとんどはC#/ASP.NETで行われました。この間、私は「オブジェクトを意識した」手続き型パラダイムからオブジェクト指向型パラダイムに移行しました。
最近、他のプログラミングパラダイムに興味があったので、他の開発者に、これらのパラダイム、特にOOPの類似点と相違点について意見を求めたいと思いました。OOPでは、概念間の関係と論理的な相互作用に重点が置かれていることがわかりました。他のパラダイムのためにあなたがしなければならないマインドフレームは何ですか?
c++ - C ++の使用を開始する(Pythonからのパラダイムシフト)
サーバー関連のもののためのC++Pythonモジュールを開発できるように、C++を学びたいです。
私は純粋に動的言語の開発者です(Python、PHP、Rubyなど)。私は速い言語を学びたいです、そして私がこれをするつもりなら、私はむしろC++のような本当に速い言語を学びたいです。しかし、始める前に、突然静的型、異なる構文、およびコードのコンパイルを操作することは、かなりのパラダイムシフトになることを理解しています。動的言語の経験もあるC++開発者が、そのシフトをより速くするために私に教えてくれるアドバイスはありますか?
multithreading - バックグラウンドで自動的に実行する方法は?
まだ実装されていないかどうかはわかりませんが、実装されることを願っています。しかし、.Net プログラマーはバックグラウンド スレッドで時間のかかるタスクを手動で実行する必要があることを知っています。
そのため、何らかの UI イベントを処理するたびに、これには時間がかかることを理解しており、UI スレッドとアプリケーションがハングすることも理解しています。そして、このすべてのバックグラウンドを機能させ、コールバックなどを処理します。
だから私の質問は:
一部の言語/プラットフォームには、時間のかかるタスクをバックグラウンドで自動的に実行し、関連するすべての作業を自動的に実行するメカニズムがありますか? したがって、特定の UI イベントを処理するためのコードを作成するだけで、このコードは何らかの形で時間がかかるものとして検出され、バックグラウンドで実行されます。
存在しない場合、その理由は何ですか?
jquery - jQueryパラダイム?
jQuery は OOP フレームワークとして書かれていないように思われます。短すぎるようで、十分に冗長ではないようです。OOP として書かれていない場合、彼らはどのような方法論/パラダイムを使用しているのでしょうか?
oop - 関数型プログラミング言語はどのように機能しますか?
関数型プログラミング言語が状態を保存できない場合、ユーザーからの入力を読み取るなどの単純なことをどのように行うのでしょうか? 彼らはどのように入力を「保存」しますか(またはそのためのデータを保存しますか?)
たとえば、この単純な C は Haskell のような関数型プログラミング言語にどのように変換されるでしょうか?
(私の質問は、この優れた投稿「名詞の王国での実行」に触発されました。それを読んで、オブジェクト指向プログラミングとは何か、Java がそれを極端な方法で実装する方法、関数型プログラミング言語がどのように機能するかについての理解が深まりました。対比。)
jquery - jQuery パラダイムは単体テストに反しますか、それとも補完しますか?
はい、私はQUnitを認識していますが、jQuery パラダイムでは、より少ないコードでより速く物事を成し遂げることがすべてであり、これは TDD パラダイムとどのように対立していますか? それとも何らかの形でそれを補完しますか?
scala - ScalaとF#の質問:OOとFPのパラダイムをどのように統合するのですか?
OOとFPのパラダイムを統合するためにScalaとF#が採用したアプローチの主な違いは何ですか?
編集
各アプローチの相対的な長所と短所は何ですか?サブタイピングがサポートされているにもかかわらず、F#が関数の引数の型を推測できる場合、なぜScalaを使用できないのでしょうか。
paradigms - パブリッシュ/サブスクライブパラダイム:メッセージクラスがサブスクライバーについて知らない必要があるのはなぜですか?
ウィキペディアから:「パブリッシュ/サブスクライブ(またはpub / sub)は、メッセージの送信者(パブリッシャー)が特定の受信者(サブスクライバー)にメッセージを送信するようにプログラムされていないメッセージングパラダイムです。むしろ、パブリッシュされたメッセージは、知識がなくてもクラスに特徴付けられます。 (もしあれば)どのようなサブスクライバーがいる可能性がありますか?」
送信者が特定の受信者にメッセージを送信するようにプログラムされてはならない理由を理解できます。しかし、なぜ公開されたメッセージは、サブスクライバーの知識を持たないクラスでなければならないのでしょうか。
メッセージングシステム自体が設置されると、ソフトウェアの進化に伴って通常変化するのは、送信されるメッセージ、発行者、および受信者であるように思われます。メッセージをサブスクライバーから分離しておくことは、サブスクリプションモデルも変更される可能性があることを意味しているようです。これが理由ですか?また、これは現実の世界で発生しますか?
これは基本的な質問かもしれませんが、私はこのパラダイムを理解しようとしています。あなたの返信は非常に高く評価されています。