1

我正在开发一个不断增长的 java 项目,我可能会与其他人合作改进一些功能。

我想使用一些工具来提高我的工作质量,请记住:

  • 我没有太多时间花在这个项目上
  • 这是一个小项目,但对我来说真的很重要
  • 我不想为它购买软件/硬件
  • 我已经在使用 SVN

你觉得maven和junit怎么样?值得为他们花时间吗?你知道还有什么好工具吗?

4

6 回答 6

8

Maven 和 JUnit 有利于实施良好的习惯(单元测试、统一结构),再加上良好的 SCM 习惯,我想说这些是协作开发中最重要的事情之一。

于 2009-10-01T18:29:17.930 回答
5

由于您没有使用 JUnit,我的猜测是您还没有任何单元测试。如果其他人开始处理您的代码,这对我来说似乎是您要采取的最重要的一步。如果没有单元测试,有人可以在不知情的情况下轻松破坏功能。

创建一套覆盖至少 80% 代码的单元测试。您可以使用 Cobertura 来衡量代码覆盖率。这可能看起来像很多工作(确实如此),但将来会为您节省更多时间。

Maven 是目前构建和部署的事实标准,但它也有其缺点。如果您有一个记录良好的构建过程(使用 Ant 或自定义脚本),我建议引入 Maven 不如添加单元测试重要。

于 2009-10-01T18:50:22.957 回答
4

JUnit 非常适合帮助验证您在任何项目中的代码。

Maven 有一个难以克服的学习曲线。如果您有一个模块和一组相对简单的构建步骤,您可能会发现使用 Ant 更简单。

另一方面,使用 Maven 构建,您可以简单地在代码中添加额外的报告来检查代码中的各种参数,并且迁移到 Maven 比从一开始就遵守它的约定要困难得多。

可以帮助检查您的代码的 Maven 插件示例:

如果您对代码质量插件感兴趣,还可以考虑Sonar,它将这些插件包装起来并为您提供一些时髦的报告。

如果您对最佳实践感兴趣,还可以考虑一个持续集成服务器,Hudson是免费的,并且与 Maven 集成得很好。

于 2009-10-01T18:49:50.633 回答
1

我们在一个相当大的项目中使用 Maven 和 JUnit,发现它非常有用。

对于项目规划,我强烈推荐FogBugz。这是迄今为止我见过的最好的问题跟踪系统,它对项目管理也有很好的支持,最多可免费用于 2 人的团队。

于 2009-10-01T18:32:02.703 回答
0

如果您使用 Eclipse 和 SVN,我建议您看看 Mylyn。它的基本概念非常简单,但在团队合作时很有帮助。在我看来,Maven 对于它的真正好处来说太烦人了。也许 ant 足以完成您的部署任务。

于 2009-10-01T18:50:55.303 回答
0

我在一个项目上使用过 maven 并错过了它。尽管在设置和配置方面有相当大的前期投资。当我使用它时,XML 文档已经过时了(也许这已经改进了)。一旦你通过了这个初始设置,虽然它是一个很好的节省时间的方法。

至于 JUnit,它很棒。用它。

这两种工具都应该被视为一种投资。起初,它可能看起来像很多不相关的东西,但从长远来看,这个项目会随着更少的问题而更加可预测地发展。

于 2009-10-02T03:22:46.970 回答