1

私は新しいアプリケーションを始めており、それをモジュール化することに集中したいと思っています。つまり、私の頭の中では、ログオン、ユーザーロール、レイアウトなどの基本的な機能を想定していますが、ドキュメントリポジトリやアップロードなどの機能の自己完結型の「チャンク」を追加できるようにしたいと考えています。 、日記とリマインダーサービス..何でも。

これまで私がアプリをレイアウトしてきた方法は、ルート内のすべて、画像とcfcの個別のサブフォルダー、変数名とクエリ名などの命名規則に準拠、cfcsを介したすべてのデータベースの相互作用、ページの上部ですべての処理を行うことです。 、次にコメント行、その下の表示/ページレイアウト。

私はさまざまなフレームワークに頭を悩ませようとしましたが失敗しましたが、私は決断力に麻痺し、それを「正しく」行っているかどうかについて混乱しています。公式の「フレームワーク」全体に踏み込むことなく、有用な方法論であることをある程度受け入れている作業方法はありますか?

4

3 に答える 3

2

次に、プレゼンテーション層をコアから可能な限り分離する必要があります。これを行うための優れた一般的な方法は、速度を非常に速く上げることであり、MVC(model-view-controller)パターンに従うことです。

http://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controller

これにより、機能をレイアウトなどから完全に分離されたコントローラーに調整できます。コントローラーは、必要に応じて他のプロジェクトに簡単に統合できます。

フレームワークは必要ないとおっしゃっていましたが、フレームワークは必要ないことは間違いありませんが、説明しているような大規模なアプリケーションには強くお勧めします。いくつかは非常に多くのルールを持つことができますが、そうでないものは多くの邪魔になるようです。私が気に入っているのは、CFWheel(http://cfwheels.org/)と呼ばれるRubyonRailsに基づいています。

それはあなたがものを構築するのを助けるためにほとんどそこにあります、あなたは「通常の」方法に従うことが自由であるか、それが本当にあなたを止めることはありません。ここでスクリーンキャストを見てください:http://cfwheels.org/screencasts

于 2010-09-26T23:56:56.200 に答える
2

モデル接着剤は優れたCFフレームワークです。グーグルグループのサポートとドキュメントは素晴らしいです。

FW / 1は、学習を開始するためのもう1つの単純なフレームワークですが、現時点ではドキュメントについてはよくわかりません。

フレームワークは間違いなく進むべき道です。あなたが彼らの周りに頭を置くと、彼らはただ「正しい」と感じます。彼らはあなたにもっと良いコードを書かせてくれる傾向があり、1年かそこらでcoldfusionフレームワークを使ってきたので、正直言って私は1つを使わないことに戻ることは決してないだろう8-)

于 2010-09-27T01:14:50.573 に答える
1

正直なところ、フレームワークは分析の麻痺に非常に簡単につながる可能性があります。あなたは簡単に物事を考えすぎることができます。これがあなたがすることです、それを単純に保ち、そしてただキーボードを叩いてください。「独自の」フレームワークを使用します。きれいではないかもしれませんが、最終的にはそれを取得し、他のフレームワークが存在する理由がわかります。

開始方法は次のとおりです。

フォルダのレイアウトとビューを作成します。すべてのページレイアウトをレイアウトフォルダに入れます(おそらく、レイアウトは数個、場合によっては1つだけです)。すべてのビューのものをviewsフォルダーに入れます(これは、あまりよく整理されていないファイルの束で行っていることのように見えるでしょう)。重要なのは、ビューファイルに「ページの先頭」コードを処理するページがないことです。

index.cfmが唯一の.cfmルートになります。URL変数"event"= actionを使用して、フレームワークを実行します。

index.cfmで、巨大なcfswitchを使用して、実行する「ページのトップ」コードを決定します(これは巨大な「コントローラー」になります)。

mysite.com/index.cfm?event=contactInfo

<cfswitch expression="#url.event#">
  <cfcase value="contactInfo">
    <top of page code>
    <cfset structLayoutInfo["pagetitle"] = "XYZ Contact Info" />
    <cfmodule template="/layouts/mainlayout.cfm" attributeCollection="#structLayoutInfo# >
      <cfinclude template="/views/contactInfo.cfm"/>
    </cfmodule>
   </cfcase>
  .....
</cfswitch>

これをcfmoduleタグと組み合わせて、レイアウトをロードします。したがって、すべてのページリクエストはindex.cfmを介して受信されます。Index.cfmは、ページ上部の処理をすべて実行してから、viewsフォルダー内の適切なビューに対してcfincludeを実行します。cfmoduleタグを使用してレイアウトをロードします(ヘッダーとフッターのtag.executionモードのものを確認してください)。

フレームワークに機能を追加し、機能を追加し続けます。おそらく、index.cfmコードを、データベースCFCを呼び出す一連のCFCを含むコントローラーフォルダーに移動します。

于 2010-09-27T21:22:32.580 に答える