問題タブ [abstraction]
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.
orm - BackingStoreException の別名
私は、ORM のパブリック インターフェイスからすべての SQLExceptions をより一般的なもので抽象化する作業に着手しようとしています。
BackingStoreException または StorageMediumException に沿ったものを考えていますが、どちらも私には驚くべきものではなく、大幅で長期にわたる変更であるため、本当に素敵な名前を付けたいと考えています。
ということで、ご意見・ご要望を募集します。
これが非常に主観的である場合は申し訳ありませんが、ライブラリの命名規則は実際には非常に重要であると強く感じています.
ありがとう。
ps 問題の ORM は、Java で書かれたSoenEA ( https://soenea.htmlweb.com/trac ) です。
javascript - JavaScript 抽象化の抽象化を書く - これは正気ですか?
Prototype と Scriptaculous で動作する JavaScript アプリケーションを作成しました。オープン ソース製品として展開することを考えており、jQuery でも実行できるようにしたいと考えています。通常、このアプリが最初に作成されたサイトを除いて、他のほとんどのアプリで jQuery を使用しています。
当初は 2 つの別々のアプリケーションを構築することを考えていましたが、それらを維持するには時間がかかります。代わりに、ページが jQuery または Prototype を実行しているかどうかを検出し、適切なメソッドを呼び出すライブラリ抽象化レイヤーを構築することを検討しています。ライブラリ全体を抽象化するつもりはありません。アプリケーションに適用可能な機能、つまりセレクター、イベント、効果だけを抽象化するつもりはありません。私のアプリのコアは 500 行未満のコードなので、あまり心配する必要はありません。
したがって、呼び出す代わりに、(ライブラリ抽象化の LA) を呼び出します$('id')
。これは、プロトタイプやクエリなどで呼び出します…LA.$('id')
$('id')
$('#id')
これは正気ですか?技術的なハードルは思い浮かびませんが、誰かが以前にこれを試みたことがあると思いました。私の検索では、同じようなものは見つかりませんでした。
java - なぜゲッターとセッター/アクセサーを使用するのですか?
これらの変数にパブリックフィールドを使用するのではなく、取得と設定のみを行うゲッターとセッターを使用する利点は何ですか?
ゲッターとセッターが単純なget/set以上のことをしている場合、これは非常に迅速に理解できますが、その方法について100%明確ではありません。
以下よりも悪いです:
前者はボイラープレートコードがはるかに少なくて済みます。
api - ソートされた値を Key-Value として抽象化する
ソートされたオブジェクトのコレクションへのインターフェイスを作成しています。いつものように、これらの項目をどのようにソートするかはユーザーに任せます。ただし、現在、キーと値のインターフェイス (ソートキーが値から明示的に分離されている) を提供するか、値のみのインターフェイス (値がソートキーでもあるか、ユーザーが別のソートを処理する必要がある) を提供するかで悩んでいます。いくつかの比較関数を渡すことによってキー)。
私の見解では、キーと値のインターフェイスは、ユーザーが常に値とは別のキーを持つことを強制します。それは、ある値が自然に独自のキーを形成する場合でも同様です。ただし、ユーザーからキーを処理する責任がなくなるため、API を使用するときにユーザー コードがよりシンプルでクリーンになる可能性があります。値のみのインターフェイスでは、独自のキーである値をよりコンパクトに表現できますが、キーと値が自然に区別される場合、ユーザーは独自のキーを追跡して処理する必要があります。
もちろん、両方のアプローチをサポートする文献がありますが、古い文献は値のみのアプローチを好む傾向があり、新しい文献はキーと値のアプローチを好む傾向があるように私には思えますが (これについては間違っている可能性があります)。
このような場合のあなたの好みが気になります。どちらか一方が一般的に優先される時点に到達しましたか? そうでない場合、通常は何を使用していますか。また、その理由は何ですか?
memory - 環境 (Ruby など) は大量の整数をどのように処理しますか?
私の Ruby (MRI) の整数は、オーバーフローを拒否します。クラスが fixnum から bignum に変更されたことに気付きましたが、これがどのようにモデル化されているのか、Ruby がこれらの巨大な整数の演算を実行するためにどのようなプロセスを使用しているのか疑問に思っています。この動作は、SCHEME や他の環境でも見られます。
C プログラムで同様のものを実装したいので、bignum + bignum がプリミティブ演算にどのように還元されるかを知りたいので、質問します。
ポインタはありますか?
asp.net-mvc - サービスに別のサービスへの参照を与える必要がありますか、それとも呼び出し元に追加の責任を与える必要がありますか?
私のプロジェクト (ASP.NET MVC を使用) には、AuthenticationService と ProfileService の 2 つのクラスがあります。新しいユーザーが私のサイトに登録すると、認証コントローラーの Register アクションが IAuthenticationService の Register メソッドを呼び出します。これにより、インターフェイスが参照している (コントローラーのコンストラクターに挿入された) 具体的な認証モジュールに従って、ユーザーの認証レコードが作成されます。登録プロセスの一部として、ユーザーのプロファイル レコードが作成されます。これは、挿入された IProfileService で CreateProfile(User) を呼び出すことによって作成されます。
現時点では、コントローラーは両方のサービスを呼び出していますが、コントローラーが実行するビジネス ロジックをできるだけ少なくするというアイデアが気に入っています。認証サービスにプロファイル サービスについて知らせる以外に、他のオプションがあるかどうか疑問に思っています。これには、IAuthenticationService の将来の実装で、CreateProfile を呼び出すことを知る必要がありますか? コードの匂いが随所に書かれていると感じずにはいられません。
もう 1 つの可能性は、{I,}RegistrationService という 3 番目のサービスにロジックを任せることです。
この状況を処理するための推奨または推奨される方法は何ですか? ありがとう
c# - C#コンソールアプリ間で共有される機能
いくつかの機能を共有する2つのコンソールアプリ、QueryとUpdateがあります。2つのクラスを共通の基本クラスから継承させたかったのですが、問題は、コンソールアプリの場合、static Main
関数が必要なことです。私が現在持っているのは次のとおりです。
継承するだけでなく、各派生クラス内ConsoleBase
の変数としてインスタンスを持っていることは、私にとって設計上の問題のようです。static
私がこれをしている理由は次のとおりです:
- 派生クラスの他のメソッドにアクセスできるメソッドを定義することができます
protected static
。ConsoleBase
static
- コマンドライン引数をのコンストラクターに渡し、一般的な処理を実行してから、のインスタンスのプロパティとメソッドを
ConsoleBase
介して派生クラスの引数に再度アクセスできます。public
ConsoleBase
ConsoleBase
したがって、派生クラスでは、インスタンスのメソッド/プロパティへの呼び出しが混在しています。
継承された静的メソッドを呼び出し、で定義されている継承された定数にアクセスするだけでなくConsoleBase
、たとえば
どうにかしてこれをクリーンアップできますか?クラスから継承するだけでなく、その基本クラスのインスタンスを保持して作業するのは悪いことですか?
abstraction - 抽象化とソフトウェアコンポーネントの違い
アーキテクチャ用語の抽象化をソフトウェアコンポーネントと明確に区別するにはどうすればよいでしょうか。抽象化はソフトウェアコンポーネント内にあるのでしょうか。
sql - ストアド プロシージャをサポートする Perl 用 SQL クエリ ジェネレータ
私が取り組んでいる現在のコード ベースは、その場しのぎの条件付き文字列連結でいっぱいで、明確な SQL クエリとは言えません。私はそれらを保守可能にしたいのですが、DBIx::Classを使用するのは複雑すぎて今のところ (巨大なレガシー ベース) に移行できないため、何らかの SQL ジェネレーターを使用して、少なくともそれらをより堅牢にすることを検討しています。オブジェクト指向またはその他のクリーンな手法で SQL を作成します (DB の処理は不要です)。
そのジェネレーターに対する一般的な制約の 1 つは、ストアド プロシージャを適切な方法で使用できることです。これは、私のアプリケーションはほとんどストアド プロシージャに基づいているためです。たとえば、私はする必要がありSELECT * FROM StoredProcedure(Parameter) WHERE ...
ます。Fey::SQL、SQL::Abstractなどを調べましたが、この種のステートメントの「インライン SQL」以外のサポートは見当たりませんでした。DBIx::ClassEXECUTE ...
でさえサポートされていません。率直に言って本当に信じられません。おそらく間違った場所を探していたのでしょう。
私は実際にFey::SQLのアプローチが好きでしたが、ある種のスキームが必要であることがわかりました:
あなたは何をお勧めします?