22

我知道这是一个普遍的问题,但我想听听其他人对我们案件的看法:

我在一家小公司工作。我们的主要开发工具是 PowerBuilder,这是一个非常有限的 IDE,社区正在缩小。我们创建了一些工具,我们在内部使用这些工具来解决某些需求。它们既没有经过适当的设计,也没有经过适当的测试,也没有达到生产质量。OTOH,它们确实为我们节省了很多时间,也可能帮助其他人。我确信其他公司也有相同类型的工具,并且想知道与他人共享它们的做法有多普遍。照我看来 -

优点:

  • 善业
  • 更多关注我们的网站
  • 也许从其他人那里得到修复和改进

缺点:

  • 如果不投资更多的开发,这些工具可能会让我们看起来很糟糕
  • 代码的发布需要一些努力
  • 有些工具可能过于专业,无法满足我们的需求
  • 考虑到社区的萎缩,整个努力可能会被忽视

您或您的公司是否曾经贡献过此类工具,或使用过其他人开发的此类工具?值得付出努力吗?

编辑:

对于那些想知道的人,我想到的工具包括 -

  • 通过列出已签出给当前用户或其他人的对象、备份已签出的对象和重建 PBG,使使用 SourceSafe 变得更容易的工具。
  • 一种在运行时识别 PB 控件的工具,例如 Spy++(需要目标应用程序中的一些基础设施)。
  • SQLite 的 PBNI 包装器(进程内访问,无 ODBC)。
  • SQL 客户端、文本测量工具等。
4

7 回答 7

12

“开源”最初意味着您发布了一个工具,并且您提供了源代码。由于某些项目的预期,并且在某些情况下通过许可证要求重新提交对源代码的更改以供共享,“开源”现在经常将协作开发的概念添加到组合中。我做了(或试图做)后者;请允许我分享。

与可用源代码相关的工作量与协作开发开源代码之间存在巨大差异。

领导力:你需要告诉人们变革的对象、内容、地点、时间、原因和方式。很有可能,你需要用外交手段戳戳你的志愿者。您可能需要定义项目的愿景和优先级目标,然后在有人试图以另一种方式采取行动时执行它们。而且,除非您只希望人们通过偶然发现您的工具,否则您将不得不做广告,在吸引注意力和花哨之间划出一条非常细的线(在互联网上甚至更细)。如果项目要实现精英管理的概念,正如许多开源支持者所说的那样,那么就必须有人来评判人们的成就并适当地分配权利和责任。

工作流程:我还没有通过任何想象力进行详尽的搜索,但是我还没有看到一个协作开发平台可以完成我需要的所有事情。开源协作开发的部分意义在于代码审查所涉及的数量将涵盖代码提交质量方面的任何潜在问题;我还没有看到一个集成到协作开发平台中的免费工具来帮助干净地管理它(例如计算代码审查;在x次审查后自动提升)。我们不得不处理这个问题,将手动方法破解到现有工具中。可能在某些时候您必须定义一个版本并创建一个构建。然后是诸如文档之类的繁重任务。(曾经尝试免费发布新版本的东西发行说明?狂怒!!咧嘴笑

PB 特有的问题:PowerBuilder 是一个商业工具,虽然有便宜的版本,但没有免费的版本。添加到 PB11 中的 DRM 可能减少或消除了开发人员可能会在他们的办公室 PB 家中复制的盗版行为,而 PB11 及以后的版本具有双重许可政策,允许开发人员合法地将副本带回家(在获得许可和合作的情况下)的原始许可证所有者创建第二个许可证),我没有看到很多这样做。(没有科学研究,这就是我所看到的。)这减少了很多潜在的合作,甚至来自爱好者。PowerBuilder 版本之间的代码兼容性问题,以及很少有人拥有每个版本的事实,将再次限制您的潜在贡献者列表。

不要误会我的意思。我希望在 PowerBuilder 社区中看到更多的协作开发开源。我很想知道如何自己解决这些问题,并且我正在努力研究是否可以制作一个新模型。(恕我直言,我第一次追随流行模式的努力失败了。)

是否有理由对将 ZIP 文件发送到网络并忘记它感到难过?我不知道。与 SourceForge 项目相比,在 4 年前的 ZIP 文件中是否有更多的自豪或尴尬,后者的最后一次贡献是 3 1/2 年前的帖子“每个人都在哪里?” Sybase CodeXchange协作开发平台转移到源可用平台是有原因的:几乎没有人使用协作开发功能。如果您获取可用的开源代码,那么您将拥有很多公司。

顺便说一句,CodeXchange 可能会解决您对 PowerBuilder 社区可见性的担忧,尽管您会失去网站流量。PowerBuilder Web Ring是另一种效果明显较差的方法,可以帮助您保持网站流量的可见性,但它需要在您网站的目标页面上有一个导航栏。CodeXchange 也可能是一种解决您对代码质量和您必须分享的内容的狭隘性的担忧的方法。咧嘴笑

你该怎么办?不要低估协作开发共享所付出的努力,但不要让它阻止您获取可用资源共享。

祝你好运,

特里。

于 2009-06-17T03:07:50.077 回答
3

