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

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

c# - データ永続化レイヤーには何レベルの抽象化が必要ですか?

DDD 手法を使用してアプリケーションを作成しています。これは、DDD プロジェクトでの私の最初の試みです。これは私の最初のグリーンフィールド プロジェクトでもあり、私は唯一の開発者です。ドメイン モデルとユーザー インターフェイスを肉付けしました。今、私は持続層から始めています。いつものように単体テストから始めます。

ご覧のとおり、Add() 関数については何も期待していません。ここまで来て、まだ特定のデータベース ベンダーを決めていないことに気付きました。実際、dbエンジンが必要かどうかさえわかりません。フラット ファイルまたは xml も同様に妥当な場合があります。だから私は次のステップがどうあるべきか疑問に思っています。

抽象化の別のレイヤーを追加する必要があります... DataStore インターフェイスと言うか、既に作業を行っている既存のライブラリを探しますか? できれば、プログラムを特定のデータベース テクノロジに結び付けることは避けたいと思います。

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

spring - 静的コード分析は、Spring やその他の抽象化とどの程度うまく機能しますか?

ソース コードから使用されていないコードを削除するために、少なくともある程度の努力をしなければならない状況にいます。一般的には、静的コード分析ツールを使用することをお勧めします。他のプロジェクトではこれでうまくいきましたが、私が聞いているのはほとんどがデバイス レベルのコードに取り組んでいる C/C++ 開発者です。

私はJava EEシステムに取り組んでいる Web 開発者です。分析に好まれるツールはCoverity Preventですが、私たちが開発しているテクノロジーにより適切であるという強い主張をすることができれば、おそらく他の何かを支持することができます.

多くの抽象化を備えたシステムに対して実行している場合、デッドコードの静的コード分析の有効性はどうでしょうか? たとえば、Springの依存性注入とJSFを使用します。どちらの場合も、関数呼び出しをフロントエンドからバックエンドまで追跡し、何が呼び出され、何が呼び出されないかを完全に把握する簡単な方法はありません。

デッド コード チェックでの誤検出が、そもそもツールを実行する価値を上回るのではないかと非常に懸念しています。

このシナリオでの経験は何ですか? アーキテクチャが多くの抽象化を使用しているときに、静的コード分析ツールから価値を得ることができましたか? 誤検知を最小限に抑えて機能させるために何かしなければならなかったことはありますか?

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

php - 致命的なエラー: クラス NAME が (....PATH) に見つかりませんか?

次のエラーが発生した場合、何が問題になる可能性がありますか。

クラスを拡張しているときに、このエラーが発生しました

例:

クラス ModuleUser は AbstractModule を拡張します

致命的なエラー: クラス AbstractModule が (....PATH) に見つかりませんか?

ほとんどの可能性を実行しました...しかし、問題を解決できません。

どんな助けにも感謝します

ありがとうn前進

フェロ

0 投票する
3 に答える
223 参照

design-patterns - 行動ロジックの抽象化 - 設計パターンはありますか?

いくつかの動作コードを抽象化する必要があり、これらの動作を呼び出しているクラス内のオブジェクトを参照しようとすると問題が発生します。説明してみましょう。

私の「親」クラスには、 CurrentPageというプロパティがあります。また、 CurrentPageプロパティを変更する動作ロジックもいくつかあります。現在、これは同じクラスで記述されています。私は今、多くの場所でその動作を再利用する必要があるので、それをカプセル化/抽象化して別の...ええと...クラスにしますか??

自分のニーズに合ったデザイン パターンがおそらくあると感じていますが、どれを使用すればよいかわかりません。

誰か助けてくれませんか??

ありがとう、マーク

