問題タブ [concept]
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.
programming-languages - すべてのif条件にelse部分を書き込む必要がありますか?
私が尋ねた質問は閉じられているかもしれませんが、すべてのif条件のelse部分を記述する必要があることを知りたいだけです。私の上級プログラマーの1人は、「if条件ごとにelsepartを書く必要がある」と言っていました。else部分に書き込む条件がないとしたら、どうすればよいでしょうか。ここで健全な議論が行われると思います。
perl - Perl での関数の配列の使用について
commit() と rollback() を自動的にサポートする API を構築しようとしています。調査の結果、使用することが最善の方法であることがわかりましたeval {}
。
何eval {}
をすべきかを知るために、API に関数の配列を与えることを考えました。これはforeach
、API が何も解釈しなくても実行できます。ただし、この関数は別のパッケージに含まれている場合があります。
例を挙げて明確にしましょう:
問題は、API に がなくても、@functions
内で関数を実行できるかどうかです。そうでない場合、ポインターがメモリ内の既知の関数を指すことを考えると、配列の代わりに配列参照を使用すれば可能でしょうか?OSA::ourAPI
use OSA::SQL
注: これは、より複雑な最終バージョンの基にしたい基本的な考え方です。
javascript - 不要な jQuery 関数を削除する
こんにちは、
jQuery のようなライブラリは完全にロードされており、スクリプトで使用できない多くの関数が付属しています。私のスクリプトを読んで、私が使用しているすべてのjQuery関数とその依存関係を見つけてから、残りの関数をjQueryライブラリから削除する方法があるかどうか疑問に思っています。これは事実上すべてのライブラリに適用でき、実際には jQuery 固有の質問ではありません。
これをどのように達成できるかについて、あなたの考えを教えてください。コードに新しい関数を追加し、その関数がjQueryに存在しないとしたら、後で頭痛の種になるかもしれません。しかし、私は喜んでそのリスクを冒します。
language-agnostic - 委任vs集約vs相談
これらの用語の違いは何ですか、小さな例を挙げていただけますか?
encapsulation - カプセル化と抽象化 OOP の概念
カプセル化は情報隠蔽ですか、それとも情報隠蔽につながりますか??
カプセル化はデータと機能を単一のエンティティにバインドすると言うように、データ フローを制御し、適切に定義された関数を介してのみエンティティのデータにアクセスできます。したがって、カプセル化が抽象化または情報の隠蔽につながると言うとき、それは、どのデータを非表示にし、どのデータをユーザーに表示するかというアイデアを提供することを意味します...ユーザーがアクセスできないデータはそれらから隠される可能性があるため、カプセル化によりどのデータを非表示にして、何を表示する必要があるかを見つけるためのテクニック...この概念は正しいですか??
そして、情報の隠蔽と抽象化の違いは何ですか??
.net - タイマー効率
私は、数万のオブジェクトを含むシステムを開発することを計画しています。これらのオブジェクトには、それぞれ最大42(ただし、おそらく4または5程度)の個別のアクションがあり、定期的に実行される可能性があります。また、オブジェクトが使用されるまでタイマーを非アクティブ化するコードを作成する予定です。アイドル状態の場合、オブジェクトはそれぞれ1つのタイマーのみを必要としますが、アクティブな場合、他のタイマーはすべて一度に開始されます。最初はオブジェクトの数は少なく、おそらく数百になりますが、指数関数的に増加し、数か月以内に数万に達し始めると思います。
そのため、タイマーとこれらのオブジェクト用に作成するコードの効率について非常に心配しています。このアプリケーションを作成できるレベルは3つあり、すべてが必要なタスクを正常に実行します。また、このシステムをクアッドコアサーバーで実行する予定なので、可能な限りマルチスレッドを利用したいと思います。
この目的のために、経過イベントごとに新しいスレッドを起動するSystem.Timers.Timerクラスを使用することにしました。
これらは私が検討している3つのレベルです:
1つのタイマーがアプリケーション全体を操作し、各オブジェクトを反復処理し、他のアクションを実行する必要があるかどうかを確認し、実行する必要がある場合は、それらを実行してから次のアクションに進みます。
各オブジェクトにマスタータイマーがあり、オブジェクトが実行する必要のあるすべての機能をチェックし、準備ができている機能を実行して、次のタイマー間隔を次に必要なアクション時間に設定する多層タイマー。
各オブジェクトの各アクションに、トリガーされ、次に使用可能になるときに実行されるように設定された独自のタイマーがある再帰層タイマー。
オプション1の問題は、オブジェクトとアクションが非常に多い場合、この方法で1つの単一タイマーが経過すると(数百万行のループコードを実行している間)20秒以上実行される可能性があることです。 。オブジェクトの同期が保たれていないと、システムがうまく機能しない可能性があります。
オプション2の問題は、オプション3よりも書き込みが少し難しいことですが、それほどではありません。システム上で実行されているタイマー(オブジェクトごとに1つ)が10,000以上あり、それぞれでスレッドを作成および破棄することも意味します。誰のビジネスのようにも経過します(これが問題であるかどうかはわかりません)。この状況では、各タイマーは少なくとも1秒に1回起動する必要があり、おそらく数百行のコードが実行されます(極端な場合は最大で1,000行)。
オプション3の問題は、システムに導入される可能性のあるタイマーの量が非常に多いことです。私は平均10,000以上のタイマーについて話していて、100,000以上のタイマーが同時に実行される可能性があります。ただし、各経過イベントは50行以下のコードを実行するだけでよく、非常に短くなります。経過イベントには、一方の極端な場合は100分の1秒、もう一方の極端な場合は5分の遅延があり、平均は約1秒である可能性があります。
私はVisualBasic.NETに精通しており、その中でそれを書くことを計画していましたが、それが大きな違いを生むのであれば、高校時代に戻って効率を上げるためにこれをC ++で書くこともできます(言語間のコード効率に関する情報源があるかどうかを知っています)。また、クアッドコアWindowsサーバーではなくクラスター化されたLinuxサーバーでこれを実行するという概念をいじっていますが、.NETアプリをそのようなLinuxクラスターで実行できるかどうかはわかりません(情報があればいいのですが)その上でも)。
このトピックに答える主な質問は次のとおりです。
オプション1、2、または3を使用しますか?その理由は何ですか?
〜コメントを考慮して編集〜
したがって、スピンロック付きのタイマーホイールを含む4番目のオプション。これがジョブクラスです:
そして、メインループの実装:
私はそれを正しく持っていますか?
〜編集2〜
「タスク」という単語を「ジョブ」に切り替えて、pplがそれについて文句を言うのをやめることができるようにしました;)
〜編集3〜
時間を追跡し、必要なときにスピンループが発生するようにするための変数を追加しました
device - 振動を測定するデバイス - データを取得していますか?
やあみんな、私は大学のコンセプトに取り組んでいます。部屋の特定の振動を測定する最も簡単で最良の方法は何だろうか. 踊っている人々でいっぱいの部屋を想像してみてください。振動値を読み取ったり、振動をデータとして使用したりできるように、データをコンピューターに送信する床に置くことができる手頃な価格のデバイスはありますか?
ご協力ありがとうございました
java - 可逆ループ
私は自分が作ろうとしているゲームを試しています。for ループを除いて同一のメソッドが 2 つあることがわかりました。これは単に前者の逆です。
同じコードを前後に使えるように作ってみました。私は終わった:
A) B) このコンセプトをみんなと共有したかった。
B) そのようなループの効率に興味があります。アクセス時にターゲット数と増分係数を計算していることは知っていますが、それをテストする方法がわかりません。
C) 作業中に、一時変数を使用せずに 2 つの変数を交換する 1 行を見つけました。読むのに少し時間がかかりますが、これは temp を使用するよりも (コード的に) 優れていますか? (下のメインの 3 行目)
機能をテストしましたが、期待どおりに動作します。2 番目の数値が最初の数値より大きい場合は、カウントアップします。そうでない場合は、カウントダウンします。私のテストコードは次のとおりです。
コメントに基づいて、これは受け入れられるでしょうか:
progress - プログラムが完了するのに必要な時間を見積もり、それをプログレス バーに反映するにはどうすればよいでしょうか?
これはプログラミング言語固有のものではありません。
プロセスが完了するのに必要な時間をどのように推定できるかを理解する必要がありますか? たとえば、ファイルを解凍したり、CD を焼いたりしますか? この計算の精度を高める要因は何ですか?
もちろん、プログラミング言語のいくつかの例が役に立ちます。
c# - Windowsベースのチャットアプリケーションに関する概念が必要
Windowsチャットアプリケーションを開発したい場合は、チャットサーバーとクライアントも開発する必要があるとします。チャットサーバーアプリを開発した後、そのアプリをマシンで実行でき、チャットクライアントは別のPCを実行します。それらのPCが同じネットワークにない場合は、チャットサーバーが米国のマシンで実行され、1つのチャットクライアントがドイツのマシンで実行され、別のチャットクライアントが英国のマシンで実行されているとします。この状況では、インターネットを使用して通信がどのように行われるか。すべてのnachineはインターネットにアクセスできるため、1つのチャットクライアントがチャットサーバーにログインする方法と、2つのチャットクライアントが相互に通信する方法があります。チャットサーバーを介してデータが1つのクライアントから別のクライアントにどのように転送されるかを知りたいだけです。コンセプトを教えてください。さもないと、チャットサーバーとチャットクライアントが存在する優れた.netベースのチャットアプリケーションのリファレンスを誰かに教えてもらえればもっと良いでしょう.........ありがとうございます。