1

Aloha on Rails での " You're Doing it Wrong " というセッションのプレビューを見ていました。

短いプレビューで、彼は ActiveRecord モデルを列挙として使用することについて言及しています ( enumerate_byのようなプラグインを意味していると思います)。これは私には合理的な考えのように思えますが、何が問題なのですか? 追加のオブジェクトに必要なオーバーヘッドだけですか?

ありがとう

4

2 に答える 2

1

彼のプレゼンテーションは少し大げさで慣用的です。しかし、彼のポイントは健全です。

静的データをデータベースに配置するには、開発のオーバーヘッドがあります。すべての環境ですべての移行が実行されるようにする必要があります (db:test:clone を実行するたびに含む)。コードを (たとえば、irb でも) 操作すると、ロード順序の問題が発生する可能性があります。要するに、無料ではなく、不必要な開発とサポートの費用を負担したくありません。

ただし、それを行うことには利点があります。異なる言語で書かれたコード間でデータを共有したい場合があります。コードが複雑になる可能性があり、すべての展開の前に費用のかかるテスト サイクルが必要になる場合があります。データに対してデータベース制約を作成することができます。列挙に関連付けたい広範なメタデータまたは構造化メタデータがある場合があります。等々。

ただし、これらの条件は一般的ではありません。ほとんどの列挙では、名前付き定数、ハッシュ、またはシンボルを使用した規則だけで十分です。

于 2009-10-09T07:41:00.473 に答える
0

彼が言ったように、それは彼が問題を抱えている静的列挙に関するものです。名前付き定数に格納できる静的データのデータベース クエリを作成する必要があるのはなぜでしょうか。

また、一部の開発者は将来のためにコーディングしています。将来的に要件が拡張された場合に、設計を修正用に閉じて拡張用に開いたままにしておく一方で、現時点では要件に合わせてコーディングすることについてです。そうしないと、クライアントが実際に要求していないものに時間、労力、そして最終的にはお金を費やすことになります。スケーラブルな設計と将来の要件に対応する設計は別物です。前者は必要に応じて後者に拡張できますが、現時点では後者はあまり必要ありません。

于 2009-10-08T08:52:48.903 に答える