(私は C#、Silverlight、および MVVM を使用しています。CurrentPageはフィールドではなく通知プロパティであるため、 Ref型として Behavior サブクラスに渡すことはできません)

更新: 要求に応じて追加された例:

DoWork() を別のクラスに抽出しようとしています。

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

iphone - Objective-C、クラスの抽象化、およびそれらの変数へのアクセス

私は Java および C++ 開発の経験が豊富であるため、クラスとデータの抽象化は私にとって非常に簡単です。私は少し前にオブジェクティブ C を始めたばかりで、ほとんどがクラス内のグローバルで作業しており、すべてが順調に進んでいました。スパゲッティコードを少なくするために、コードの大部分を抽象化することにしましたが、土曜日以来克服できなかった問題にぶつかりました。

概要:

トランプゲームを作っています。最近、カード データを 3 つの変数を含むクラスに抽象化しました。(int)i_cardValue、(int)i_cardSuit、および (UIImage *)uii_cardImage。呼び出してカードを作成します

また、エンジン部分 (基本的にシャッフルやデッキ管理などのデッキ機能) も抽象化しました。デッキは変更可能な配列であり、デッキの初期化関数があります。

ここで、ビュー コントローラーで initDeck を呼び出し、次のような行で項目をデッキに追加します。

pce_Engine は PlayingCardEngine 型の変数です。NSLog 行を initDeck に入れましたが、プログラムを実行してもコンソールに表示されません。それらが呼び出されていないため、配列が割り当てられていないため、配列に要素を追加できませんか? 私はこれで問題ないと思っていましたが、ビューに追加しても表示されないため、間違っているか、何かが欠けています。NSLogを使用すると、デッキ== nilなので、問題はデッキに正しくアクセスしていないため、値を追加せず、どこにでも空の変数しかないことだと思います:(。目的cのチュートリアルをたくさん見てみました。しかし、私が行っている限り抽象化するものさえ見つけていないので、私の問題を見つけることができませんでした。

誰かが私を正しい方向に向けることができますか?

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

database - アプリケーションとデータベース間の特異なデータキー?

データ キーの名前を 1 か所と 1 か所だけで変更でき、アプリケーションとデータベースの両方で適切に処理できるパラダイムはありますか?

私は最近、クラス定数を使用してデータベースのフィールド名にマップすることに頼りましたが、それでも未加工のデータベース キーに合わせてそれらを保持する必要があります。

私が言いたいのは、例として PHP を使用することです。

$infoToUpdateUser[ User::FIELD_FIRST_NAME ]

これは、定数で変更する場合、そのフィールドへのすべての参照を変更するためにコードを検索する必要がないことを意味します。

これが発生する別の領域は、フィールドの参照です。初期の設計上の決定が不十分だったため、たとえば、次のようなテーブルがあります。

( テーブル名 : primary_key )

  • 猫 : cat_id
  • 犬 : dog_id
  • parrots : bird_id (覚えておいてください、設計が悪いため、parrots / bird_id の不一致があります)
  • トカゲ: lizard_id

次に、レコードを更新する一連のフォーム クラスがあるとします。

  • アニマルフォーム
  • DogForm は AnimalForm を拡張します
  • CatForm は AnimalForm を拡張します
  • ParrotForm は AnimalForm を拡張します

今度は、親クラスである AnimalForm の update 関数を使用して SQL データベースのレコードを更新したいので、20 個のサブクラスでコードを複製する必要はありません。

ただし、更新クエリを一般化する方法がわからないため、現在、各サブクラスには idFieldName メンバー変数があり、親クラスはそれをクエリに挿入します。

"UPDATE " . $this->table . " SET <data> WHERE " . $this->idFieldName

このようにするのはずさんに思えますが、現時点ではより良い解決策が思いつきません。

データベースとアプリケーションの両方で参照として共有されるデータキー名をリンクまたは抽象化する設計モデルまたはパラダイムはありますか?

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

php - Mysqli抽象化、プリペアドステートメントから配列をフェッチ

最近、以前は正常に機能していたlibのエラーに遭遇しました。それがどこにあるかを理解できれば、気が滅入るでしょう。

コードサンプルを以下に示します。その中にあるデバッグ機能についてお詫びしますが、動作させようとしています。

問題は、$ tempが正しいキー(列の名前)を持つ配列であるが、すべての値がNULLであるということです。

問題は

少しですが、頭を包むことはできません。

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

model-view-controller - Cakephp:AppControllerを別のレベルで抽象化することは可能ですか?

AppControllerとアプリの他のコントローラーの間に別の抽象化コントローラーを追加することはどういうわけか可能かどうか疑問に思っていましたか?

そのため、私のコントローラー、たとえば、UsersControllerはSecureControllerを拡張し、SecureControllerはAppControllerを拡張します。

また、他のコントローラーでAppControllerを直接拡張できるようにしたいです。SomeNonSecureControllerはAppControllerを拡張します。

これは、現在のAppControllerのbeforeFilterにあらゆる種類のAuthとACLが含まれているためですが、そのセキュリティを必要としないコントローラーもあります(すべてがセキュリティを必要とする前に、新しい仕様は追加されていません)。多くのコントローラーはそれを必要とします、それはすべての必要なコントローラーにコードをコピーして貼り付けることは意味がありません。

私は考えていましたが、beforeFilterのセキュリティはすべてSecureControllerに組み込まれています。そうすれば、セキュリティを必要とするコントローラーは簡単に拡張でき、他のコントローラーはAppControllerから直接継承します。

このようなことをどのように進めますか?

ケン、よろしくお願いします。

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

ruby - Rubyの抽象化

私はRubyを初めて使用し、主にC#とActionScript 3(他の言語の中でも)から来ています。機能の抽象化に興味があります。具体的には、RubyのFTPおよびSFTPライブラリをラップおよび抽象化します。

私は周りを探していて、バックアップと呼ばれる宝石に出くわしました。S3、SCP、SFTP、FTPを介したバックアップをサポートしているので、本当に注目を集めました。それで、「すごい、これが完璧な例だ!」と思いました。ソースを閲覧し始めましたが、次のようなコードに出くわしました。

GitHubで完全なソースを表示する

それはcase/whenステートメントで散らかっています!これをC#で攻撃している場合は、プロトコルインターフェイス(または抽象クラス)を作成し、FTPとSFTPに実装させます。次に、私のクライアントクラスは、実装を気にせずにプロトコルのインスタンスを渡すだけです。ゼロスイッチ/ケース。

Rubyでコーディングする際の、この状況でのベストプラクティスに関する少しのガイダンスをいただければ幸いです。

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

c++ - ボタンをサブスクライブして、C++ でいくつかの関数を動的にトリガーしますか?

ボタンクラス(抽象)を作成しようとしているので、プログラムのロード時に動的にクリックされたときにそのボタンがどの機能をトリガーするかを設定できます。

XML ファイルを読み取ってすべてのボタンを作成したいのですが、これはコードの複製を避けるためです。そのため、「汎用」ボタン クラスを 1 つだけ持つと非常に便利です。

メソッドの所有者へのポインターや問題の名前のメソッド、またはメソッドへの直接ポインターなど、メソッドに関する必要な情報を動的に渡すことができるかどうか疑問に思っていました。