说说使用plugin的问题:

  1. 你的plugin和用户代码使用的go 编译器版本必须一样
  2. 你的plugin和用户代码依赖同样的库的话,依赖库的版本必须完全一致
  3. plugin不支持windows
  4. 还有很多细节。。。

plugin更适合项目内部使用,你有全部的源码

比如我在学MIT6.824分布式系统这门课的时候,第一个lab是MapReduce,就用了plugin

MapReduce框架会通过plugin加载用户提供的map函数和reduce函数,每次共同依赖的代码一变动就需要重新编译。