問題タブ [dry]
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.
ruby-on-rails - 条件付きビュー/レイアウト
インデックス(製品のリスト)アクションが必要な製品コントローラがあるとします。簡単。ここで、管理者がいて、プロジェクトにパーツを保管しているとします。どちらも商品をリストする必要がありますが、方法が少し異なります (たとえば、店舗のものにはこの商品の編集リンクを含めないでください)。また、異なるレイアウトを使用しています。
これまでのところ、私の考えは、異なる名前空間の下に 2 つの製品コントローラーを配置しapp/controllers/admin/products_controller.rb
、app/controllers/store/products_controller.rb
それぞれに独自のビューとレイアウトを持たせることです。しかし、これは WET コードにつながる可能性があると思います。または、他のコントローラー ビューへの参照 (imo はモジュール性を壊すため、避ける必要があります)。
したがって、実際の質問: 上記を達成するためのより DRY (または実際には適切な) 方法はありますか?
タイトルが実際に質問を反映しているかどうかはわかりません。しかし一方で、もしそうなら、私はおそらく答えをググることができた.
EDIT 3.1 以降、Rails はテンプレートの継承をサポートしています。
ruby-on-rails - DRY Rails マスター テンプレート?
Rails アプリケーション全体のマスター テンプレートを定義する簡単な方法はありますか? そうでない場合、同じテンプレートを多数のレイアウト ファイルにコピー アンド ペーストしないように、テンプレートを再利用する最善の方法は何ですか?
html - CSS と DRY
HTML レイアウトを作成しています。複数のスタイルシートの利点を必要とせず、HTML サイズのわずかな増加は問題ではなく、一度しか使用しないスタイルがあると仮定しましょう。私は、CSS クラス名または ID の繰り返しを、現在必要のない抽象化の代償と見なし、今後も使用しない可能性があるため、ここでインライン スタイルを使用することに賛成することがよくあります。
最近の標準的な原則は、常にセマンティック マークアップと CSS スタイルを使用して HTML レイアウトを作成することです。考えを教えてください。
ruby-on-rails - 処理済みデータをレールに入力するためのベスト プラクティス
私はいくつかのデータを処理するためのプログラムに数か月取り組んできましたが、現在はコマンドラインを介して (ActiveRecord を使用して保存された) 情報を表示するのではなく、Rails を介して処理された情報を表示したい段階にあります。アプリ。
私が直面している最初の質問は、データ処理とデータ表示を同じアプリケーションで行うべきか、それとも別のアプリケーションで行うべきかということです。Railsアプリに含まれるコードが少ないほど、セキュリティの問題が発生する可能性が低くなるため、個別のアプリケーションを作成したいと思います(データ処理コードの一部は、最適化の理由で少し見苦しく安全ではありません)。
2 番目の質問は、Rails 表示アプリとオフライン データ プロセッサに分割した場合、データベース スキーマをどのように処理するかです。Railsアプリに完全にデータが入力されたデータベースを与えるだけで十分ですか、それともrailsアプリにマイグレーションやschema.rbも提供する必要がありますか?
編集: データ処理アプリケーションは、Wikipedia の Get to Philosophy 現象のパーサーです。英語版の場合、20GiB の XML ファイルを使用して、約 600 万ページが互いにどのようにリンクしているかを調べます。
functional-programming - Haskell 関数定義で DRY を適用するためのガイドライン
DRY 原則を適用する特定の方法が Haskell の良い実践と見なされるかどうかについて質問があります。例を示してから、私が取っているアプローチが良い Haskell スタイルと見なされるかどうかを尋ねます。簡単に言えば、質問は次のとおりです。長い数式があり、その数式の小さなサブセットを別の場所で繰り返す必要がある場合、DRY を維持できるように数式の繰り返しサブセットを常に変数に入れますか? ? なぜですか、そうでないのですか?
例: 数字の文字列を取得し、その文字列を対応する Int 値に変換するとします。(ところで、これは「Real World Haskell」の演習です)。
エッジケースを無視することを除いて機能するソリューションは次のとおりです。
これは foldr を使用し、アキュムレータは次の桁の値とこれまでの合計のタプルです。
ここまでは順調ですね。ここで、特殊なケースのチェックを実装しようとしたときに、エラーをチェックするためにさまざまな場所で "newValue" 式の小さな部分が必要であることがわかりました。たとえば、私のマシンでは、入力が (2^31 - 1) より大きい場合に Int オーバーフローが発生するため、処理できる最大値は 2,147,483,647 です。したがって、私は2つのチェックを入れました:
- 位の値が 9 (10 億の位) で、桁の値が > 2 の場合、エラーがあります。
- sum + (10 ^ place) * (digitToInt char) > maxInt の場合、エラーが発生します。
これらの 2 つのチェックにより、式の一部を繰り返す必要が生じたため、次の新しい変数を導入しました。
- digitValue = digitToInt char
- newPlaceComponent = (10^place) * digitValue
これらの変数を導入した理由は、単に DRY 原則を自動的に適用するためです。数式のこれらの部分を繰り返すことに気付いたので、それらを 1 回だけ定義しました。
しかし、これは良い Haskell スタイルと見なされるのでしょうか。明らかな利点がありますが、欠点も見られます。コードは間違いなく長くなりますが、私が見た Haskell コードの多くはかなり簡潔です。
では、あなたはこの Haskell スタイルが良いと考えていますか? また、この慣行に従っていますか? なぜ/なぜではないのですか?
価値があるのは、多くのエッジケースを処理するため、非常に大きな where ブロックを持つ私の最終的なソリューションです。DRY 原則を適用した結果、ブロックがどれだけ大きくなったかがわかります。
ありがとう。
asp.net-mvc - MVC と Web フォーム間でマスターページを共有することは可能ですか?
多くのレガシー Web フォーム ページを含むプロジェクトに MVC を追加しています。これはうまくいきます。ただし、現在、MVC 用と Web フォーム用に別々のマスターページがあります。2 つのマスター ページは、基本的に同じ出力を生成します。私は本当にWebフォームを1つ殺し、すべてのページでMVCマスターページを使用してDRYのままにしたいと思っています。
両方を変更するのを忘れたとき、DRYではないことですでに数回噛まれました。
私は明白な方法を試し、MVC マスターページで Web フォーム コンテンツ ページの MasterPage 属性をポイントするだけでした。これにより、MVC マスターは MVC ビューでのみ機能するというエラーがスローされます。
これは、MVC プロジェクトと Web フォーム プロジェクトが混在する場合によくある問題のようです。私の MVC マスターは ViewData で何もしていないので、Web フォームがそれらを使用できない理由はわかりません。
programming-languages - 修正しやすいコードを書く
簡単に変更できるコードを作成するには、どのような方法がありますか?
私が経験から学んだことは、ほとんどの場合、捨てるために書く必要があるということです。そうすることで、実際のアプリケーションをコーディングする前に必要なドメイン知識とプログラム構造の感覚を養うことができました。
python - try... except... except... : コードの繰り返しを避ける方法
errorCount += 1
複数の場所に書き込むことは避けたいと思います。- 私はより良い方法を探しています
- 私は
store.rollback()
すべてのexcept節で避けようとしています。
これを行う方法について何か考えはありますか?
ruby-on-rails - 移行形式 Add x to y に (必要な) 冗長性はありますか?
チケット テーブルに phone 列を追加するには、次のように記述します。
ここには冗長性があるようです。しかし、それは必要ですか?
AddPhoneToTickets
移行の名前 ( ) と列定義 ( )の両方で「電話」を指定する必要があることを繰り返していませんphone:string
か?
c# - この方法を乾かす
このメソッドをジェネリックにするのに助けが必要です。さまざまなWebリストコントロールのリストを取得するために、約10回繰り返されます(特定のコントロールで使用されるタイプを「MyType」に置き換えます)。
これだけでは不十分な場合はお知らせください。これには、私が精通している、より高度な言語機能が必要だと思います。たぶん私はそれらすべてに同じリポジトリを使用させるべきですか?
ご協力いただきありがとうございます。
編集:あなたの助けをありがとう。私はピアサポートを持っていないので、このボードは素晴らしく、あなた方一人一人から何かを学びました。私はすべての答えを受け入れることができればいいのにと思います。