建立一个新的Java开发工作室 [英] Setting up a new Java development shop

查看:238
本文介绍了建立一个新的Java开发工作室的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在建立一个Java开发商店,目前仅供我自己作为唯一的开发人员,但随着业务的增长需要雇用其他人。显然,我希望将其设置正确,以便随着更多人进来,他们可以立即发挥作用。请帮忙建议我想做的事情和工具。



这是我认为我需要的:




  • 分布式源代码/版本控制(Subversion?)

  • 错误跟踪(Trac会这样做吗?)

  • 文档(内部和面向客户)

  • 团队沟通

  • 经常自动构建

  • 可能需要制作确保自动测试在签到过程中通过了吗?


解决方案

我喜欢哈德森持续集成构建,我喜欢JIRA进行问题跟踪。 Eclipse有两个插件。



Hudson可以观察软件存储库并重建那些使用更改资源的项目。



如果你需要比javadoc更多的文档(这是很多),那么考虑一下Wiki。易于使用,有一点结构,你可以按摩它成PDF。



源代码控制是一个bugger。太多可供选择。对于一个小型开发团队来说,无论是subversion还是CVS(这都是旧的但具有最高的IDE支持),当你长大并了解你的需求时,那么就转移到更好的。大多数都有svn或cvs的迁移工具。从例如移动更难给Mercurial一个git,你肯定希望有一个实现多个。记住要对源代码控制存储库进行良好的备份 - 这是您的业务。频繁的rsyncs,通常是磁带。






编辑:你也想要不错的硬件。对于Continuous Integration服务器,您可以负担得起的最快的构建机器。对于您自己而言,您可以为主显示器提供最大的显示器(不是尺寸,分辨率)以及您可以承受的额外显示器(包括适配器到您的计算机)。我发现Mac使用的像素比Windows好,所以这也可能是一个点。



我的主显示器旋转了90度。这允许我一次看到许多行而不是几行。 (由于某种原因,传统说编辑区域应该宽而短,这可能在单词中有效,但在代码中不能超过72个字符的代码)



注意在Eclipse上:使用源存储库为每个项目创建一个工作区!使用Java编辑器保存功能可以在每次保存时重新格式化代码 - 这使得它更具可读性,并且在源库中更好,因为更改标记在正确的版本中。






编辑:CI服务器需要比开发机器更好的原因是因为每次将内容检查到源存储库时它都会运行所有测试。过了一会儿,这需要时间。



就我个人而言,我发现测试适用于库例程。它们指明哪些有效,哪些无效。为整个应用程序编写好的测试更难,但是您可能希望从头开始研究它,因为它允许您确保一切都适用于每次签入。如果您不熟悉这个概念,请写一条评论。 / p>

无论您选择哪个部件,如果他们能够一起工作,您会很高兴。例如,Hudson知道如何与JIRA交谈。 JIRA知道如何看待CVS。


I'm setting up a Java development shop, currently just for myself as the only developer, but with hopes of needing to hire others as the business grows. Obviously I'm hoping to set it up right so that as more people come in, they can be productive right away. Please help suggest things I want to do, and tools to do them.

Here's what I think I need:

  • Distributed source code/revision control (Subversion?)
  • Bug tracking (does Trac do this?)
  • documentation (both internal and customer facing)
  • team communication
  • frequent automated building
  • maybe something to make sure automatic tests pass as part of the check-in process?

解决方案

I like Hudson for Continuous Integration builds, and I like JIRA for issue tracking. Eclipse has plugins for both.

Hudson can watch software repositories and rebuild those projects that use the changed resources.

If you need more documentation than javadoc can cover (which is quite a lot) then consider a Wiki. Easy to use, and with a bit of structure you can massage it into a PDF.

Source control is a bugger. Too many to choose from. For a small development team start with either subversion or CVS (which is old but has supreme IDE support) and when you outgrow that and know your needs, then migrate to a better one. Most have migration tools from svn or cvs. It is harder to move from e.g. git to Mercurial, and you defintively want one with more than one implementation. Remember to have good backups of the source control repository - it IS your business. Frequent rsyncs, often tapes.


EDIT: You also want decent hardware. For the Continuous Integration server, the fastest build machine you can afford. For yourself the largest monitor you can afford (not in size, in resolution) for your primary monitor and as many extra monitors as you can afford to have (including adapters to your computer). I have found that Mac's use the pixels better than Windows, so that might also be a point.

My primary monitor is pivoted 90 degrees. This allows me to see many lines at once instead of a few long lines. (For some reason tradition says that editing areas should be wide and short, which may work in word but not in code where lines should not be wider than 72 characters)

Note on Eclipse: Use the source repository to have a single workspace per project! Use the Java Editor Save Function to reformat your code everytime you save - this makes it more readable up front, and goes better with the source repository as changes are marked in the correct version.


Edit: The reason for the CI server needing to be better than your development machine is because it will run all your tests every time you check stuff into your source repository. After a while, that WILL take time.

Personally I have found tests working well for library routines. They specify what works and what doesn't. It is harder to write good tests for whole applications, but you may want to look into that from the beginning, as it allows you to ensure that everything works for every check in. Write a comment if you are not familiar with the concept.

Whatever you choose for the individual parts, you will be glad if they can work together. Hudson knows how to talk to JIRA for instance. JIRA knows how to look in CVS.

这篇关于建立一个新的Java开发工作室的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