Tag: 模块性

OSGi可以帮助降低复杂性吗?

我看到很多关于OSGi的演讲,我认为这对于实施更好的模块化听起来很有希望。 显然,“热部署”和“并行运行不同版本的x”也是市长的卖点。 我想知道OSGi承诺解决的问题是否是一个问题……? 它让我想起OO的早期时代,类似的声称是女仆: 当OO是新的时,最重要的论点是可重用性。 人们普遍声称,当使用面向对象时,人们只需要“一次写入”,然后就可以“随处使用”。 在实践中,我只看到这适用于一些非常低级的例子。 我认为这样做的原因是编写可重用的代码很难。 从技术上讲,但从界面设计的角度来看。 您必须预测未来客户将如何使用您的课程并预先做出正确的选择。 根据定义,这很困难,因此潜在的可重用性益处通常无法实现。 有了OSGi ,我怀疑在这里我们可能会再次承诺,我们没有真正拥有的问题的潜在解决方案。 或者如果我们拥有它们,我们没有足够大的数量和严重程度来certificate购买OSGi的帮助。 “Hotdeployment”作为模块子集的例子绝对是一个好主意,但它经常有效吗? 多久没有,因为事实certificate你对特定问题的模块化是错误的? 如何在多个模块之间共享模型实体? 这些模块都必须同时更换吗? 或者,您是否将对象展平为基元并仅使用模块间通信中的对象,以便能够保持接口契约? 应用OSGi时最困难的问题是,我认为, 使模块化“正确” 。 类似于在OO中使用OSGi获取类的接口,问题保持不变,这次是更大规模,包甚至服务级别。 您可能已经猜到了,我目前正在尝试评估OSGi以用于项目。 我们遇到的主要问题是随着代码库的增长而增加复杂性,并且我希望在具有越来越多定义的交互的较小模块中打破系统。 鉴于没有任何框架可以帮助决定模块化,OSGi是否为您付出了代价? 在团队合作时,它是否让您的生活更轻松? 它有助于减少错误数量吗? 你有没有成功地“热部署”主要组件? OSGi是否有助于降低复杂性? OSGi是否遵守承诺? 它符合你的期望吗? 谢谢!