問題タブ [private]
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.
ruby - Rubyで保護されたメソッドとプライベートメソッドを単体テストする最良の方法は何ですか?
Test::Unit
標準のRubyフレームワークを使用して、Rubyで保護されたプライベートメソッドを単体テストする最良の方法は何ですか?
誰かがパイプを鳴らして、「パブリック メソッドのみを単体テストする必要があります。単体テストが必要な場合は、保護されたメソッドやプライベート メソッドであってはなりません」と断言するでしょうが、私はそれについて議論することにあまり興味がありません。正当かつ正当な理由で保護またはプライベートなメソッドがいくつかあります。これらのプライベート/保護されたメソッドは適度に複雑であり、クラスのパブリック メソッドはこれらの保護/プライベート メソッドが正しく機能することに依存しているため、テストする方法が必要です。保護された/プライベート メソッド。
もう1つ...私は通常、特定のクラスのすべてのメソッドを1つのファイルに入れ、そのクラスの単体テストを別のファイルに入れます。理想的には、この「保護されたメソッドとプライベート メソッドの単体テスト」機能を、メイン ソース ファイルではなく、単体テスト ファイルに実装して、メイン ソース ファイルをできるだけシンプルかつ簡単に保つために、すべての魔法を使いたいと思います。
.net - RSA 秘密鍵には常に公開鍵が含まれていますか? それとも .NET だけですか?
私は .NET 2 で RSACryptoServiceProvider を使用していますが、公開鍵と秘密鍵のペアの秘密部分には常に公開部分も含まれているようです。
公開鍵を使用して一部の情報を暗号化し、相手が暗号化したもののみを復号化できるようにする必要があります。メッセージをどのように暗号化したかを彼らに知られたくありません。.NET で RSACryptoServiceProvider を使用することは可能ですか?
c++ - C ++では、クラス/構造体のパブリック、プライベート、および保護されたメンバーの言語によってグループ化が強制されないのはなぜですか?
論理的なグループ化を許可するだけですか?
c++ - C ++で実際にプライベートまたは保護された継承が必要なのはなぜですか?
C ++では、基本クラスからプライベート/保護を継承したい場合は考えられません。
本当に便利ですか?
networking - ネットワークを介してプライベートアプリ間でプライベート通信を行う方法は?
これは基本的に、複数の PC にインストールされる 1 つのアプリであり、インストールごとに独自のデータベースが維持されます。このデータベースは、同時に稼働している (同じネットワークに接続されている) ときに他のデータベースと同期されます。
私は単純なソケット接続とカスタム バッファを使用してこれをテストしましたが、アプリ間の通信を受け入れられた標準に準拠させ、安全で堅牢にすることを望んでおり、車輪を再発明しようとはしません。
このアプリ間の通信を行う通常/標準的な方法は何ですか? 詳細はどこで確認できますか?
また、ネットワーク上の他のアプリをアナウンスしたり見つけたりするために、どのようなテクニックを使用できますか?
編集:(私の問題を改善する)
以下の gimel が指摘する pub/sub モデルは、私が必要としているものに沿っているようです。しかし、それは多くの分野をカバーしており、それらすべてから何を取り除いて使用するべきか本当にわかりません。
また、2 つ以上のアプリがお互いを見つけたら、P2P 接続を確立する必要があるようです。どうすればよいですか?
利用可能な例/チュートリアルがある場合は、それらを指摘してください。私が必要とするようなものを実装する小さなオープンソースプロジェクト/モジュールも役立ちます。
私が選んだプラットフォームは Linux ですが、Windows ベースの例も非常に使いやすいでしょう。
編集 [09-01-06]:
現在、次のオプションを検討しています。
- マルチキャスト(TLDP-Howto) - これは機能するようですが、もう少し勉強する必要があります。
- 無料の動的 DNS サーバーを使用しますが、これは少し危険に思えます...
- gmail/yahoo/...などの無料の電子メール機能を使用し、そこからメールを送信/読んで、他のアプリのIPを見つけます(機能しますが、汚いと感じます)
- webservices が提案されましたが、それらがどのように機能するのかわかりません。詳しく調べる必要があります
これらのオプションについてご意見をお聞かせください。また、例があれば教えてください。残念ながら、中央サーバーまたはウェブサイトを使用するオプションはありません (無料で永続的であることが保証されている場合を除きます)。
[2009 年 2 月 19 日編集]
(2つまたは3つの回答を受け入れることができたらいいのにと思います!私が受け入れたのは、考え方と可能性を提供するためであり、他の人は固定されているが適用可能な解決策を提供していました。回答してくれたすべての人に感謝します。すべてが役に立ちます。)
解決策を見つけて実装したら、この質問を更新します。解決策が適切であれば、そのための sourceforge プロジェクトを作成します。(いずれにせよ、はるかに大きなプロジェクト内の小さな問題です。)
c++ - 同じ名前の C++ 変数、コンテキスト: グローバルおよびプライベート、
次のコードでは、g++ は次のエラーを返します: 1.cpp: In member function void W::test()':
1.cpp:6: error:
int F::glob' is private 1.cpp:19: error: within this context
しかし、「プライベート」「グロブ」の代わりに、グローバルに宣言された変数「グロブ」をここで使用すべきではありませんか?
javascript - プロトタイプの Javascript プライベート メンバー
さて、私はこれが何らかの方法で可能であるかを理解しようとしました。コードは次のとおりです。
ご覧のとおり、プロトタイプのゲッターを作成しようとしました。何のために?さて、あなたがこのようなものを書くなら:
...すべてがうまくいくはずですが、実際にはオブジェクトを作成するたびに、メモリを使用するgetText関数を作成します。同じことを行うプロトタイプ関数をメモリに配置したいと思います...何かアイデアはありますか?
編集:
クリストフから提供された解決策を試しましたが、今のところ唯一の既知の解決策のようです。コンテキストから値を取得するには ID 情報を記憶する必要がありますが、全体のアイデアは私にとっては素晴らしいものです :) ID は覚えておくべき唯一のものであり、他のすべては一度メモリに格納できます。実際、この方法で多くのプライベート メンバーを保存し、いつでも 1 つの ID だけを使用できます。実際、これは私を満足させます:)(誰かがより良い考えを持っていない限り)。
key - 公開鍵の例でXMLに署名しますか?
私はSAMLサービスの実装に取り組んでいます。そのため、IDプロバイダーは、サービスプロバイダー(サービスプロバイダーが秘密鍵を使用して検証する)にアサーションを送信する前に、サービスプロバイダーの公開鍵を使用してSAMLアサーションにデジタル署名することになっていると思います。ただし、SignXMLオブジェクト(C#)を使用して公開鍵を使用して署名する例を見つけるのに苦労しています。すべての例は、秘密鍵を使用して署名しています。
任意の例やアドバイスをいただければ幸いです。
oop - パラメーターとメンバー変数
私は最近、他の誰かのコードを扱っていて、この個人がプライベート変数とメソッド パラメーターに関して私とは非常に異なる哲学を持っていることに気付きました。一般的に、プライベート変数は次の場合にのみ使用する必要があると感じています。
- 変数は、後で呼び出すために保存する必要があります。
- 変数に格納されたデータは、クラス内でグローバルに使用されます。
- 変数をグローバルに操作する必要がある場合 (すべてのクラス メソッドで変数を読み取る必要がある場合とは明らかに異なります)。
- プログラミングが大幅に簡単になるとき。(確かに漠然としていますが、自分を窮地に追い込むことを避けるために、多くの状況に身を置く必要があります)。
(上記の多くは少し繰り返していることは認めますが、そのような扱いに値するほどそれぞれが異なっているように見えます...)
これは、誤って変数が変更されるのを防ぐ最も効率的な方法のようです。また、これらの標準に従うと、(クラスが最終的に変更された場合) 外部参照の最終的な操作が可能になるように思われるため、将来さらにオプションが残されます。これは単なるスタイルの問題 (1 つの真のブラケットやハンガリーの命名規則など) ですか、それともこの考えには正当な理由がありますか? この場合、実際にベストプラクティスはありますか?
編集
これは修正する必要があると思います。上記の「グローバル」を実際に使用したのは、「インスタンスメソッドによるグローバル」であり、「どこからでもグローバルにアクセス可能」ではありません。
edit2
例が求められました:
これは私がやったであろう方法です:
c# - C#でメンバーのグループをプライベート/パブリックとしてラベル付けする
C++ クラス宣言では、メンバーのグループにプライベートまたはパブリックとしてラベルを付けることができます。
C# でこれを行う方法はないようです。私が間違っている?