問題タブ [cfwheels]
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.
model-view-controller - MVCフレームワークの静的ページ?
「ホーム」などの静的ページをMVCフレームワークのどこに配置しますか?「ホーム」コントローラーはありますか?「ページ」コントローラー?静的ページごとにアクションを作成しますか?
私は現在CFWheelsを使用しており、それらを配置するのに最適な場所を見つけようとしています。
編集:どうやらCFWheelsでは、すべてのビューに対してアクションを作成する必要はありません。したがって、空のコントローラーを作成してアクションのようにビューを呼び出すことができますが、空白の関数を書き出す必要はありません。
coldfusion - cfwheels でリダイレクトを単体テストする方法
リダイレクトを実行するコントローラ アクションを単体テストする正しい方法は何でしょうか?
更新: 私は CFWheels プロジェクトのコア開発者です。私がこの質問をしている理由は、現在、組み込みのテスト フレームワークの強化に取り組んでおり、CFWheels でこのようなものにアプローチして実装し、開発者がアプリケーションを簡単にテストできるようにする方法を考えているからです。 .
更新:これをテストする方法を見つけました。アクションが完了してディスパッチャに戻された後にリダイレクトを実行するには、ホイール コントローラの内部を少し書き直す必要があるようです。このアプローチの唯一の点は、redirectTo() の後のコードは、事前に適切な予防措置を講じた場合を除いて実行されることです。これには、redirectTo() ステートメントの後に return を配置するか、アクションに条件付きチェックを配置して、redirectTo() コードを他のコードから分離することが含まれます。また、redirectTo() が実行されると、他に何もレンダリングされないことを確認する必要があります。
coldfusion - Application 変数に大きなオブジェクト (Java コンポーネントなど) を格納しても問題ありませんか?
現在、Application スコープ内のローカル XMPP サーバーへの接続を作成して保存するアプリを開発しています。接続メソッドは cfc に保存され、Application.XMPPConnection が使用されるたびに接続および承認され、接続を利用してライブ イベントをユーザーに送信します。私が知る限り、これはうまく機能しています。しかし、いかなる種類のストレス下でもテストされていません。
私の質問は次のとおりです。この設定は後で問題を引き起こしますか? このようにアプリケーション変数を使用している他の人々の証拠を見つけることができないので、私は尋ねるだけです. railo を使用していなければ、代わりに CF のイベント ゲートウェイを使用して同じタスクを実行していたでしょう。
oop - cfinclude を使用してコンポーネントを分割し、引き続き継承を使用するにはどうすればよいですか?
更新: railoにはこの問題はまったくないようです。
更新:人々がこの質問の「大きなコンポーネントを分割するより良いアイデアを持っていますか」という部分(私が決して入れるべきではなかった)全体にもっと焦点を合わせていると感じているので、私はこの問題を閉じることに投票していますcfcomponent で cfincludes を使用する方法。
注:これは、アイデアを理解するために私がやろうとしていることの単純化された例です。
私が抱えている問題は、cfcomponent 内で cfinclude を使用して、同様のメソッドを別のファイルにグループ化し、管理しやすくしたいということです。私が直面している問題は、以下に示すように、cfinclude を使用してそのメソッドを管理する別のコンポーネントを拡張しようとしたときです。ComponentA は ComponentB を拡張することに注意してください。
問題は、ComponentA を初期化しようとすると、「ルーチンを複数回宣言することはできません。ルーチン a が異なるテンプレートで 2 回宣言されています」というエラーが表示されることです。
これの全体的な理由は、cfinclude を使用すると、COMPILE TIME ではなく RUN TIME で評価されるためです。
メソッドをコンポーネント自体に移動し、cfinclude の使用を排除する以外に、どうすればこれを回避できますか、または誰かが大きなコンポーネントを分割するより良いアイデアを持っていますか?
java - 2つの構造体で「詳細比較」または「差分」を行うにはどうすればよいですか?
(これはColdFusionの質問です)
同じデータが含まれている場合と含まれていない場合がある2つの異なる構造体があり、それらが含まれているかどうかを確認したいと思います。私の構造体は、DeserializeJSONで作成されているため、常に単純な値(数値、文字列、またはブール値)が含まれます。したがって、これを簡単に実行できることを願っています。
ここでBenNadelの投稿を見つけましたが、そのテクニックは私にはうまくいかないようです。これが私がこれまでに試したことです(そこにいくつかのcfwheelsコードがあります):
そして、その結果は次のようになります。
したがって、上記のように、Structs内のデータは完全に一致しているように見えますが、Equals()テストに合格していません。
他の誰かがこれを成功させましたか?
coldfusion - CFWheelsの単体テスト?
Google と海外を検索しましたが、CFWheels の単体テストに関する情報は見つかりませんでした。誰かがそれが存在するかどうか知っていますか? もしそうなら、私を正しい方向に向けることができますか?
ありがとう、ダレン
model-view-controller - これはタグ付けを処理するための良いアプローチですか?
このコードを最適化またはリファクタリングできますか?これはタグ付けの最適なアプローチですか?
次のコードは、私の投稿モデルのコールバックです。タグをQuestionsTagsジョイナーテーブルの投稿に関連付けるレコードを作成します。必要に応じて、特定のタグがタグテーブルにまだ存在しない場合、関数はそのタグを作成し、そのIDを使用してQuestionsTagsテーブルに新しいレコードを作成します。
このアプローチの難しさは、QuestionsTagsテーブルが、存在する場合と存在しない場合があるタグテーブルのデータに依存することです。
この関数は、次のテーブルを想定しています。
アイデアは、投稿とともに送信されたタグの区切られたリストをループし、各タグがタグテーブルにすでに存在するかどうかを確認することです。
タグが存在する場合:
- この投稿とこのタグのQuestionTagレコードがQuestionTagsテーブルにすでに存在するかどうかを確認してください。
- はいの場合、何もしません(関連付けはすでに存在します)
- いいえの場合、既存のタグのIDとpostIdを使用して新しいQuestionTagレコードを作成します
タグがまだ存在しない場合:
- タグテーブルに新しいタグを作成します
- そのIDを使用して、新しいQuestionsTagsレコードを作成します
コード
参考:アプリケーションでCFWheelsを使用しています。これは、使用されるORM関数を説明しています。
coldfusion - request スコープを使用してオブジェクトを保存する
CFWheelsを使用して、ColdFusion でアプリケーションを開発しています。
というモデルがありVote.cfc
ます。Vote オブジェクトを作成、更新、または削除する前に、別のモデルから投稿オブジェクトを取得する必要があります: Post.cfc
. 投票は投稿に属します。投稿には多くの票があります。
オブジェクトからのデータを使用して、複数の基準と複数の機能にまたがるオブジェクトpost
が必要です。to validate the vote
post オブジェクトを永続化してそれらの関数で使用できるようにする唯一の方法は、それを request スコープに格納することです。
他の人は、これは悪い習慣だと言っています。しかし、私はその理由を見つけることができませんでした。リクエスト スコープはスレッド セーフであり、この状況で使用するのは理にかなっていると思いました。
もう 1 つの方法は、それを必要とするすべての関数で post オブジェクトの新しいインスタンスをロードすることです。Wheels はキャッシングを使用しますが、これを行うとリクエスト時間が 250% 急増しました。
アップデート
ここにいくつかのサンプルがあります。最初に、コントローラーは投票オブジェクトが既に存在するかどうかを確認する処理を行います。存在する場合は削除し、存在しない場合は作成します。コントローラ機能は基本的にトグル機能です。
Votes.cfc コントローラ
モデル VoteLike.cfc
その後、検証前にモデルに登録されたコールバックが発火します。投票が属する投稿オブジェクトを取得する関数を呼び出します。関数 getPost() は、投稿をリクエスト スコープに保存します。モデル内の一連の検証関数で利用できるようになりました。
getPost() 関数に代わる方法は、スコープ呼び出し " this.post().userId
" を使用して投稿オブジェクトを取得することです。たとえば、次のようになります。
しかし、その後、すべての関数に対してこのスコープ指定された呼び出しを繰り返す必要がthis.post().userId
あります。これが、リクエストの速度を低下させていると思います!
coldfusion - 引数名でのハイフンの使用
私は CFWheels と jquery mobile を使用しており、いくつかの jquerymobile 設定を linkto 呼び出し (主に data-icon 属性) に渡そうとしています。これまで新しいことはありませんでしたが、ColdFusion では引数名にハイフンを使用できないようです。私の呼び出しは次のとおりです。
CFBuilder と Railo は、ハイフンでエラーをスローします。Railo エラーは次のとおりです。
無効な割り当ての左側 (railo.transformer.bytecode.op.OpDouble)
私の質問は次のとおりです。引数名にハイフンを使用できないというのは正しいですか? また、それらが許可されていない場合、ハイフンを通過させる方法はありますか、それともアンカータグを作成するだけですか?
unit-testing - OOP フレームワークでのテスト駆動開発
私は最近、テスト駆動開発、つまり MXUnit を学び始めましたが、その背後にあるアイデアが気に入っています。スタンドアロン CFC で TDD を使用するという考えは理解できますが、OOP ベースのフレームワーク、主に FW/1 と CFWheels で TDD を使用する場合、フレームワーク CFC (FW/1 のコントローラー) で MXUnit を使用する方法がわかりません。 CFWheels のモデルとコントローラー)。
フレームワークで MXUnit を使用するためのリソースがどこにあるか知っている人はいますか?