1

自今年 2 月以来,我一直在开发一个使用 SmartGWT 组件构建的应用程序。一般来说,我发现这些组件非常好用,而且它们是开源的并且可以免费使用的事实真是太棒了。但是,我似乎无法摆脱这不是一种持久的开发方式的感觉,但我无法解释为什么。也许是因为我知道开发它的团队现在随时可能决定停止,这会让我和我的团队陷入困境,但我相信肯定还有更多。

我一直在想办法向自己解释这种感觉,但无济于事。因此,亲爱的社区,我求助于您,询问您是否可以提出一个充分的理由,为什么承诺使用诸如 SmartGWT 之类的组件库来构建您的应用程序(这应该会存在很多年)是一个坏主意? 有什么理由我应该自己开发组件吗?还是在决定不重新发明轮子而只选择现成的东西时,我是否做出了正确的选择?

4

3 回答 3

4

由于它是开源的,因此请获取源代码的副本并验证您是否可以从源代码构建组件。这将平息您对退出项目所依赖的团队的任何担忧。

唯一的缺点是,如果他们确实退出了项目,你将不得不花一些时间和人力来学习他们的代码库,以便在这个团队很久之后你可能想要应用的任何错误修复。

您可能会感觉到对产品失去控制。某些类型的控制很容易放弃。例如,我并不关心控制我的 Web 服务器如何工作的细节,只要它符合 HTTP 标准即可。其他项目对于 100% 控制非常重要。如果某个组件是您开发工作的核心,那么值得考虑投资以获得对该组件的控制权。

请注意,您不必重新发明轮子,您可以随时加入开源工作(如果他们愿意接受您)和/或支付其他人来维护开源代码(如果您缺乏内部技能开发这些类型的组件)。

于 2010-05-12T18:18:52.830 回答
3

SmartGWT 是 GNU LGPL,因此如果他们停止使用它,那么如果您确实创建了自己的库(但已经节省了很多工作),那么您将处于确切的情况。

通常,不重新发明轮子是取得成功的唯一途径。自己构建东西的唯一原因是如果你不能使用现有的东西。

为了解决您认为库不是一个稳定的构建基础的感觉,请考虑为库本身做出贡献。这就是人们使用开源软件处理这种失范感的方式。

于 2010-05-12T18:17:29.763 回答
-1

与使用封闭源代码库并且该公司停止更新它相比,您的处境要好得多!老实说,根据这个推理,您不应该使用任何第三方软件。你写了你的网络服务器吗?你的jvm?你的操作系统?

于 2010-05-12T18:52:08.200 回答