你可能会忽略你的一个缺点:任何对这种工具有足够兴趣来评估你的产品的人都不太可能在你的反馈表上写X 公司;相反,如果他们发现您发布的内容存在缺陷,您可能会收到有用的错误报告甚至补丁。

于 2009-06-17T11:56:43.887 回答
2

如果你能让你的公司为社区做出贡献而买单,那么我会去做。付出一点努力总是值得的,这绝对是将您的一些工具公之于众并得到社区改进的好方法。

就缺点而言,我不会太担心批评,它只能帮助你们改进下一个交付的产品,人们会尊重你从错误中吸取教训,没有人是完美的。

即使您的努力没有被您不断缩小的社区所注意到,未来的员工和客户也会看到您在公司之外做出贡献,并可能有助于提高您在他们中的声誉。

我认为这方面的优点远远大于缺点。

于 2009-06-16T18:26:02.697 回答
1

简而言之:去吧。我怀疑没有什么可失去的,但可以得到很多。

优点:

**好人缘*

拥有从来都不是一件坏事。

**更多关注我们的网站*

如果您的代码真的很糟糕,可能是一个骗局:)

**也许从其他人那里得到修复和改进*

这可能是你从开源代码中得到的最好的东西。一切都是为了互相分享和帮助,你可以使用别人的代码,他们可以使用你的代码,每个人都从交易中获益。

缺点:

**如果不投资更多的开发,这些工具可能会让我们看起来很糟糕*

我会搜索以删除狡猾/粗鲁/愚蠢的评论,整理格式等。

**代码的发布需要一些努力*

几乎不需要任何努力 - 在 Sourceforge 中设置一个帐户,在那里创建一个SVN 存储库并导入您的代码。然后创建一个二进制包(一个 zip 文件就可以了)并使用网站发布它。如果您停下来阅读所有文档,可能需要一个小时。

**有些工具可能过于专业,无法满足我们的需求*

您可以将全部设置为一个组 - 例如 PowerBuilder 工具,然后看到真正专业工具的人不会浪费时间来获取它们,他们仍然会拥有“更容易使用”的工具。

**考虑到社区的萎缩,整个努力可能会被忽视*

可能,但是真的没有理由不发布代码。如果您不这样做,那么当您/如果您更改开发工具时,每个人都可能会完全迷失它。

于 2009-06-16T18:45:25.923 回答
1

发布您的资源是获得反馈的好方法。如果你因为它看起来很糟糕,那没关系。只要愿意解决问题。如果您在改进方面需要帮助,我想不出比寻求帮助更好的方法了。

顺便说一句,许多开源项目可以归功于以前萎缩的社区的增长。

于 2009-06-16T20:32:57.393 回答
1

我认为您在确定利弊方面做得很好。利大于弊可能是真的。如果没有人喜欢这些实用程序并且对它们不做任何事情或对它们不做任何事情,那么您实际上并没有失去任何东西;糟糕的代码不应该吓到有经验的开发人员(大多数有经验的开发人员,尤其是 PB 开发人员,已经看到了他们在遗留代码中的份额)。如果一个人受益,那么你会得到因果报应,是吗?

如果您继续将您的工具提交给开源社区,请按照您在此处的操作,并事先承认这些工具没有经过完善。这可能会阻止一些人甚至查看它们,但是,如果它们至少是功能性的并且可以轻松修改,那么它们仍然代表任何潜在受益者的先机。作为一个 PB 用户,我很想知道更多关于可以让我们提高生产力的免费工具。

您是否研究过 Sybase CodeExchange?他们在那里有一些开源的 PB 东西,包括 PowerBuilder Foundation Class 框架。

于 2009-06-16T20:53:07.307 回答
0

我刚刚看到你对我的问题的回答——令人惊讶的是你已经开发了类似的东西。:-)

关于您的问题:我工作的公司在网站上有一个特定部分,其中发布了我们内部使用的工具和/或客户经常要求的简单解决方案(或代码片段)。这些产品的许可证也非常自由,我认为它有资格作为开源。

在您的特定情况下,我对您谈到的类似 Spy++ 的应用程序非常感兴趣,因为我自己正在寻找(和/或尝试开发)类似的东西。

我的目标是在目标应用程序中不需要任何基础设施的东西,但到目前为止,我很乐意使用任何有效的东西,即使它需要修改应用程序。我只是对 PowerBuilder API 还不够熟悉,无法在不修改目标应用程序的情况下判断这是否可行。

正如我所提到的,我已经为普通的 Windows 应用程序以及托管代码应用程序(需要与 VM 交互以查询对象树的状态)开发了类似的 Spy-like 应用程序,所以我希望我能够找到不需要任何目标基础架构的解决方案。

你有源代码吗?它不需要是可编译的,我很乐意看看你原则上是如何做到的,这样我就可以(希望)从中得到一些东西来解决我的特定问题。如果您还没有上传源代码,也许您可​​以提供一些我可以用来私下与您联系的电子邮件地址?我试图在你的个人资料上寻找一些东西,但到目前为止 - 没有运气。:-)

于 2009-06-18T10:52:34.643 回答