2009-04-28 51 views
1

上个学期(2008年8月 - 12月)我和一些班级同学用C++编写了一个应用程序。没什么特别的,它是Sqlite3的ORM。我们实现了一些像反射这样的东西,使其工作并从丑陋的东西中释放最终用户。就我个人而言,我认为我们做得很好,而且我们的ORM实际上可能对某人有用(即使它专门为Sqlite3编写,它适用于其他数据库)。改进并发布应用程序。需要一些建议

因此,我得出的结论是它应该作为开源项目在某处(sourceforge最有可能)发布。但是,因为这是一个术语项目,所以在做这件事之前需要加上一些东西。也就是说,它有一些应该修复的内存泄漏,并且代码的某些部分可能会被重构,以便将来每个人的生活更轻松。

我想知道,在一些问题上有经验的C++程序员的意见:

  • 是否值得重写某些部分 应用新techonologies(例如, 提升)。
  • 我们的ORM应该适应最新的 C++标准吗?这样做对 有任何好处吗?
  • 我们如何知道我们的代码是何时准备发布的? ?
  • 这个ORM 将被遗忘到互联网的 的雾中有什么机会? (即是值得 出版它超越个人的骄傲 作为一个程序员?)

现在,我不能老是想到更多的问题,但我想类似的经历读。

编辑:我应该可能翻译我的代码+评论英语的权利? (自问)

在此先感谢。

回答

1

我想我对你的特定问题“更有经验”。在Java或ASP之前的网页设计初期,我共同开发了一个开源Web应用程序语言&,很像ColdFusion。如果你有兴趣,你仍然可以在http://www.steelblue.com/看到它。它仍然在我开发时使用的公司使用,但我不认为其他任何地方。

我发现的是,除非你已经很好地连接起来,并且人们正在看你在做什么,让人们使用你的开源代码就像销售somone你的闭源程序一样困难。你真的需要为你的项目提倡,并且它应该有一些独特的销售主张,以区分它与compitition。

所以,这是不请自来的建议。以下是对您所提问题的一些具体答案......当然,纯粹是我的意见。

我不会重写任何代码,除非您有一个想要插入的功能。该功能可能与特定平台或编译器兼容。这可能是支持一个新的数据库数据类型或更聪明的迹象或任何。如果您打算在应用程序中加入更多认真的工作,请考虑一下您在下一次迭代中可以实际完成的路线图,以及在您的周期结束时,应用程序将“最好”。

只要可用于特定目的,任何目的,即可释放代码。两个原因。首先,现在可能有人为此目的而想要它。如果它不可用,他们会使用别的东西。另外,如果它是开源的,他们可能会回馈项目。其次,您越早发现有多少人想要使用该代码,效果越好。要么它会比你期望的更受欢迎,你可以为继续发展而感到兴奋....或者你会发现没有人甚至访问你的网页看看你有什么。无论哪种情况,最好早日知道人们真正想要从项目中获得什么,以便在规划新版本时考虑到这一点。

关于“忘记进入迷雾”。我认为大部分项目都是。我不想成为一个沮丧者,但是看维基百科,有5个C++ ORM工具足够流行,可以被提及,它们都是开源的。正如我上面所说的,除非您可以将您的想法出售给人们,否则他们将会采用另一种经过验证的开源解决方案。为了让别人选择你,他们需要做三件事:1.他们需要你拥有的其他人不需要的功能。 2.他们找到你的项目网站,它证明了你的代码的优越性。他们相信你的代码足以让它一炮打响。

另一方面,如果你是在这个长期的,并希望继续发展thigh随着时间的推移变得更容易。最终该项目将涵盖所有基础知识,并且您可以开始开发那些不在其他解决方案中的新特征。而且,你积极开发的时间越长,项目看起来就越可信。最后,你会得到更多的经验。从现在开始2年后,您将能够更好地表达自己的努力将对改善项目产生最大影响。

一个最后的想法:如果你喜欢它,从中学习,并且不妨碍你将食物放在桌子上,那就很好地利用你的时间。

祝你好运!
-Al

1

关于开源部分:

如果你真的想成为一个开源项目,你真的应该发布,无论它的当前状态 - 完全的工作和调试 - 或半工作和充满内存泄漏。 只是,如果状态不好,请确保记录它,并给它一个合适的版本号(少于一个?)。那么其他人可以查看你的代码,建议改进,加入你的队伍,等...

1

我 - 而随机 - 对此事的想法(在顺序,我认为是最重要的):

  • 我们如何知道我们的代码何时可以发布?

Liran Orevi said:如果你打算早点开源发布。把它合理地记录下来,花点时间为未来的改进提供计划或希望的路线图(这些是人们帮助你的邀请,所以请注意哪些人没有人在为他们工作)。

  • 是否值得重写某些部件以应用新技术(例如boost)。
  • 我们的ORM应该适应最新的C++标准吗?这样做有什么好处吗?

SQLite依赖于相当有限的基础。也许你不希望你的工具需要更重的环境。如果代码目前不是纠缠不清的混乱,你可能想要避免提升和最新的装饰。一旦你有一个稳定版本(1.0至少)可以在开始有关可用于版本2

  • 什么是这个ORM会被遗忘到互联网的薄雾的机会进行改进的想法? (即是值得出版它超越个人的骄傲,作为一个程序员?)

大部分东西在大的/ dev最终在天空/空的,只有一个办法,找出...如果它任何地方都可以,你赢了。如果不是这是一项适度的投资,也许你在学习过程中学到了一些东西。