問題タブ [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.
django-models - Django の DRY 固有オブジェクト
オブジェクトが一意であることを確認し、ユーザーがそれを保存しようとしたときにエラーをスローしたい (たとえば、管理者を介して) そうでない場合は? 一意とは、オブジェクトの属性の一部が他のオブジェクトの値と同じ値を保持している可能性があることを意味しますが、それらがすべて別のオブジェクトの値と同一であるとは限りません。
私が間違っていなければ、私はこれを次のように行うことができます:
ただし、モデルをリファクタリングするたびに (たとえば、新しいフィールドを追加したり、既存のフィールドの名前を変更したりするため)、unique_togetherに割り当てられた括弧内のフィールドのリストも編集する必要があります。単純なモデルであれば問題ありませんが、大規模なモデルではリファクタリングが非常に面倒になります。
unique_together括弧内にフィールド名のリストを繰り返し入力する必要がないようにするにはどうすればよいですか? モデルのフィールドのリストを変数に渡し、代わりにその変数をunique_togetherに割り当てる方法はありますか?
ruby-on-rails - Rails でのビューの DRY (number_to_currency)
次のようなコードがあります。
number_to_currency(line_item.price, :unit => "£")
さまざまなモデルで私の見解を散らかしています。私のアプリケーションは GBP (£) のみを扱っているため、これを各モデルに移動して、本来line_item.price
あるべき文字列を返すようにすべきではありません (つまりnumber_to_currency(line_item.price, :unit => "£")
、line_item.price
同じです。これを行うには、次のようにする必要があると考えています:
しかし、これは機能しません。モデルで がすでに定義されている場合、 Railsprice
は「スタック レベルが深すぎます」と報告します。def price
def amount
number_to_currency
ruby - ルビーで配列をソートする最も簡単なコード?
私は通常次のようなことをします
これをどのように乾かす必要がありますか?
wpf - WPFでダイアログを再利用する最良の方法は?
いくつかのユーザー コントロールとその他の標準コントロールを含む WPF ダイアログがあります。このダイアログには、特定の調整を加えた多くの用途があります。現在、このダイアログはすべてのロジックを管理して、それ自体を微調整しています。
もっと良い方法があるはずだと思わずにはいられません。私はこのようなことができたらいいのにと思います:
元のダイアログ
わずかに異なるダイアログ:
私がしようとしていること、または私が考えていないより良い方法を行う方法はありますか?
ruby-on-rails - 作成および更新用の部分的なDRYフォーム
コードを乾かすのに役立つ_form.html.erbフォームパーシャルがありますが、新しいユーザーを作成するか、既存のユーザーを更新するかに応じて、フォームに異なるラベルを付ける必要があります。
これが私のフォームの一部です。更新中にeulaチェックボックスを表示する必要はありません。また、更新を行うときに、[アカウントの作成]送信ボタンのテキストをより適切なものに置き換える必要があります。
これを行うための最良の方法は次のうちどれですか?
- 2つの別々のフォームパーシャルがあります。1つは作成用、もう1つは更新用です。
- 1つのフォームが部分的ですが、アクションに基づいた条件付きラベルがあります(これは可能ですか?)
- 共通部分を部分的に分解し、作成および更新フォームで再利用します
条件付きフォームを実行する場合、どのアクションが実行されているかをどのように確認しますか?
c# - Asp.net - リファクタリング アクション
多くのコントローラーアクションに次のようなコードがあるという「問題」があります。
これをよりクリーンなソリューションにどのようにリファクタリングしますか? DRYになりたい!
c++ - operator= とコピー コンストラクターの間のコードの重複を減らす
デフォルト以外のコピー コンストラクターと代入演算子 (ポインターのリストを含む) を必要とするクラスがあります。コピー コンストラクターと代入演算子の間のコードの重複を減らす一般的な方法はありますか?
asp.net-mvc - 共通のテンプレート アプリから ASP.NET MVC サイトを "継承" しますか? (マルチテナンシー)
共通の機能セット (および対応する URL、ルート、コントローラー、アクション、およびビュー) を持つ約 10 の ASP.NET MVC サイトを構築しています。また、これらのサイトはすべて、ドメイン オブジェクト (ユーザー、会社など) の基本セットと、それらのオブジェクトの基本属性 (名前、住所など) を共有します。
しかし、各サイトも高度にカスタマイズされ、ベースから拡張されます。たとえば、大規模な上場企業向けのサイトには、Company ドメイン オブジェクトに「子会社」および「株式シンボル」フィールドがあり、新興企業向けのサイトには「ベンチャー企業」および「資金調達」属性があります。ルック アンド フィールも大幅に異なりますが、HTML は可能な限り一貫性を保つように努めています (追加のドメイン オブジェクト属性用に追加のフォーム フィールドをモジュロ化するなど)。また、画像を控えめにオーバーライドすることで、たとえば、サイト間で同じボタン グラフィックを再利用できるようにします。
とにかく、アプリごとの属性を追加したり、アプリ間で UI を変更したりする自由を制限することなく、できるだけ多くのコードとできるだけ多くのテストを再利用できるように、要素を分解して設計する最善の方法を見つけようとしています。
私は、UI が少し異なり、データ モデルが多かれ少なかれ、StackOverflow/SuperUser/ServerFault (または MSDN/TechNet) に見られるような、カスタマイズが制限されたマルチテナンシーを処理する方法に精通しています。同一。しかし、モデルと UI が大きく異なる (ただし、共通のベースから継承している) 場合、どのように進めればよいかわかりません。
おそらく、各サイトを別々のアプリドメインで実行し、別々のデータベースでホストすることになるため、運用上の問題についてはあまり心配していません. 長期的なコード メンテナンス コストの削減、アジリティの向上 (派生アプリを壊すことなく新しい機能をベースに簡単に追加できるなど)、そして 2 番目のコードを構築する際の短期的な開発/テスト コスト削減の実現について心配しています。 3 番目、4 番目などのサイト。
高レベルのガイダンスと提案の両方を探していますが、最新の ASP.NET MVC プラクティスを使用してそのガイダンスを実現する方法についての具体的な提案も求めています。
これは非常に一般的な質問であることは承知していますが、まず、高レベルのガイダンスと、ASP.NET MVC でそのガイダンスを適用する方法に関する具体的なヒントとコツの両方を探しています。たとえば、次のようなものがあります。
- Visual Studio プロジェクト間でベース/派生を分割する推奨事項
- フォークを回避するためのソース管理のヒント
- データベース スキーマのヒント (FWIW、私たちのデータベースはすべて小さいです。テーブルごとに 10,000 行未満なので、DB のパフォーマンスよりも開発/テストのコストの方が問題です)
- コントローラー/ビュー/などの再利用に関するヒント。「基本」モデル属性に対応します。特に、基本属性と派生属性が混在する「新規顧客」フォームなどの UI を再利用します。
このようなマルチテナント アプリを設計する方法について、誰か良いアドバイスはありますか?
ruby-on-rails - DRYness のコントローラー コードのリファクタリング
コントローラーの作成アクションと更新アクションの両方に、次のようなステートメントが多数あります。
これらをリファクタリングして、コードをよりドライにする方法を考えています。私はそれらがモデルに属している可能性があることを強く認識しています(re: ファット モデルとスキニー コントローラー)が、どうすればよいかわかりません。誰かが私を啓発できますか?
お時間をいただきありがとうございます。
ガブ