タグ付けされた質問 「plugin-architecture」

11
Robert C. Martinは、SQLが不要であるとはどういう意味ですか?[閉まっている]
私は多くのRobert C. Martinのコンテンツを読んだり見たりしています。私は、ソリッドステートドライブのためにSQLが不要であると言ってきました。これをバックアップするために他のソースを検索すると、ハードドライブとソリッドステートドライブのSQLパフォーマンスの違いを説明するランダムな記事がたくさんあります(これは関連していますが、研究しようとしているものではありません)。 最終的に、私は彼が何を得ようとしているのか理解できません。彼はSQLをNo-SQLテクノロジーに置き換えると言っていますか?彼はファイルシステムのファイルにデータを保存すると言っていますか?それとも、SQLi攻撃のために、人々にSQL /リレーショナルデータベースの使用をやめさせたいのでしょうか?彼がやろうとしているポイントを逃しているのではないかと心配しています。 あなたが彼の心から直接読むことができるように、ここにいくつかのリンクを提供します: ボビーテーブル クリーン建築レクチャー まず、SQLをシステムから完全に削除する必要があると述べています。 ソリューション。唯一の解決策。システムからSQLを完全に削除することです。SQLエンジンがない場合、SQLi攻撃はありません。 また、彼はSQLをAPIに置き換えることについて語っていますが、その前の引用と彼が記事の前半で述べていることから、SQLをAPIの背後に置くことを意味するとは思いません。 フレームワークは問題を処理しません; ... サイドノート:SQLと言って、Robertはほとんどのリレーショナルデータベースを意味すると確信しています。すべてではないかもしれませんが、ほとんどです。いずれにせよ、ほとんどの人はとにかくSQLを使用しています。そう... データの永続化にSQLが使用されていない場合、何を使用することになりますか? それに答える前に、私も注意する必要があります。ロバートは、ソリッドステートドライブがデータの永続化に使用するツールを変更する必要があることを強調しています。SørenD.Ptæusの答えはこれを指摘しています。 また、「データ整合性」グループに対応する必要があります。さらなる調査の結果、ロバートは、datomicなどのトランザクションデータベースを使用する必要があると述べています。その後、CRUDはCR(作成および読み取り)に変わり、SQLトランザクションは完全になくなります。データの整合性はもちろん重要です。 このすべてを網羅する質問は見つかりません。私はロバートのガイドラインに一致する代替案を探していると思います。Datomicは1つですが、それですか?これらのガイドラインに適合する他のオプションは何ですか?また、ソリッドステートドライブで実際に機能しますか?

2
クリーンアーキテクチャ:ビューモデルとは
彼の本「Clean Architecture」で、叔父ボブは、プレゼンターが受け取ったデータを「表示モデル」と呼ぶものに入れるべきだと言っています。 これは、Model-View-ViewModel(MVVM)設計パターンの「ViewModel」と同じものですか、それとも単純なデータ転送オブジェクト(DTO)ですか? 単純なDTO ではない場合、ビューにどのように関連しますか?ビューは、オブザーバー関係を通じて更新されますか? 私の推測では、彼の本の第23章でロバート・マーティンは次のように述べているため、MVVMのViewModelに似ていると思います。 [The Presenter's]ジョブは、アプリケーションからデータを受け取り、プレゼンテーション用にフォーマットして、Viewがデータを画面に簡単に移動できるようにすることです。たとえば、アプリケーションでフィールドに日付を表​​示する場合、プレゼンターにDateオブジェクトを渡します。プレゼンターは、そのデータを適切な文字列にフォーマットし、Viewモデルと呼ばれる単純なデータ構造に配置します。Viewモデルでは、データを見つけることができます。 これは、たとえばDTOの場合のように、単に関数引数として受け取るのではなく、Viewが何らかの方法でViewModelに接続されていることを意味します。 あなたは、画像を見れば、プレゼンターはビューモデルを使用しますが、ので、私はこれを考えるもう一つの理由はありませんビューを。一方、プレゼンターは出力境界と出力データDTOの両方を使用します。 DTOでもMVVMのViewModelでもない場合は、それが何であるかを詳しく説明してください。

1
インターフェイスを動的に実装する新しいJARをプラグインするにはどうすればよいですか?
背景:自分や他の開発者が実装するインターフェースの開発に取り組んでいます。このインターフェイスにより、ユーザーは新しい機能コードをシステムに「プラグイン」して、新たに使用することができます。この新しいコードは、すでに実行中のサーバー/アプリケーションから呼び出されます。(TLDR:オンザフライでアプリケーションにプラグインをインストールする機能を開発する必要があります) これまでにインターフェースで行ったすべての作業は、内部コーディングの目的で行われており、外部に公開されることはありません。ユーザーが新しいコード実装インターフェースをプラグインできるようにするために私が考えることができる唯一の方法は、ユーザーが実装クラスを含むJARファイルをフックし、何らかの方法でそのクラスシグネチャを呼び出し用に定義することです。これは以前に行われたことのように思えますが、私はコーディングの側面に触れたことはありません。 サーバー/アプリケーションの実行時に新しいJavaコードのこのプラグインを許可するために使用できるフレームワークはありますか?私は以前にAPIを使用したことがありますが、より多くのWebサービスでは、コアインターフェイスを「実装」せずにサービスを消費している場所を明らかにします。 参考までに、メインアプリケーションにSpringを使用してJavaバックエンドを使用しています。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.