【发布时间】:2009-10-01 18:25:41
【问题描述】:
我正在开发一个不断增长的 java 项目,我可能会与其他人合作改进一些功能。
我想使用一些工具来提高我的工作质量,请记住:
- 我没有太多时间花在这个项目上
- 这是一个小项目,但对我来说真的很重要
- 我不想为它购买软件/硬件
- 我已经在用SVN了
你对 maven 和 junit 有什么看法?值得为他们花时间吗? 你还知道其他什么好工具吗?
【问题讨论】:
标签: java maven-2 junit project-planning
我正在开发一个不断增长的 java 项目,我可能会与其他人合作改进一些功能。
我想使用一些工具来提高我的工作质量,请记住:
你对 maven 和 junit 有什么看法?值得为他们花时间吗? 你还知道其他什么好工具吗?
【问题讨论】:
标签: java maven-2 junit project-planning
Maven 和 JUnit 有助于培养良好的习惯(单元测试、统一的结构),再加上良好的 SCM 习惯,我认为这些是协作开发中最重要的事情。
【讨论】:
由于您没有使用 JUnit,我猜您还没有任何单元测试。如果其他人开始处理您的代码,这对我来说似乎是您要采取的最重要的一步。如果没有单元测试,有人可以在不知情的情况下轻松破坏功能。
创建一套涵盖至少 80% 代码的单元测试。您可以使用 Cobertura 来衡量代码覆盖率。这可能看起来像很多工作(确实如此),但将来会为您节省更多时间。
Maven 是目前构建和部署的事实标准,但它也有其缺点。如果你有一个有据可查的构建过程(使用 Ant 或自定义脚本),我建议引入 Maven 不如添加单元测试重要。
【讨论】:
JUnit 非常适合帮助验证您在任何项目中的代码。
Maven 有一个难以克服的学习曲线。如果您有一个模块和一组相对简单的构建步骤,您可能会发现使用 Ant 更简单。
另一方面,使用 Maven 构建,您可以简单地在代码中添加额外的报告来检查代码中的各种参数,并且迁移到 Maven 比从一开始就遵守它的约定要困难得多。
可以帮助检查您的代码的 Maven 插件示例:
如果您对代码质量插件感兴趣,也可以考虑Sonar,它会封装这些插件并为您提供一些时髦的报告。
如果您对最佳实践感兴趣,还可以考虑使用持续集成服务器,Hudson 是免费的,并且可以与 Maven 很好地集成。
【讨论】:
我们在一个相当大的项目中使用 Maven 和 JUnit,发现它非常有用。
对于项目规划,我强烈推荐FogBugz。这是迄今为止我见过的最好的问题跟踪系统,对项目管理也有很好的支持,最多可免费供 2 人团队使用。
【讨论】:
如果您使用 Eclipse 和 SVN,我建议您看看 Mylyn。它的基本概念非常简单,但在团队合作时很有帮助。 在我看来,Maven 对于它的真正好处来说太烦人了。也许 ant 足以完成您的部署任务。
【讨论】:
我在一个项目中使用过 maven,但错过了它。尽管在设置和配置方面有相当大的前期投资。当我使用它时,XML 文档已经过时了(也许这已经改进了)。一旦你通过了这个初始设置,虽然它是一个很好的节省时间的方法。
至于 JUnit,它很棒。用它。
这两种工具都应被视为一项投资。起初,它可能看起来像很多不相关的东西,但从长远来看,该项目会随着更少的问题而更加可预测地发展。
【讨论】: