問題タブ [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.

0 投票する
1 に答える
173 参照

excel - Excel: DRY フォーマットを行うには?

いくつかの条件付き書式スタイルがあります。新しい範囲に対して新しいルールを作成し続けたくありません。DRY を一度宣言し、別の場所で参照することで、DRY に従うことをお勧めします。私はこれを行うのに苦労しています。

条件付き書式ルールは、範囲が 1 つだけの場合にうまく機能します。

=Travel!$C$5:$P$8

ただし、別のシートに別の範囲を追加しようとすると失敗します。

=Travel!$C$5:$P$8,Equipment!$B$5:$H$11

[適用] をクリックしても、スプレッドシートには何も表示されず、問題のルールの範囲が次のようにリセットされます。

=Travel!$C$5:$P$8

これを行う方法はありますか?

0 投票する
4 に答える
276 参照

ruby-on-rails - この Ruby コードのスニペットをどのように DRY しますか?

これは私を悩ませています。それはあまりにもDRYに見えません。より良い実装は何でしょうか? 余談ですが、この ActiveRecord finder は、レコードが見つからない場合に例外をスローしないのに、.find は例外をスローするのはなぜですか?

0 投票する
2 に答える
146 参照

security - ビジネス ロジックの繰り返しを防ぐにはどうすればよいですか?

わかった。これが私の単純化されたシナリオです。多数のお客様のご注文に対応できる体制を整えております。スタッフ ユーザーはすべての注文を表示できるようにし、クライアント ユーザーは関連する注文のみを表示できるようにします。

特定のレコードを表示しようとするとき、OrderSecurity クラスで次の関数を使用します。

注文のリストをユーザーに表示したい時点で、 OrderService クラスで定義された次の関数を使用できます

これは上記の場合は問題ありませんが、ルールが複雑になるにつれてうまく機能しません。たとえば、クライアントのサブセットからの注文のみを表示できる、信頼性の低いスタッフ メンバーを表す別のユーザー タイプを追加するとします。次に、CanViewOrder および GetOrders 関数 (および場合によってはデータ アクセス クラス) にロジックを追加する必要がありますが、これは私の考えでは DRY 原則に違反しています。

ですから、私の質問は次のとおりです。ここでトリックがありませんか?ビジネスロジックを組み合わせて、これらの機能の両方が使用できる 1 つの場所で注文を表示する許可を得る方法はありますか?

それとも、心配しすぎて、2 か所でロジックを実行する必要がありますか?

(この特定のアプリケーションでは、私は ASP Classic を使用しています - プレイヤーが嫌いではなく、ゲームが嫌いです - しかし、どの言語でもこの問題をどのように解決するかに興味があります)

0 投票する
5 に答える
492 参照

c++ - C++ でメソッド プロトタイプの重複を避ける良い方法はありますか?

ほとんどの C++ クラス メソッド シグネチャは、通常はヘッダー ファイル内の宣言と、私が読んだコードのソース ファイル内の定義との間で重複しています。この繰り返しは望ましくなく、このように記述されたコードは参照の局所性が低いことに悩まされています。たとえば、ソース ファイルのメソッドは、ヘッダー ファイルで宣言されたインスタンス変数を参照することがよくあります。コードを読むときに、ヘッダー ファイルとソース ファイルを常に切り替える必要があります。

そうしないようにする方法を誰かが推奨しますか?それとも、通常の方法で物事を行わないことで、主に経験豊富な C++ プログラマーを混乱させるつもりですか?

質問 538255 ヘッダー ファイル内の C++ コードも参照してください。

0 投票する
2 に答える
75 参照

ruby-on-rails - レールでデータベースを定期的にチェックしない方法を見つける

ページが読み込まれるたびに、あるユーザーが別のユーザーを待っているかどうかをアプリケーションが確認する必要があるアプリケーションがあります。次のようなエントリがあります。

現在、アプリケーションは呼び出しテーブルをチェックして、ユーザー ID に一致する呼び出しがないかどうかを確認し、アクティブな場合は == true です。結果がある場合は、ユーザーに表示されます。問題は、ページをロードするたびに db 呼び出しが必要になることです。だから私の質問は次のとおりです:

1) これは最も効率的な方法ですか? (明らかに私は懐疑的です) 2) もしそうなら、最もドライな方法でこれを達成するにはどうすればよいですか?

どうもありがとう

デイブ

0 投票する
6 に答える
1356 参照

cakephp - CakePHP でフルネームを作成する必要がある

