Goでプラグインを開発しますか?

vvilp:

プラグインベースのアプリケーションで使用するために動的に実行できますか?

Eclipseでは、Eclipseが動的に実行できるプラグインをいくつか作成できます。

Goでも同じことが可能でしょうか?

DenysSéguret:

これらは2つの別個の問題であると主張します。

  1. 動的負荷がある
  2. プラグインを持っている

最初のものは単にnoです。Goプログラムは静的にリンクされています。つまり、実行中のプログラムにコードを追加することはできません。また、プラグインを統合させるには、プログラムをコンパイルする必要があります。

幸いにも、ほとんどの言語と同様にGoでプラグインを受け入れるプログラムを定義できます。また、インターフェースと高速コンパイルを使用してGoを定義しても、その作業は難しくありません。

2つの可能なアプローチは次のとおりです。

解決策1:メインプログラムに統合されたプラグイン

Eclipseプラグインと同様に、プログラムを再コンパイルするだけで、メインプログラムメモリに「プラグイン」を統合できます。この意味で、たとえば、データベースドライバーはプラグインであると言えます。

再コンパイルが必要であり、コードのある時点で「プラグイン」をインポートする必要があるため(データベースドライバーでどのように実行されるかを参照)、ディレクトリとインポートに関するGoの標準化を考えると、これはJavaほど簡単ではないかもしれません。、プラグインをインポートしてアプリケーションを再コンパイルする単純なmakefileで簡単に処理できます。

Goでのコンパイルの容易さと速度、およびパッケージ構造の標準化を考えると、これは非常に実行可能なソリューションのように思えます。

解決策2:別のプロセス

Goでは、通信や非同期呼び出しの処理が特に簡単です。つまり、名前付きパイプ(または任意のネットワークソリューション)によって通信する多くのプロセスに基づくソリューションを定義できます。Go にはrpcパッケージがあることに注意してくださいこれはおそらくほとんどのプログラムにとって十分効率的であり、メインプログラムはプラグインプロセスを開始および停止できます。これは非常によくできたと感じますが、メモリ空間の保護の追加の利点とEclipseで持っているものに似ています。

いくつかのEclipseプラグインを作成した誰かからの最後のメモ:その混乱を望まない。単純にする。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

プラグインは Maven を使用せずに開発できますか?

分類Dev

サードパーティの開発者はAdobeAcrobat用のプラグインを開発できますか?

分類Dev

Eclipseプラグインは構成を開発します

分類Dev

Webデザイン/開発/プログラミングにC ++を使用できますか?

分類Dev

VSアイコンパックをVSプラグイン、VisualStudioプラグイン開発に追加します

分類Dev

Eclipseプラグイン開発でSWTUIからクラスを検索する

分類Dev

Goを使用してVPPプラグインを実装できますか?

分類Dev

KotlinでFlutterプラグインを開発すると、Javaで記述されたプラグインと何か違いがありますか?

分類Dev

アプリを公開する前に開発プラグインを削除する必要がありますか?

分類Dev

class_existstはfalseWPプラグイン開発を返します

分類Dev

グーグルプレイサービスライブラリ-アンドロイド開発:ライブラリサイズを縮小しますか?

分類Dev

グーグルプレイサービスライブラリ-アンドロイド開発:ライブラリサイズを縮小しますか?

分類Dev

プラグイン開発、ユーザーデータをどこに保存しますか?

分類Dev

jQueryプラグイン開発は関数である設定を実行します

分類Dev

Unityでゲームを開始すると、「OculusXRプラグインを開始できません」エラーが発生します

分類Dev

Eclipse プラグイン開発: アイテムのパスを使用してワーキング セットにアイテムを追加しますか?

分類Dev

Group Mentionプラグインの開発を開始するにはどうすればよいですか?

分類Dev

Hyperledger Composerを使用して開発中/すでに開発中のエンタープライズソリューションはありますか?

分類Dev

Eclipseプラグイン開発のプロジェクトでライブラリを追加または削除します

分類Dev

ALSAでplughwプラグインを使用するとレイテンシーが発生しますか?

