2

Adobe ColdFusion を使用した私の経験は、まだいくらか限定的ではありましたが、非常に楽しく快適でした。

ColdFusion について私が言えるすべての良い点の中で、1 つの機能に完全に圧倒されました。dbtype="query"生産ではあまり効果的でも有用でもないかもしれませんが、とにかく、いわゆる「クエリのクエリ」機能、またはcfquery. データベース接続だけでなく、任意のデータセットに対して SQL ステートメントを実行できます。たとえば、データベースから取得したばかりの結果セットとメモリ内構造を結合できます (もちろん、一定の制限があります)。これは、データを「後処理」するための簡単な方法を提供します。これは、データセットをループで反復処理するよりもはるかに読みやすい (そして柔軟性も高い!) 場合があります。

ただし、ColdFusion はあまり人気のある製品ではないため、その理由については説明しません。私が求めているのは、他の言語でこの手法をサポートするものはありますか (ライブラリのように、多かれ少なかれ同じことを行います)? パイソン?パール?ルビー?PHP? なんでも?私には、この機能の可能性は非常に大きいように思えますが、おそらく製品コードではそうではありませんが、何かをすばやくテストする必要がある場合、これは絶対的な命の恩人です。言うまでもなく、ColdFusion がこれに使用する SQL は、私の知る限り、いくらか制限されていますが、それでも、アイデアは素晴らしいものです。

4

7 に答える 7

10

ColdFusionと同様にデータを処理するものが見つからない場合は、他のプログラミング言語で非常にうまく機能することを覚えておいてください。CFでいつでも大量のクエリ処理を実行してから、処理ロジックをリモートCFCでラップし、JSONを提供するWebサービスとして公開することができます。

これにより、他の言語を試しながら、ColdFusionの優れた点を活用できます。

CFから離れる必要がある場合は、PythonでSqlAlchemyを試してみてください。または、他のポスターのように、RailsとLINQは試してみる価値があると述べています。

于 2009-05-11T00:04:19.023 に答える
3

Python、Ruby、Perl、php はできません。ただし、.NetにはLINQと呼ばれるものがあり、これは本質的にステロイドのQoQです。

于 2009-05-10T18:31:37.460 に答える
1

多くのフレームワークは、データベース テーブルをオブジェクトに変換するオブジェクト リレーショナル マッピング (ORM) を使用します。

たとえば、Rails を使用すると、データベースと直接やり取りするのではなく、モデルからデータを取得できます。クエリまたは検索結果は配列オブジェクトとして返され、それ自体でクエリを実行できます。

于 2009-05-10T18:11:00.380 に答える
0

これは、LINQ を使用して .NET でも実現できます。LINQ を使用すると、オブジェクトだけでなくデータベースにもクエリを実行できます。

于 2009-05-11T18:53:15.990 に答える
0

Java については、検討する価値のある 3 つのプロジェクトがあり、それぞれに独自の長所と短所があり、他よりも SQL に似ているものがあります。JoSQL JoSQLJXPath、およびMetaModel

おそらく、最近の 1 つで、CF の下にある Java から直接 QoQ を呼び出す方法を理解するでしょう。;)

于 2011-01-29T02:38:20.163 に答える
0

クエリ オブ クエリのパフォーマンス分析を行っているときに、その実行時間に驚きました。実際のデータベースへの単純なクエリでは 1 ミリ秒以内に返されるテストでは、10 ミリ秒未満で返されることはありませんでした。私の理解では (少なくとも CF MX 7 では)、これは便利な機能ですが、高度に最適化された機能ではありません。クエリを手動でループして条件付きロジックを実行し、実行しようとしていたことをクエリのクエリで置き換える方がはるかに高速であることがわかりました。

そうは言っても、最初のクエリが遅い場合は、データベースにアクセスするよりも高速です。各 QofQ は瞬間的ではないため、より創造的な並べ替えや最初のクエリを実行するよりも常に高速になると考えて使用しないでください。

于 2009-11-06T03:07:47.903 に答える
-15

この手法 (ColdFusion の query-of-queries) は、最悪のアイデアの 1 つです。ビジネス ロジックをデータベースに保持するだけでなく、コードに残した小さなビジネス ロジックを取り込んでデータベースに押し出します。

必要なのは良い言語であり、欠点を補うための悪いテクニックではありません。

Python と Ruby、および C# や Haskell などのリストにない他の言語は、メモリ内オブジェクトに対する任意の強力なクエリを作成するための優れたサポートを備えています。これは、ColdFusion の query-of-queries ではなく、実際に必要な手法です。インメモリ オブジェクトに対するクエリを記述する手法は、関数型プログラミング と呼ばれる一般的なプログラミング スタイルの 1 つです。

于 2009-05-11T00:20:07.577 に答える