問題タブ [code-separation]
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.
c++ - デバッグ クラス、C++、リンカ エラー
私が取り組んでいるプロジェクトのデバッグ クラスを作成しようとしていますが、デバッグ オブジェクトを渡す必要がないので、このようにしようとしていました。ただし、コンパイラまたはリンカが、作成中の実装をスキップしているように見える理由がわかりません。
#include "Debug.cpp" を main.cpp に追加すると、このコードは問題なく動作します。実装を .h ファイルに入れるか、Debug.cpp を #include しない限り、コンパイラは何らかの理由で open、close、および print 関数の実装を欠いています。
Debug.cpp に実装が表示されない理由がわかりましたか?
関係ないと思いますが、現在、debug.h と debug.cpp は 1 つのプロジェクトにあり、main.cpp は別のプロジェクトにあります (両方とも同じソリューション内ですが、Visual Studio 2008)。main.cpp は実行可能ファイルとしてビルドされ、debug.h と debug.cpp はダイナミック ライブラリ (dll) としてコンパイルされます。
Debug.h
コード: すべて選択
Debug.cpp
コード: すべて選択
main.cpp
コード: すべて選択
メイン関数の印刷行のコメントを外すと、次のエラーが発生します。
コード: すべて選択
編集:私の元の議論へのリンク:
http://elysianshadows.com/phpBB3/viewtopic.php?f=6&t=5328&start=999999
javascript - プロセスの途中でユーザーに確認を求める
ユーザーがそのアクションの特定の部分を実行したいことを確認するまで、アクション(関数/メソッド呼び出し)を一時停止するための適切なアプローチを探しています。コードの実行を停止できない環境でこれを行う必要があります(私の場合はActionScriptですが、JavaScriptのアプローチは同じである必要があります)。
説明のために、これはユーザープロンプトを導入する前のアクションのモックアップです。
必要なのは、条件付きのユーザープロンプト、「この部分を実行しますか?」を挿入し、<optional-phase>
ユーザーが実行したい場合にのみ実行することです。
これをActionScript/JavaScriptで行おうとすると、次のようになります。
<optional-phase>
これで、との両方<ending-phase>
が複製されます。また、で作成されたオブジェクトを使用しているため、<preliminary-phase>
すべてのデータをそれらの関数に渡さずに外部関数に移動することはできません。
私の現在の解決策は、確認を求める前に宣言されたいくつかのローカル関数<optional-phase>
と<ending-phase>
いくつかのローカル関数を囲み<preliminary-phase>
、コードを複製する代わりにそれらの関数を呼び出すことですが、コードは実行された順序ではなくなりました。
何をお勧めしますか?
注:
1。askForConfirmation
は非ブロッキング機能です。これは、その呼び出しに続くコードがすぐに実行されることを意味します(これがreturn;
私のアプローチにある理由です)。
php - SQLをPHPコードから分離する方法
ユーザーの処理に役立つクラスがあります。例えば:
これらすべてのメソッドには、SQLクエリが含まれています。一部のアクションは1つのSQLクエリのみを必要とし、一部は複数です。データベース構造が変更された場合、すべてのクエリを変更することは困難になります(クラスが長い)。そのため、SQLクエリをこのクラスから遠ざけることを考えました。しかし、これを行う方法は?
この質問を読んだ後、私はストアドプロシージャについて知っています。これは、1つのアクションに必要なSQLクエリ(ストアドプロシージャの呼び出し)が1つだけであることを意味しますか?しかし、phpから分離SQLを整理する方法は?SQLクエリを配列に保持する必要がありますか?または、sql-queriesクラスである必要があります。はいの場合、このクラスを編成する方法(多分私が学ぶべきパターン)
asp.net - 別のプロジェクトの asp.net 静的コンテンツ。今どのように参照するのですか?
Project1.csproj は Web サイト プロジェクトであり、StaticContent.csproj はすべての .css、.js、および画像ファイルを保持する静的コンテンツ プロジェクトです。デザイナーがメインのプロジェクト ファイルに触れずに作業でき、将来 cdn を使用できるように、私はそれを分けておきます。しかし、問題は、私の .ascx および .aspx ページがこれらの css および js ファイルをどのように参照するのかということです。
jquery - Flex にはコンポーネントがあります。HTMLで似ているものは何ですか?
Flex で非常に便利なのは、コンポーネントを作成し、コーディングし、スキンを適用して、好きなように再利用できることです。これは、作成するコピーのそれぞれからコードが独立していることを意味します。
私はhtmlとjsを使用してこれを達成しようとしています(私はjQueryを使用していますが、可能性はあります)。
基本的に、独自の JS コードと独自のスキンを持つページ (コンポーネント) を作成しました。ここで、このコンポーネントを複製し、それぞれに独自のコードを持たせたいと考えています。
私は2つのオプションを試しました。
- コンポーネントを iFrame としてロードします。このようにして、2 つのページが読み込まれるため、それらのページ内のコードが分離されます。ただし、iFrame は面倒です。ドラッグアンドドロップではうまく機能せず、サイジングに関しては異なる動作をします。
- PHP を使用してこれらのコンポーネントを含めようとしました。ただし、これを行うと、すべて同じソースを共有しているため、コードを分離する方法がわかりません! つまり、ビジュアル部分は分割されています (2 つのコピーがあります) が、その下のコードは同じです。
これを行う賢い方法を知っていますか?
具体的な例が必要な場合は、簡単な例を次に示します。
車のゲームを作成しています。車は2台しかありません。各プレーヤーは、異なるキーを使用して同じキーボードで演奏します。したがって、「車」コンポーネントを作成します。各車は同じ動作をしますが、独立して実行する必要があります。
1 つを構築するのは非常に簡単です。しかし、コードを複製せずに 2 つ目のコードを作成するにはどうすればよいでしょうか?
android - Android アプリのロジックと GUI の分離。サービスにはアプリの知識があり、すべきではありません
私は Android プログラミングの初心者です (主に Windows で C# を使用しています)。サービスとアプリで構成されるコードを継承しました。サービスとアプリの一部を別のアプリで再利用したい。図書館に置いてます。1 つの問題を除いて、すべてがうまくいきました。サービスには、メイン アクティビティを画面に表示するコードが含まれています。このアクティビティを名前で呼び出します。明らかに、共通コードでそれを使用することはできません。サービス コードは次のようになります。
このコードは、何か興味深いことが起こったとき (銀行口座がマイナスになったときなど)、サービスによって実行されます。問題は、上記でハードコーディングされた「MyBankingActivity.class」です。MyBankingActivity はアプリケーション固有であるため、ライブラリから削除しました。ただし、古いアプリを動作させる必要があります。ライブラリとアプリに分けて、ライブラリ内のかなりのロジックを別のアプリで再利用できるようにしたいだけです。その他のアプリでは、この「銀行イベント」の通知を特に受けたくありません。私が行ったとしても、コードは現在、1 つのアクティビティの名前でハードコーディングされています。
ここでロジックを分離する正しい方法は何ですか? サービスはイベントを「公開」し、関心のあるアプリは「サブスクライブ」する必要があるように思われます。少なくとも、それは私がよく知っている用語です。ちなみに、今のところ、コードのブロック全体をコメントアウトしただけで、もちろんこの通知を受け取ることを除いて、すべてが古いアプリで正常に動作します.
私の質問が広範であることを認識しています(そして謝罪します)。「人に魚を与えるのではなく、釣り方を教える」方がよいかもしれないので、このトピックをより広くカバーしている参考文献/記事/本を自由に推薦してください. 自分の限られたライブラリを自分で調べようとしましたが、私の本が入門的すぎるか (Android in Action はその 1 つです)、間違った場所を探しています。図書館の立ち上げや執筆サービスの話題でさえ、手に入れるのは難しいようです。1. サービスは、アプリの知識がなくても関心のあるアプリにイベントをどのように伝達するか 2. 何らかのメッセージに基づいてアプリをフォアグラウンドに移動するにはどうすればよいかサービスから受け取った 3. 既存のアプリを取得して、ライブラリ (非 GUI または非アプリ固有のもの) とアプリに侵入する方法。4.
前もって感謝します、デイブ
javascript - JQueryでは、JavaScriptからHTMLを除外するにはどうすればよいですか?
JQuery は素晴らしいと思いますが、HTML を HTML ドキュメントに保持し、JavaScript には実質的に何も保持しないという考えも気に入っています。どういう意味ですか?たとえば、多数の行または可変数の行を持つ動的テーブルを作成しているとします。これはまさに私がやりたくないことです:
数年前、私はほとんどうまく機能するソリューションを思いつき、頻繁に使用していますが、それでももっと良いものを見たいと思っています。それが私の質問です。私の現在の戦略は、メインの HTML ファイルの下部に非表示の div を作成することです。例えば:
次に、javascript を次のように変更します。
わかりました、私のソリューションで気に入らない点の 1 つは、かなり冗長ですが、公平を期すために、テンプレートが何らかの複雑さを持っている場合は、それが際立っているように見えます。テンプレートの良い候補は、5 行以上の HTML です。それが有利なもう 1 つの点は、Javascript から HTML を取り出す役割を果たしていることです。これで、HTML デザイナーに隠しテンプレート div の HTML を編集してもらい、外観を変更して、必要に応じてクラスを配置できるようになりました (テンプレートとその機能について彼に教えるのは簡単でした)。 Javascriptに触れる必要はありません。ただし、最近、テーブル全体をテンプレートとして定義する際に問題が発生しています。JQuery がテンプレートを読み取ると、テーブル コードを再解釈しようとし、それを台無しにします。
actionscript-3 - Flexでアコーディオンパネルを複数のファイルに分割しますか?
私は5つのパネルを持っており、それらすべてにいくつかのロジックがあります。
すべてのパネルのスタイル、コード、レイアウトを複数のファイルに分割するにはどうすればよいですか?
java - javaSwingのドメインからユーザーインターフェイスを分離する
Java Swingの初心者として、ユーザーインターフェイスロジックをドメインロジックから分離するのに問題があります。
JLabel、JTextField、およびJButtonを含むJFrameを備えた小さな(些細な?)Swingアプリがあります。JButtonを押すと、JFileChooserダイアログがポップアップします。ファイルを選択した後、JTextFieldにはファイルへの絶対パスが含まれます。これまでのところ、壮観なものはありません。次に達成したいのは、ファイルのこの絶対パスが、選択が行われ、JTextFieldが更新されたとき(ファイルが選択されるたびに)にファイルの実際の処理を処理するファイルマネージャークラスに「注入」されることです。 JButtonを使用)。
私が持っている質問:
- ファイルの読み取りを開始するタイミングをファイルマネージャーに通知するにはどうすればよいですか?(たとえば、そのファイル内の行数を数えます)
- UIレイヤー内で最小限の情報が共有されるようにドメインレイヤーを実装するにはどうすればよいですか?UIにファイルマネージャーインスタンスを追加する必要がありますか?
- JTextFieldの値をファイルマネージャーへの参照として使用する必要がありますか、それともJButtonアクションを使用して値をファイルマネージャーに設定する必要がありますか?つまり、JTextFieldのpropertychangelistenerを使用するか、JButtonのactionlistenerを使用しますか?
- filebeanを使用して、ドメインレイヤー内にファイルの絶対パスを保存する必要がありますか、それともファイルマネージャーに直接挿入する必要がありますか?違いは次のとおりです。プロパティ変更リスナーを使用すると、UI入力が変更されたときにファイルの絶対パスの値を更新できますが、コンストラクターまたはセッターを使用して値を直接挿入する場合は、ファイルマネージャーで変更を処理する必要があります。 filebeanの変更を処理する代わりに。
- ドメインロジック内のファイルマネージャー内のUIで使用されているfilebeanを参照するにはどうすればよいですか?
- ドメインロジックはビジネスロジックと同じですか?つまり、ファイルマネージャクラスはパッケージwhatever.b-logicにあり、filebeanクラスはパッケージwhatever.domainにある必要がありますか?
アプリケーションはいくつかのパッケージに分かれています。
- 何でも:メインクラス
- 何でも。プレゼンテーション:スイングのもの
- 何でも.domain:データのもの
- whatever.logic:アプリケーションロジック
私は十分に明確であることを願っています...
物事を片付けてくれてありがとう。
c++ - クライアント サーバー ゲームのコードを整理する
バックグラウンド: 私は、標準的なクライアント サーバー アーキテクチャを使用する、ほとんどが C++ で書かれたマルチプレイヤー ゲームの開発を支援しています。サーバーは単独でコンパイルでき、クライアントはサーバーと一緒にコンパイルされるため、ゲームをホストできます。
問題
このゲームは、クライアント コードとサーバー コードの両方を同じクラスに結合しますが、これが非常に面倒になり始めています。
たとえば、以下は一般的なクラスで見られる可能性のあるものの小さなサンプルです。
そしてヘッダー:
ご覧のとおり、サーバーのみをコンパイルする場合、プリプロセッサ定義を使用してグラフィックとサウンド コードを除外します (これは醜いように見えます)。
質問:
クライアント/サーバー アーキテクチャのコードを整理してクリーンに保つためのベスト プラクティスにはどのようなものがありますか?
ありがとう!
編集:優れた組織を使用するオープン ソース プロジェクトの例も歓迎します :)