問題タブ [convention-over-configur]
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.
c++ - cmake は構成よりも規則を使用しますか?
Maven は、 Convention over Configurationの形式を採用していると言われています。
間違った比較をしたくはありませんが、私が理解している限り、cmakeは Java プロジェクトで maven ができるように、C++ プロジェクトで同様の役割を果たします。
それで、cmakeには構成に関するいくつかの規則がありますか、それとも各プロジェクトは一意に構成されていますか? (書き込みファイルレイアウト、テストレイアウト、ビルド出力など)
caliburn.micro - Caliburn.Micro 規則を使用してボタンのテキストとそのアクションを設定するにはどうすればよいですか?
ビューに Save という名前のボタンがある場合、Save プロパティを ViewModel に追加すると、Caliburn.Micro が自動的にそれをボタンのコンテンツにバインドします。例えば:
または、Save メソッドを ViewModel に追加することもできます。Caliburn.Micro は、ボタンがクリックされたときにそのメソッドを実行します。例えば:
しかし、両方をやりたい場合はどうすればよいでしょうか。C# では、同じ名前のメソッドとプロパティを宣言できません。規則を使用して、ボタンのコンテンツとクリック時に実行するアクションの両方を設定できますか?
(どちらか一方を手動でバインドできることはわかっていますが、実用的であれば、慣例を使用したいと思います。)
これは一般的なニーズであるため、Caliburn.Micro に組み込まれていると思われますが、そうではないようです。これをサポートするために規約を拡張するいくつかのコードを見てきました (そして、これ以上良いものがなければ回答として投稿します)。この作業をよりきれいにしました。
注:この同様の質問を見たことがありますが、これが良い考えかどうかについてのようです。メカニックについて質問です。(いいアイデアかどうかは、メカを見てから判断します(笑))
repository-pattern - デコレータ パターンの StructureMap RegistrationConvention
私はデコレータパターンを使用して、リポジトリのキャッシュを実装しています。
Cached リポジトリは要求されたオブジェクトのキャッシュをチェックし、存在しない場合は FooRepository を呼び出して取得および保存します。現在、次の方法を使用して、これらのタイプを StructureMap に登録しています。
これは問題なく機能しますが、キャッシュされたリポジトリの数が増えるにつれて、それぞれを個別に登録するのは扱いにくくなり、エラーが発生しやすくなります。共通の規則があるので、カスタムの IRegistrationConvention を使用してアセンブリをスキャンしようとしていますが、FooRepository を関数内の CachedFooRepository のコンストラクターに渡す方法がわかりませんvoid Process(Type type, Registry registry)
。
次のようなことをする例を見つけました:
また
しかし、どちらの方法でも を連鎖させることはできません.Ctor
。私は何が欠けていますか?何か案は?
ruby-on-rails - Railsのどこにスイーパーを置きますか?
RailsにSweeper
クラスを特定のディレクトリの場所に配置するための規則はありますか?
更新:オブザーバーが入れられるのでapp/models
、名前が常に「sweeper」で終わる限り、スイーパーも同じだと思います。
c# - フレームワーク規約の静的チェック
たとえばMVCプロジェクトの規則を定義して、コントローラーから継承するクラスの最後にコントローラーが追加されるなどの命名規則を静的にチェックしたり、メソッドを装飾するときに特定のメソッド署名を強制したりできる製品/プロジェクトはありますか属性。
私は基本的に、私たちのチームに参加する新しい開発者のためにいくつかのガードレールを設定する方法を探しています。そこでは、リフレクションを通じて動的に物事を結び付けるために使用される明確な一連の規則があります。互換性のないシグネチャが原因でこのリフレクション ワイヤーアップが失敗することを確認できれば、私たちの立ち上げプロセスに大きな恩恵がもたらされます。
必要な主な機能:
- 壊れたルールの静的/コンパイル時のチェック
- 特定の属性で装飾されたメソッドをターゲットにする機能 (正規表現またはウィザードを介して)
- さまざまな種類のプロジェクトに基づくさまざまなルール セット。(例: MVC アプリ用の一連の規則、Web フォーム アプリ用の別のセット、.BLL という接尾辞が付いたクラス ライブラリ用の別のセット)
入力の提案は大歓迎ですが、これらの機能がサポートされていることがわかっている場合にのみ回答してください.
c# - FluentNhibernateカスタム主キー自動マッピング-nullを(禁止)許可
これがnull許容およびnull許容でないデータベースフィールドのハードコーディングされたマッピングの方法である場合
自動マッピングと規則でどのように行われますか?
また、それは明らかではありませんが、私がそれを必要とする目的は、主キーフィールドを使用せずにnhibernateに挿入SQLステートメントを生成させることです。
例:データベースでProductIdを生成するのではなく、
NHibernateは生成する必要があります
また、rdbmsは、データベースがどのように割り当てるかをクライアントコードが気にしないため、ここでは問題になりません。
ruby-on-rails - Ruby on Rails のコマンドと規則 - それらは何ですか?
PHP と MySQL で Web サイトを作成して 10 年近くになりますが、フレームワークを使用したことはありません。これは、私がすべてを手作業でコーディングしたことを意味し、コードがどのように機能し、それ自体と相互作用するかを知っています。
自分の視野を広げたいと思って、別の Web 言語、フレームワーク、DB などを学ぶために Ruby on Rails を手に入れました。Ruby on Rails のチュートリアルに従っていますが、これまでのところ順調に進んでいますが、ブラック ボックスがどれだけあるかはわかりません。感じます。あまりにも多くの魔法があり、それが起こるからといって物事が起こります. この「魔法」の例には、ルートファイルに「resources :users」を突然追加すると、 /new /user/1 /user/1/edit などのようなほぼ無限の可能性のあるリンクが含まれます。 db テーブルに列を追加する コンソールで「rails integrate _to_table value:type」というようなことをしなければなりません。
チュートリアルに従って作成できましたが、何をしているのかわかりません。その一部は経験から得られることはわかっていますが、Rails がどのように、なぜそうしているのかを知りたいと思っています。
RoR がどのように機能するかを学ぶことができる、オンラインや書籍などの優れたリソースはありますか?
asp.net-mvc - Convention over Configuration で新しいフォルダーを追加するのはいつですか?
質問が 2 つあります。
プロジェクトに Services フォルダーを追加する人を見かけます。そのフォルダの目的は何ですか?
Services と ViewModels のフォルダーが表示されます。今、リポジトリに関する記事に出くわしました。では、新しい用途を持つクラスを作成するたびに、そのクラス用のフォルダーを作成する必要があるというのが規則ですか? たとえば、Repository クラスがある場合、Repository フォルダーを作成して、Models フォルダーの代わりにそこに配置する必要がありますか?
c# - 構成に対するEntity Framework Code Firstの慣例は、逆にする必要があります
MS が構成よりも規則を使用することにしたのはなぜですか。
私は非常に大規模なプロジェクトを扱っていますが、すべてのプロジェクトがデータ中心というわけではありません。実際、データ中心のプロジェクトであっても、私のエンティティ クラスには、永続性にとらわれない必要がある多くのカスタム機能があります。
現在の MSM アプローチでは、属性を非永続プロパティに適用する必要があり、その逆ではありません。それがコードファーストのポイントではないでしょうか? 労働者階級の階層を使用し、それを「追加」として互換性のある永続性に変えるには?
ID や主キー プロパティ、外部キーの命名など、いくつかの規則が非常に役立つことは理解しています。しかし、正直なところ、クラス構造がまだない場合、モデル ファーストではなくコード ファーストを使用する開発者が何人いるでしょうか?
fluent-nhibernate - Fluent NHibernate 自動マッピング クラス規則がクラス階層全体に適用されない
Fluent Nhibernate を使用して単純な継承階層を自動マップしようとしていますが、各テーブルにそのクラスとは少し異なる名前を付ける必要があります (Pascal ケースではなくアンダースコア)。これは、規則を使用する明らかな場所のようです。サブクラスごとのテーブル戦略も使用したいのですが、この組み合わせが問題を引き起こしているようです。規則は階層の基本クラスにのみ適用されます。
これが私の自動マッピングです:
クラスをマップする方法 (クラス名 -> テーブル名):
私が実際に得ているもの:
ご覧のとおり、実際に変更されているのは基底クラスだけです。これが私の既存の規則です。これは、私がそれをどのように定義しているかを確認できるようにするためです。
インターフェイスも調べましたがISubclassConvention
、そこにはテーブルの名前を調整する方法がありません(これは十分に理にかなっています。サブクラスは常に独自のテーブルにあるとは限りません)。
自動マッピングから行を削除するIncludeBase
と、名前は希望どおりになりますが、table-per-concrete-class になります。すべての共通データを 1 つの共有ベース テーブルに残して、 table-per- subclassを使用したいと考えています。
名前ごとにオーバーライドを追加できます。必要に応じて追加しますが、したくありません。
これは明らかにサポートされている動作であるように思われます。table-per-concrete-class に行かずに、階層内の各テーブルに命名規則を適用するにはどうすればよいですか?