分類Dev

Clionのプラグイン開発にIntelliJ 2019.3.1を使用します。プラグインプロジェクトにC ++言語サポートを追加するにはどうすればよいですか?

分類Dev

Eclipseプラグイン開発: `plugins`フォルダー内で爆発するバンドルを作成します

分類Dev

wordpress:プラグイン管理エリアでajaxを使用するとエラーが発生しますか?

分類Dev

Python 3.4でローグライクゲームを開発し、レベルをランダムに生成するためのヘルプを探します

分類Dev

画鋲を使用してMSPixelsenseの完全オフライングローバルマップを開発するためのオプションは何ですか

分類Dev

Rプログラミング言語を使用してAndroid開発を行うことは可能ですか?

分類Dev

プラグイン開発用にIntellijIDEAをセットアップします-シンボルPathInfoが見つかりません

分類Dev

エンタープライズ開発者ライセンスでOSX10.9のxcodeを介してMapkitを使用できますか?

分類Dev

VIMでJavaを開発するための良いプラグインは何ですか?

Related 関連記事

  1. 1

    プラグインは Maven を使用せずに開発できますか?

  2. 2

    サードパーティの開発者はAdobeAcrobat用のプラグインを開発できますか?

  3. 3

    Eclipseプラグインは構成を開発します

  4. 4

    Webデザイン/開発/プログラミングにC ++を使用できますか?

  5. 5

    VSアイコンパックをVSプラグイン、VisualStudioプラグイン開発に追加します

  6. 6

    Eclipseプラグイン開発でSWTUIからクラスを検索する

  7. 7

    Goを使用してVPPプラグインを実装できますか?

  8. 8

    KotlinでFlutterプラグインを開発すると、Javaで記述されたプラグインと何か違いがありますか?

  9. 9

    アプリを公開する前に開発プラグインを削除する必要がありますか?

  10. 10

    class_existstはfalseWPプラグイン開発を返します

  11. 11

    グーグルプレイサービスライブラリ-アンドロイド開発:ライブラリサイズを縮小しますか?

  12. 12

    グーグルプレイサービスライブラリ-アンドロイド開発:ライブラリサイズを縮小しますか?

  13. 13

    プラグイン開発、ユーザーデータをどこに保存しますか?

  14. 14

    jQueryプラグイン開発は関数である設定を実行します

  15. 15

    Unityでゲームを開始すると、「OculusXRプラグインを開始できません」エラーが発生します

  16. 16

    Eclipse プラグイン開発: アイテムのパスを使用してワーキング セットにアイテムを追加しますか?

  17. 17

    Group Mentionプラグインの開発を開始するにはどうすればよいですか?

  18. 18

    Hyperledger Composerを使用して開発中/すでに開発中のエンタープライズソリューションはありますか?

  19. 19

    Eclipseプラグイン開発のプロジェクトでライブラリを追加または削除します

  20. 20

    ALSAでplughwプラグインを使用するとレイテンシーが発生しますか?

  21. 21

    Clionのプラグイン開発にIntelliJ 2019.3.1を使用します。プラグインプロジェクトにC ++言語サポートを追加するにはどうすればよいですか?

  22. 22

    Eclipseプラグイン開発: `plugins`フォルダー内で爆発するバンドルを作成します

  23. 23

    wordpress:プラグイン管理エリアでajaxを使用するとエラーが発生しますか?

  24. 24

    Python 3.4でローグライクゲームを開発し、レベルをランダムに生成するためのヘルプを探します

  25. 25

    画鋲を使用してMSPixelsenseの完全オフライングローバルマップを開発するためのオプションは何ですか

  26. 26

    Rプログラミング言語を使用してAndroid開発を行うことは可能ですか?

  27. 27

    プラグイン開発用にIntellijIDEAをセットアップします-シンボルPathInfoが見つかりません

  28. 28

    エンタープライズ開発者ライセンスでOSX10.9のxcodeを介してMapkitを使用できますか?

  29. 29

    VIMでJavaを開発するための良いプラグインは何ですか?

ホットタグ

アーカイブ