問題タブ [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 - Rails でパーシャルを使用するためのベスト プラクティス
DRY の原則に従って、特定のパターンを 1 回または 2 回以上繰り返す場合は、すぐにパーシャルを使用するようにしています。その結果、私のビューの一部は、10 以上の異なるパーシャルで構成されています。これが全体のパフォーマンスに悪影響を及ぼすのではないかと心配しています。一部のプログラミング本では、パーシャルの使用とメソッドの使用を比較しています。では、それらをいつ使用するかを決定するために同じ理論的根拠を使用する必要がありますか?
Railsプロジェクトのパーシャルのサイズと量に関するベストプラクティスは何ですか?
c#-3.0 - C#のインターフェイスでの拡張メソッドを使用した疑似多重継承?
インターフェイスと同じ名前空間の拡張メソッドを使用すると、10の異なるクラスで同じインターフェイスを同じ方法で実装する重複コードを用意する必要がないという点で、多重継承と同様の効果が得られると考えていました。
これを行うことの欠点は何ですか?私は長所はかなり明白だと思います、それは通常後であなたを噛むために戻ってくる短所です。
私が見ている短所の1つは、拡張メソッドを仮想化できないことです。そのため、すべてのインスタンスで同じ方法で拡張メソッドを実際に実装する必要があることを確認する必要があります。
php - if-then-elseが多すぎてコードが読めなくなる場合に、Do n't-Repeat-Yourself(DRY)の原則を順守する方法は?
Do n't-Repeat-Yourselfの原則を守りたいのですが、PHPをHTMLとCSSと一緒に作成するときに、同じコードをさまざまな状況で再利用すると、すぐにコードに非常に多くのコードが含まれるようになります。それ以外の場合、コードは簡単に保守できません。
ほとんどのコードエディタは{if}{else}{/ if}と一致しないため、テンプレートエンジンであるSmartyを使用する場合、これはより大きな問題になる可能性があります。したがって、プログラマーは一致するタグを視覚的に探す必要があり、簡単ではありません。ネストされた{if}{else}{/if}のレベルが3つまたは4つある場合。
そのような状況では、DRYに固執する方法はありますが、それでも優れた保守可能なコードがありますか?
javascript - ページタイトルをさりげなく JS で更新する方法 (Rails)
Ajax を使用してページにブログ投稿をロードするときは常に、ページ<title>
を「My Blog - BLOGPOST_TITLE」に設定します。
もちろん、「マイ ブログ -」はアプリケーション レイアウトにも表示されます。
問題は、文字列 "My Blog - " をコード内で複製せずに Javascript に伝えるにはどうすればよいかということです。
c# - IQueryable.Where() の Linq 動的引数
C# 開発者としての生活を始めて 8 日目です。
私が取り組んでいるプロジェクトの多くの DomainModels について、ユーザーがレビュー/検索フォームで送信した内容を考慮して、テーブル内のすべてのレコードをフィルター処理する機能が必要です。
現在、2 セントのショート ツアーは次のとおりです。
フォームは FooController/review に送信されます。
次に Review は、すべてのキーと値のペアを Params['filter'] からディクショナリに取得し、それを次のように非常によく似た FooFinder.ByProperties 呼び出しのヘルパー クラスに渡します。
}
繰り返しのコードをできるだけ減らしたいと思い、次のようなことを試しました
しかし、それは多くの理由でうまくいかないことは明らかです...それでも、私が達成しようとしていることのアイデアはそこにあります. ある種の動的ヘルパー/ユーティリティを使用して、コードを簡素化し、フィルタリングのプロセスをスピードアップしたいと考えています。
私が試した他のアイデアは、リフレクションとその子供を使用して直接比較することでしたが、すべてのレコードが "r => CreatedDatetime > CreatedFrom" より大きい CreatedDatime プロパティなどをチェックする方法です。
これが意味をなさない場合は、コメントしてください。問題を解決するよう努めます。
grails - RESTful Grailsアプリケーション:UrlMappingの乾燥
いくつかのリソースを公開するgrailsWebアプリケーションがあるとしましょう。
- タグ
- URL
- ユーザー
このアプリケーションには、ユーザーが操作する従来のWebインターフェイスといくつかの管理機能があります。RESTful APIを介してアプリケーションからクライアントにリソースを公開したいのですが、アプリのその部分が既存のコントローラーとコードを乱雑にしたくないのです。そこで、次のことを思いつきました。
Webインターフェースが提供host/app_path/url/[list|show|create]
する場合は、RESTAPIをに設定する必要があります/host/app_path/rest/url
。
そのため、次のUrlMappingsファイルが作成されました。
問題は、これがここで最も乾燥したものではないということです。タグなどのリソースを追加すると、さらに悪化します。それらは、非常に類似したコードのさらに別の3つのブロックに変換されます...
非クラッド関数は、特定の基準で検索するようなものになります...
ループを使用してマッピングクロージャを生成しようとしましたが、成功しませんでした。私たちはここで完全に間違った方向に進んでいますか?
c++ - 防御的プログラミングは DRY 原則に違反しますか?
免責事項: 私は現在プログラミングを学んでいる素人です。プロジェクトに参加したことも、500 行を超えるものを書いたこともありません。
私の質問は次のとおりです。防御的プログラミングは、自分自身を繰り返さないという原則に違反していますか? 私の防御的プログラミングの定義が正しいと仮定すると (呼び出し関数が逆ではなく入力を検証するようにする)、それはあなたのコードに有害ではないでしょうか?
たとえば、これは悪いですか:
これと比較して:
繰り返しになりますが、素人の私には、単純な論理ステートメントがパフォーマンスに関してどの程度不利になるかわかりませんが、防御的なプログラミングはプログラムや魂にとって良くないことは確かです。
php - 繰り返しを避けるためにこの条件をリファクタリングする方法は?
これは、日付でフィルター処理できるイベント ページの一部です (事前定義された日付範囲または日付ピッカーを使用)。
foreach ($days as $day_number)...
条件ごとに etc. ループ全体を繰り返さないようにしたい。
ループ全体を関数に移動できると思いますが、実装方法がわかりません。