問題タブ [internals]
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.
git - git インデックスには正確に何が含まれていますか?
Git インデックスには正確には何が含まれていますか? また、インデックスの内容を表示するにはどのコマンドを使用できますか?
ご回答ありがとうございます。インデックスがステージング領域として機能し、コミットされたものが作業ツリーではなくインデックスにあることを私は知っています。インデックスオブジェクトが何で構成されているかについて興味があります。ファイル名/ディレクトリ名のリスト、SHA-1ペア、一種の仮想ツリーではないでしょうか?
Git 用語で、インデックスの内容を一覧表示するために使用できる配管コマンドはありますか?
perl - PerlのC変換バックエンドの用途は何ですか?
純粋に明白なこと以外:「PerlをCに変換します。」; Perlコンパイラの最適化されたC変換バックエンドB::CCの実際の使用法(別名ハック)はありますか?
javascript - SeleniumのwaitForメカニズムの内部の仕組みは何ですか?
doClick(locator) への呼び出しをインターセプトすることにより、(user-extentions.js を介して) Selenium のクリック コマンドの動作をカスタマイズしようとしています。基本的に、アプリケーションの「ビジー インジケーター」が表示されているときはいつでも、クリック アクションを遅らせる必要があります。
(現在、この種のことに対する標準的な答えは、そのような状況のスクリプトにwaitForを挿入することです。実際、現在、スクリプト全体で無数のそれらがあります。私はそれらを排除しようとしています。)
ページ要素の検出は些細な部分です。注意が必要なのは、スクリプトを実際に待機させることです。私の有望な見た目ですが、失敗した試みは次のようになります。
doWaitForCondition はすべてのクリックの前に呼び出されますが、条件が false と評価されても待機しません。nativeClick は常にすぐに呼び出されるため、遅延は発生しません。doWaitForCondition 関数は実際には待機自体を行わず、コマンド実行ループ内でその条件を確立しているのではないかと思います。この場合、クリック コマンドは既に実行されており、コマンド内でコマンドを実行しようとしています。
Seleniumコマンドの実行とwaitForがどのように機能するか、またはこれがどのように行われるかについて提案を提供する方法について誰かが光を当てることができますか?
networking - ルーティング用のパケット生成
コースワークの一環として、カーネルのIPルックアップコードを変更しています。変更を加えてテストしたいと思います。これらのIPルックアップのデータを生成するにはどうすればよいですか。/proc/sys/net/を変更します。 ip_forward to 1は、必要なデータを生成するのに役立ちますか?
言い換えれば、私はカーネルでのIPルックアップの実装の異なるセットを持っており、これらの実装の統計を収集したいのですが、どうすればよいですか..
django - djangoが内部でどのように機能するかを知るにはどうすればよいですか?
だから私は少しの間djangoをいじっていて、このフレームワークが本当に好きです。ただし、実際に「隠れて」どのように機能するかをよりよく理解したいと思います。
これが私の現在のclient-server-djangoの世界観です.
- ブラウザは、HTTP リクエストをサーバーに送信します。
- サーバーはその魔法を実行し、CGI を介して要求を django にダンプします (?)
- django の一部 (どれ?) がリクエストを受け取り、それを django リクエスト オブジェクトに変換します。
- リクエストオブジェクトは、奇妙なことをするミドルウェアを介していくつかのあいまいなパスをさまよっています。
- リクエスト オブジェクトは最終的に、URL を調べて urls.py からパターンを取得し、ビュー関数を呼び出す何らかの関数 (どれ?) で終了します。
- ビュー関数は魔法のように機能します (モデルとテンプレートを副次的なパートナーとして使用します)。これはおそらく、私が理解している最も強い幻想を持っている場所です (まあ、データベースの抽象化の魔法は別として、つまり... ;)
- ビュー関数は HttpResponse オブジェクトを返します。これは、CGI へのあいまいなパスで返されると思います。
- Web サーバーが再び引き継ぎ、HTTP 応答をクライアントに送信します。
わかりました、それで、あなたが尋ねる私の質問は一体何ですか? さて、これは実際にどのように機能するのでしょうか? あなたが私にすべてをスプーンで食べさせるとは思っていません...答えは最終的に「ソースを読んでください、ルーク」になると思いますが、
- あなたは私のグロスの誤解を解くことができます
- どこから始めればいいですか?私がやりたいことは、デバッガーをつかみ、プロセスを数回実行することですが、どこから始めればよいかわかりません
- これをうまく説明しているドキュメントを教えてください...はい、このグーグルのことは聞いたことがありますが、本当に役立つものは何も見つかりませんでした。
どうもありがとうポール
drupal - Drupal はどのようにページを組み立てますか
単一のページの作成に関与するさまざまなサブシステムを詳細に示しているアーキテクチャ ガイドはありますか?
何かを見つけようとしましたが、DrupalCons でのプレゼンテーションでさえ詳細には触れていません。
java - Javaインターフェイスは内部でどのように実装されていますか?(vtables?)
C++には多重継承があります。アセンブリレベルでの多重継承の実装は非常に複雑になる可能性がありますが、これが通常どのように行われるかについてはオンラインで適切な説明があります(vtables、ポインター修正、サンクなど)。
Javaには複数の実装継承はありませんが、複数のインターフェース継承があるため、クラスごとに1つのvtableを使用する単純な実装ではそれを実装できないと思います。Javaはどのようにインターフェースを内部的に実装しますか?
C ++とは異なり、JavaはJitでコンパイルされるため、コードの断片が異なれば最適化も異なり、JVMも異なると動作が異なる可能性があることを認識しています。それで、多くのJVMがこれに従ういくつかの一般的な戦略がありますか、または誰かが特定のJVMでの実装を知っていますか?
また、JVMは多くの場合、仮想化を解除してメソッド呼び出しをインライン化します。この場合、vtableまたは同等のものはまったく含まれないため、仮想/インターフェイスメソッド呼び出しを実装する実際のアセンブリシーケンスについて質問するのは意味がないかもしれませんが、ほとんどのJVMはまだいくつかを保持していると思いますすべてを非仮想化できなかった場合に使用するクラスの一般的な表現の一種。この仮定は間違っていますか?この表現はC++vtableのように見えますか?その場合、インターフェイスには個別のvtableがあり、これらはクラスvtableとどのようにリンクされていますか?もしそうなら、C ++のオブジェクトインスタンスのように、オブジェクトインスタンスは(クラス/インターフェイスvtablesへの)複数のvtableポインタを持つことができますか?同じオブジェクトへのクラスタイプとインターフェイスタイプの参照は常に同じバイナリ値を持ちますか、それともポインターの修正が必要なC ++のようにこれらが異なる可能性がありますか?
(参照:この質問はCLRについて同様の質問をします。このmsdnの記事には、今では時代遅れになっているかもしれませんが、良い説明があるようです。Javaに似たものは見つかりませんでした。)
編集:
- 「JavaクラスArrayListがListインターフェースを実装する」という意味ではなく、「GCCコンパイラが整数加算/関数呼び出しなどをどのように実装するか」という意味で「実装」を意味します。
- これがJVMバイトコードレベルでどのように機能するかを知っています。知りたいのは、クラスファイルのロードとバイトコードのコンパイルが完了した後にJVMによって生成されるコードとデータ構造の種類です。
ruby-on-rails - コントローラーメソッドにビューをレンダリングさせるためにRailsはどのRubyテクニックを使用しますか?
Railsフレームワークで次のことを実現するためにRubyの手法がどのように使用されているかを誰かが知っているかどうかだけ知りたいです。
index
たとえば、Railsコントローラーでメソッドを記述しない場合でも、URLがそのルートと一致すると、Railsはインデックスビューファイルをレンダリングします。私のコントローラーは親クラスを継承しているので、それは理にかなっています。親クラスには独自のindex
メソッドが必要です。
ただし、メソッドを定義し、index
インスタンス変数を設定するように指示した場合でも、適切なビューがレンダリングされます。例えば:
純粋なRubyでは、その動作を取得するために呼び出すsuper
必要があると思います。
Railsは、ある種のメタプログラミング手法を使用して、コントローラーメソッドがを呼び出すことを保証していると思いますsuper
。もしそうなら、誰かがそれを説明できますか?これを行うソースコードを教えていただけますか?
アップデート
MladenJablanovićが指摘したように、私の最初のメンタルモデルは間違っていました。コントローラメソッドは通常、ビューをレンダリングしません。代わりに、コントローラーメソッドとビューレンダリングの両方がフレームワークコードによって呼び出されます。これは明らかです。たとえば、任意の名前のコントローラーメソッドを作成でき、ビューがレンダリングされるからです。その場合、明らかに私は親メソッドをオーバーライドしていません。一部のフレームワークコードは、コントローラーメソッド名を解析し、一致するビューを探しています。search
search
それでも、フレームワークは、コントローラーメソッドがすでにを呼び出しているかどうかを検出できる必要がありますrender
。それは私にとってもう一つの小さな謎です。
php - PHPは実際にどのように機能しますか?
PHP の内部構造について説明しているガイドはありますか?
- ファイルはどのようにロードされますか (必須、含まれていますか)?
- それらはどのように解析および実行されますか?
- メモリはどのように割り当てられますか?
- オブジェクトはどのように作成/破棄されますか?
- 外部モジュールはどのようにロードされますか?
- スタック/ヒープはどのように機能しますか?
- オペコードキャッシングは実際にどのように機能しますか?
- 一般的なハックとパフォーマンスのヒント?
python - pythonic way of modifying a mutable inside an immutable
let's say I have a class that behaves as an int to the outside world, but in fact is a mutable object that has a fixed place within several structures. if n is my object, I can update it now by writing n.update(34)
, but I find I'm always wanting to write n = 34
instead. I've glanced over http://docs.python.org/reference/datamodel.html, and don't see anything like an __assign__ or __value__ attribute that would let me trap the =
operator and allow me to update my object rather than assign an int to the variable n, throwing my object away. better still, when a mutable is inside a tuple t = (m, n)
, I would like to update my mutable with t[1] = 34
, but Python sees that as attempting to modify an immutable.
so I guess the answer would be, based upon what little of that document I was able to grok, that what I'm attempting is not Pythonic. so if I can't do it the way I want, what would be the next best thing? such that if someone has to maintain my code someday, it won't be overly offensive.