1

私は現在、多くのデータがコード内の定数と配列として保持されているプロジェクトをリファクタリングしています。また、多くの冗長性があります。ここで、すべてのデータをデータベースに移動したいのですが、マッピングをどのように行うかわかりません。データがユーザー入力に基づいて動的に選択されることはめったにありませんが、コードで具体的に選択されます。これはアプリケーションの非常にコアレベルで使用されますが、実際にはコアではありません。また、データベースはすでに使用されているため、余分な労力は必要ありません。

私の考えは、それぞれの行のIDを指す定数を持つMappingクラスを使用することです。それは良い考えですか?

もう1つのアイデアは、名前の行にインデックスを付けて、名前を直接クエリすることです。

データベースには、おそらく次の列があります:id、name、polynom、params。つまり、基本的には数学データについて話しているのです。例:1、「価格の概算」、20x ^ 3-5x ^ 2 + 11x」、「非累積」。

この質問は言語に依存しないと思いますが、言語固有の(またはフレームワーク固有の)ベストプラクティスがあるかもしれないので、これが私が使用するものです:Yiiフレームワークを備えたPHP5。

4

1 に答える 1

3

PHPやYiiの経験はあまりありませんが、ここに2セントがあります...

これらがアプリケーションを技術的に定義する定数および定数のコレクション(アプリケーションアーキテクチャ定数)であるが、エンドユーザーが制御できない場合は、データベースではなく構成ファイルに配置します。それらに簡単にアクセスして変更するためのモジュール。それらを取得するためにマッピングクラス(または構成クラス)を実装するかどうかは重要ではありませんが、それらを取得する方法に一貫性があります。構成ファイルで管理するには多すぎる場合は、それらをデータベースに保存するのが適切ですが、それらを変更する簡単な方法を提供するようにしてください。ソースコードを読みやすくするために、人間が理解できる記述子を使用して、前述のようにそれらの記述子をそれぞれの行にマップします。

これらがユーザー定義の定数である場合は、必ずインターフェースを提供する必要があります。ただし、アプリケーションアーキテクチャ定数と同じアーキテクチャを維持してください。

完璧なプログラム/アプリケーション(またはさらに良いのはアプリケーションフレームワーク)では、ハードコーディングされたものはなく、すべてが定数(スイッチ)によって制御されます。ソースコードを維持することなくこれを成功させることができれば、ノーベル平和賞を受賞することになります。

于 2013-01-05T11:32:21.710 に答える