我想我对您的特定问题“更有经验”。在 Java 或 ASP 出现之前的 Web 设计早期,我共同开发了一个开源 Web 应用程序语言和模板系统,很像 ColdFusion。如果您有兴趣,您仍然可以在http://www.steelblue.com/上看到它。它仍然在我开发它时所在的公司使用,但我不认为其他任何地方。
我发现,除非你已经建立了良好的联系并且人们正在关注你在做什么,否则让人们使用你的开源代码就像出售你的封闭源程序一样难。你真的需要为你的项目辩护,它应该有某种独特的销售主张,将它与竞争对手区分开来。
所以,这是不请自来的建议。以下是对您提出的问题的一些具体答案……当然,这纯粹是我的看法。
除非您有要添加的功能,否则我不会重写任何代码。该功能可能与特定平台或编译器兼容。可能是为了支持新的 db 数据类型或更智能的索引等。如果您打算在应用程序中投入一些更严肃的工作,请考虑您可以在下一次迭代中实际完成的路线图,以及哪些选择将使应用程序在您的周期结束时成为“最好的”。
一旦代码可用于特定目的,任何目的,就立即发布代码。两个原因。首先,现在可能有人为此目的想要它。如果它不可用,他们将使用其他东西。此外,如果它是开源的,他们可能会回馈项目。其次,越早发现有多少人想要使用代码越好。要么它会比你预期的更受欢迎,你会为继续开发而兴奋……或者……你会发现甚至没有人访问你的网页来查看你所拥有的东西。无论哪种情况,最好尽早了解人们真正想要从您的项目中得到什么,这样您就可以在计划新版本时考虑到这一点。
关于“被遗忘的迷雾”。我认为大多数项目都是。我不想成为一个沮丧的人,但是看看 Wikipedia,有 5 个 C++ ORM 工具很受欢迎,足以被提及,它们都是开源的。正如我上面所说,除非您可以将您的想法出售给人们,否则他们将采用另一种经过验证的开源解决方案。要让某人选择你而不是他们,必须发生三件事: 1. 他们需要你拥有而其他人没有的功能。2. 他们找到你的项目网站,它展示了你的代码的优越性。3. 他们足够信任你的代码来试一试。
另一方面,如果您长期从事这项工作并希望继续开发,那么随着时间的推移,事情会变得更加容易。最终,该项目将涵盖所有基础知识,您可以开始开发其他解决方案中没有的新功能。此外,您在积极开发中的时间越长,项目看起来就越值得信赖。最后,您将获得更多的经验。从现在起 2 年后,您将更有能力说出您的努力在哪些方面将对改进项目产生最大影响。
最后的想法:如果你喜欢它,从中学习,并且它不会妨碍你把食物放在桌子上,那么这是对你时间的一种很好的利用。
祝你好运!
-铝