你如何组织你的编程工作

dol*_*ole 14 git

我是该领域的新手,但在不久的将来,我必须为朋友开发一个应用程序(我已经完成了应用程序的一些工作,而且朋友很高兴).

我认为我需要3个地方来存储我的工作,但我不确定这是否是最佳方法.我需要你关于这个主题的建议,意见,链接,书籍和博客.

我计划:

  1. 我开发应用程序的地方
  2. 我保留应用程序备份的地方
  3. 应用程序准备就绪的地方

我将在开发阶段使用git,但对于后者我不知道使用什么工具,或者哪些是好的做法.你能给我一个建议吗?

PS:此刻我正在使用cakephp构建一些webapps,但我也经常使用C++.

Rud*_*udi 9

1:我开发应用程序的地方

这将是你当地的git结账.

2:我保留申请备份的地方

你的意思是来源或任何编译结果?对于你可以的来源

  1. 使用http://github.comhttp://gitorious.org等公共服务作为备份系统.如果您不介意使用不受您控制的服务,我建议您这样做.
  2. 设置一个自己的git服务器(安装了sshd和git的linux盒就足够了).您需要注意,在设置远程存储库时存在一些缺陷(存储库应该是裸的,并且当有多个unix用户应该能够进入存储库时,您需要设置权限)

无论哪种方式,您都git push可以进入远程存储库以备份工作.

3:应用程序准备就绪的地方

编译结果的存储没有明确的标准.典型的结果以定义的编号方案存储在文件共享/ Web服务器/等等.

我将在开发阶段使用git,但对于后者我不知道使用什么工具,或者哪些是好的做法.你能给我一个建议吗?

正如@Navi所说,自动构建工具是一大优点.最佳实践是使用单命令构建,这意味着您需要在结帐后运行完全一个命令来构建完整的软件.

您还应该考虑一个连续集成系统,这是一个监视中央源代码存储库以进行更改的软件,并在检测到新内容时在洁净室环境中自动构建软件.如果有许多(> 1)人在使用软件产品,CI系统尤其方便,因为他们可以非常快速地显示损坏的构建.


Nav*_*avi 8

通常的做法是开发,测试,集成测试和生产环境.集成测试和生产将或多或少相同.

我建议你也使用某种构建工具.从您的问题中不清楚您使用的是哪种平台/技术,但可能有一种适合您的平台/技术.

如果您使用的是Maven,那么惯例就是区分稳定版本和快照实验版本.


foo*_*foo 5

最好的建议已经给出了:

  • 使用源代码管理/修订控制.和备份.真的,真的这样做.
  • 有开发,测试,集成/分期和生产的单独实例.如果您缺少硬件,虚拟化 - 有一些很好的商业解决方案,但即使是Virtualbox(免费)也会经常完成这项工作.

另外,我也推荐

  • 在里程碑进行稳定实例的备份.当它工作时,保留一份副本.
  • 使用像JIRA,Bugzilla或类似的问题跟踪器.至少,有一个带有ToDo列表和一个好grep的文本文件.
  • 在适用的情况下,在代码中放置标记,如@ TODO和@FIXME; 我所知道的大多数IDE都会自动找到这些IDE,并为您提供这些IDE的列表.这可能会或可能不会与跟踪器集成.

我发现跟踪剩下的事情和重要性是很重要的,区分错误,改进,必要的任务和好的项目等等.很容易迷失在开发中并忘记了一些东西 - 编程需要你深入研究代码的内部工作,并牢记整体结构.你需要一些东西来保持你的思想免受所有这些"我必须这样做"的事情.粘黄色的纸不能很好地工作,书写垫也不行,因为纸张超过50个,纸张很难跟踪.

有软件.用它.