問題タブ [boilerplate]
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# - インターフェイスを明示的に実装するときに、この反復的なイベント宣言コードをC#で記述するためのより良い方法はありますか?
次のようなコードがたくさんあり、インターフェイスに必要ないくつかのイベントを明示的に実装しています。
これの多くが定型文であることがわかります。Rubyでは、次のようなことができます。
C#でこのボイラープレートを削除する同様の短い方法はありますか?
更新:例から非常に重要な部分を除外しました。つまり、実装されるイベントはインターフェイスの一部であり、明示的に実装したいと思います。これについて先に言及しなかったことをお詫びします!
java - Project Lombokは大規模なJavaプロジェクトに適していますか?
大規模な生産システムにProjectLombokを使用している人はいますか?それはコンパイルプロセスにどのように影響しますか(つまり、2パスコンパイルを実行し、速度を落とし、より脆弱にしますか)?
java - データモデル間で変換するときに定型文を排除するのに役立つ最善の方法
私は、XMLスキーマで生成されたオブジェクトの2つのセットがあり、それらが類似した構造を持つ2つのまったく異なるクラスのセットであるプロジェクトに取り組んでいます。2つのセット間の変換は、大量の定型的な冗長コーディング(コレクションのいくつかのネストされたレイヤーを持つ要素の変換など)で構成されます。
一連の宣言型変換ルールを取得して必要なコードを生成できる可能性のあるリフレクションまたはバイトコード生成ベースのツールに興味があります。
これはJava用です。
参考:commonsについて知っています-beanutils、copyPropertiesフィールド名、メソッド名、および含まれるクラスタイプはすべて異なりますが、最下位レベルでは、文字列、列挙型、整数、および日付はすべて簡単に変換できます。Beanパターンのコピーは機能しません。
.net - IDisposableの定型コードの量を減らす方法はありますか?
私のプロジェクトには多くのリーダーとライターのクラスがあります。IDisposableの実装を開始しましたが、クラスに多くの定型コードが追加されると思います。クラスごとに、以下を実装する必要があります。
- デストラクタ。
- Dispose()メソッド。
- Dispose(bool disposed)メソッド。
- 「booldisposed」フィールド。
- オブジェクトがすべてのパブリックメソッドにすでに配置されているかどうかを確認するためのチェック。
- ドキュメント(ドキュメントフラグを有効にしていて、コンパイラがそれ以外の場合は警告するため)。
私の質問:
IDisposableを実装する価値はありますか?以前は、次のようなクラスを使用していました。
IDisposableを使用すると、あまり改善されません。
Dispose()メソッドのみを実装できますか?
私のクラスは管理されていないリソースを使用しないため、Dispose(false)は何もしません。クリーニングしているものもIDisposableであるため、オブジェクトが破棄された後にメソッドを呼び出すと、既に破棄されたオブジェクトを使用しているため、ObjectDisposedExceptionがスローされるはずです。
完全なIDisposableパターンを実装することをお勧めする場合、ボイラープレートコードを減らす方法はありますか?
編集:いくつかの回答はクラスを封印することを推奨しているので、実際には、クラスを封印することで問題がないことを確認できます。
haskell - 州のモナド:あるパターンを別のパターンと交換しますか?
だから私はHaskellでゲームを書いていて、プレイヤーのターンをさまざまなターンフェーズに相関する一連の状態変更関数として表現しています。元々、これは次のようになります。
州の君主制の第一候補ですよね?これにより、よりエレガントになります。
ただし、ボイラープレートの「状態取得」ステップから始めるには、、phase1
などを変更する必要があるようです。phase2
これを抽象化する方法があることを望んでいるので、発信者と着信者の両方で定型文を避けることができます。私はこの方法が何であるかを知るにはあまりにも新しいです(これは私の最初の本当のHaskellプロジェクトです)。何かアドバイス?
metaprogramming - 定型文を削減するためのメタモルフィック コードの使用
定型コードを削減するために使用されるメタモルフィック コード、つまり、命令 (IL と Java バイトコード、およびネイティブ コードを含む) を生成して実行するコードを見た人はいますか?
アプリケーションや言語に関係なく、通常、データベースから行を取得してオブジェクトのリストを返すデータベース コードがいくつかあります。もちろん、データベース コネクタに基づいてこれを行う方法は無数にあります。インデックスによって行のセルにアクセスすることになるかもしれません ("SELECT Name, Age" を "SELECT Age, Name" に変更するとコードが破損し、さらにインデックスによって意味がわかりにくくなるため)、myObject.Age = resultRow を使用することになります。 getValue("Age") (厄介です。これは、すべてのフィールドを調べて、列に基づいてデータを設定するだけだからです)。
データベースのテーマに沿って、LINQ to SQL は素晴らしいです。ただし、データ モデルの定義は、特にデータベースに非常に多くのテーブルがあり、SSMS がオブジェクト ブラウザーにすべてのテーブルを一覧表示できない場合は、それほど優れた方法ではありません。また、私が嫌いなのは、ストアド プロシージャの作成や SQL の関与ではありません。オブジェクトをデータベースに接続するだけです。
私がインターンをしている会社の誰かが、System.Reflection.Emit で .NET リフレクションを使用する SqlCommand クラス (System one から継承) から本当に素晴らしいメソッドを作成し、フィールドを設定するメソッドを生成しました (列の名前を含む属性) を nullary コンストラクターを持つモデル オブジェクトに適用します。プログラムの特定の部分が新しいメソッドを記述するため、これは変形的であると考えます。
データベースからオブジェクトを生成するこのパターンは、ほんの一例です。私が 2 日前に見つけたのは、SWT のデータバインディングのサポート (JFace 経由) でした。setAddress(Address address) と getName() を使用してこれらの完全にクリーンなモデルを作成しましたが、PropertyChangeSupport ファイアーを使用してセッターを汚染し、PropertyChangeSupport インスタンスを持ち歩く必要があります (抽象基本クラスにある場合でも)! その後、 PojoBindablesを見つけました。今では、書く必要が減ったという理由だけで、レベル 80 のデータバインダーのように感じています。
具体的には、このようなものやJava エージェントでネイティブ コードを使用するものは非常に便利です。
c# - 参照型のすべてのコレクションを整数のコレクションに変換するように AutoMapper を構成するにはどうすればよいですか?
次のエンティティがあるとします。
つまり、、、および securityStore
を持つです。これをに変換したい:Products
Employees
Cameras
Store
StoreDTO
つまり、 にStoreDTO
はエンティティ ID のみが含まれます。
現在、このコードを使用してセットアップしていAutoMapper
ます:
ご覧のとおり、定型コードがたくさんあります。参照型のすべてのコレクションを整数のコレクションにAutoMapper
自動的に変換するように構成する方法はありますか?
html - html5ボイラープレートは何の略ですか?
その style.css のように body があります{background:transparent}
。では、背景を透明に保つことになっているので、常に適切な html5 Web サイトを作成しますか? これらはデフォルトですか?私のウェブサイトに従ってそれらを上書きする必要がありますか?
memory - OpenCLのcl_memに関する質問
私はOpenCLボイラープレートコードの一部でcl_memを使用していますが、コンテキストを通じて使用しており、正確に何であるかを明確に理解していません。これまでフロートだったボードを押したり外したりするメモリのタイプとして使っています。OpenCLドキュメントを見てみましたが、cl_memが表示されません(表示されますか?)。それに関するドキュメントはありますか、それとも単純で誰かが説明できますか?
terminology - ボイラープレート コードとは
同僚はこれについて聞いたことがなく、本当の定義を提供できませんでした. 私にとって、それは常に「見れば分かる」のインスタンスでした。
おまけの質問ですが、誰がこの用語を生み出したのですか?