我是一个学术联盟的唯一开发者,该联盟的总部设在东北的一所大学。我所有的开发工作都涉及内部工具,主要是 Java,所以没有向公众发布。现在,我觉得我的开发工作流程非常“业余”,与您在经验丰富的软件开发公司看到的完全不同。我倾向于说这并不重要,因为无论如何我是唯一的开发人员,但如果没有其他原因,只是为了让我的工作更轻松一些,做一些改变并没有什么坏处我的简历上有更多技术。现在我的工作流程是这样的:
我的大部分开发工作都是在笔记本电脑上的 Eclipse 中完成的。一切都保存在我的笔记本电脑本地,我不使用 VCS,也没有真正备份我的代码(除了偶尔通过电子邮件发送给自己,以便我可以在另一台计算机上查看它 - 是的,我告诉过你我的开发环境需要工作)。
当我完成一个项目并想要部署它或者我只是想测试它时,我使用 Eclipse 中的内置 Jar 工具来制作我的项目的可执行 .jar。如果我使用外部 .jar 库,我会使用 Fat-Jar 插件将这些 .jar 包含在我的可执行 .jar 中。
创建 .jar 后,我通过 SFTP 手动将其上传到服务器并使用 .jar 之类的内容对其进行测试
java -jar MyProject.jar
。
哦,是的,我有没有提到我不进行单元测试?
我想首先解决的最明显的问题是我缺乏源代码控制。我喜欢 git,因为它是分布式的,但它似乎不能很好地与 Eclipse 集成,而且我听说它在我的主要开发操作系统 Windows 上不能很好地工作。所以,我倾向于SVN,我确实有一些经验。我确实有自己的个人服务器,我想我会用它来控制我的源代码,因为我宁愿自己做管理员也不愿与大学官僚作风。我之前在设置 SVN 时遇到了一些麻烦,但我会再试一次。也许我还会安装诸如 Trac 或 Redmine 之类的东西来进行错误跟踪、待办事项列表等?
构建和部署呢?必须有比使用 Fat-Jar 并手动将我的 jar 上传到服务器更好的方法。我听说过 Ant 和 Maven 之类的工具——这些工具是否适用于我想做的事情?我怎样才能开始使用这些?
我想我最终也想将单元测试与 JUnit 集成。尽管它可能应该是,但这不是我现在主要关心的问题,因为到目前为止我的应用程序并不是非常复杂。我现在真的很想简化和简化我的工作流程,然后我将轻松进行单元测试。
对不起,很长的问题。我想我的问题归结为,对于一个单独的开发人员来说,我可以/应该使用哪些工具和方法,不仅可以让我的工作更轻松,而且还可以让自己接触到一些技术,这些技术在专门的开发中是必需的知识屋?
编辑:感谢到目前为止的精彩回答。我并不是说我想让我的工作流程“企业化”只是为了这样做,而是为了让我的工作更简单,并掌握一些通常在企业开发环境中使用的技术。这就是我的意思。