first_nameとの人物モデルがある場合last_name、 を作成して表示するにはどうすればよいfull_nameですか? Edit ビューと View ビューの上部 (つまり、"Edit Frank Luke") やその他の場所に表示したいと考えています。単にエコーをドロップするだけでは、DRY ではありませんfirst_namelast_name

これが非常に単純な質問である場合は申し訳ありませんが、まだ何も機能していません。

ありがとう、フランク・ルーク

わかりやすくするために編集します。わかりました、人物モデルに関数があります。

ビューで、私は呼び出します

これにより、未定義のインデックスがあることがわかります。ビューから関数を呼び出す適切な方法は何ですか? コントローラーまたは他の場所でそれを行う必要がありますか?

0 投票する
1 に答える
79 参照

django - APIの割れ目のどちら側ですか?

私はDRYと緩い結合の間で引き裂かれています:(

アカウントをリンクできる2つのサイトがあり、それらのサイトはデータを共有できます(RESTful APIを介して...)

1つのサイトはメディア集約サイトであり、もう1つは人々がデジタルメディア(音楽/写真/ビデオ)を購入できるメディアストアです。

私の上司は、itunesストアをエミュレートし、アグリゲーションサイトにビルトインストアを設置して、好きなものを購入してアカウントに自動的に追加できるようにしたいと考えています。

私はストアサイト用に作成されたテンプレートとビュー(django)の99%を持っており、メディアサイトにコンテンツを表示する必要があります。

テンプレートをレンダリングして、事前にレンダリングされたhtml(api経由)をメディア(アグリゲーション)サイトに配信する(そしてDRYに従う)必要がありますか、それともストア側で密結合のカスタムテンプレートを回避するためにjsonを配信する必要がありますか?

それとも、ハイブリッド設計の方がうまくいくでしょうか?事前にレンダリングされたhtmlのチャンク(のトップ10製品など<ol>)を配信し、メディアサイトに必要なチャンクを要求させますか?

ハイブリッド設計は(今のところ)私にとって最も有望に思えますが、おそらく結果としてより多くのapi呼び出し(したがってより多くのデータベースクエリ)が発生するでしょう

どう思いますか?

編集-新しいアイデア:(コメントに見られるように)ストアサイトにカスタムcssをiframeにロードすることについてどう思いますか?

これにより、混乱がなくなり、密結合されたコードの量が3ダース行のうちの2行程度に減り、ほぼ同一の2セットのテンプレートを維持するという大きな頭痛の種を減らすことができると思います。

0 投票する
6 に答える
392 参照

java - このコードをリファクタリングするには?

このコードのリファクタリングを提案してください。コードの重複、複数の If を避ける

0 投票する
2 に答える
160 参照

dry - ダックタイピング: この状況をどのように扱いますか

Python は比較的初心者です。最近、データ型がブール値であることの検証に関して質問を投稿しました。[複数の属性に記述子 (編集: 単一のデコレータではない) を使用しますか?

与えられた答えは、アヒルのタイピングを参照しました。簡単な例があり、理解していることを確認したいと思います。私のコードが次の場合:

ダックタイピングをある程度正しく理解している場合、上記のクラスでは、bool1 が常にブール値であると信じています。bool1 == False または bool1 == True かどうかを確認する必要はありません。誰かが私のモジュールを間違って使用した場合、つまり bool1 = None の場合、メソッドは、問題があったことを示さずに実行したくないことを実行し、ロケット船の人々が死亡します。

bool1 が常に真のブール値であることを保証するコードを書くことができた別の方法は次のとおりです (上記のリンクの BooleanDescriptor のクレジット!):

最初の方法 (チェックしない) が正しい方法だと理解していますか? つまり、最初の例で次のように明示的にコードを書くこともできたはずです。

しかし、bool1 を使用するすべてのメソッドなどでこれを行う場合、そもそも bool1 が真のブール値であることを検証しないのはなぜですか (DRY!)!?!? :-)

ありがとう!

ポール

0 投票する
4 に答える
146 参照

ruby-on-rails - 私のビュー、ヘルパー/メソッド/何か他のものを乾かしますか?

過去にいくつかの RoR サイトを書いたことがありますが、コードを見ているだけだったので、自分の意見を DRY することにあまり悩まされたことはありませんでした。

新しいサイトを始めたばかりで、コラボレーションである可能性が高く、助けが必要です

私はこの行を自分のビューで複数回、複数の場所から呼び出します。

できるようになりたい

だから私はこのコードをどこかに置くと思います

しかしここで?モデルとヘルパーとして試してみましたが、常に nomethoderror が発生します。