我是该领域的新手,但在不久的将来,我必须为朋友开发一个应用程序(我已经完成了应用程序的一些工作,而且朋友很高兴。)
我认为我需要3个地方来存储我的作品,但我不确定这是否是最佳方法。我需要你关于这个主题的建议,意见,链接,书籍和博客。
我计划:
我将在开发阶段使用git,但对于后者我不知道使用什么工具,或者哪些是好的做法。你能给我一个建议吗?
PS:此时我正在使用cakephp构建一些webapps,但我也不时使用C ++。
答案 0 :(得分:9)
1:我开发应用程序的地方
这将是你当地的git checkout。
2:我保留应用程序备份的地方
您的意思是来源或任何编译结果?对于你可以
的来源无论哪种方式,您git push
提交到远程存储库以备份您的工作。
3:准备好使用该应用程序的地方
编译结果的存储没有明确的标准。典型的结果与文件共享/ Web服务器上的定义编号方案一起存储。
我将在开发阶段使用git,但对于后者我不知道使用什么工具,或者哪些是好的做法。你能给我一个建议吗?
正如@Navi所说,自动构建工具是一大优点。最佳做法是使用单命令构建,这意味着您需要在结账后运行完全一个命令来构建完整的软件。
您还应该考虑continous integration系统,这是一个监控中央源代码存储库以进行更改的软件,并在检测到新内容时在洁净室环境中自动构建软件。如果有许多(> 1)人在使用软件产品,CI系统尤其方便,因为他们可以非常快速地显示损坏的构建。
答案 1 :(得分:8)
通常的做法是开发,测试,集成测试和生产环境。集成测试和生产将或多或少相同。
我建议你也使用某种构建工具。从您的问题中不清楚您使用的是哪种平台/技术,但可能有适合您的平台/技术。
如果您使用Maven,那么惯例就是区分稳定版本和快照实验版本。
答案 2 :(得分:5)
已经给出了最好的建议:
此外,我还建议
我发现跟踪剩下的事情和重要性是很重要的,区分错误,改进,必要的任务和好的项目等等。很容易迷失在开发中并忘记了一些东西 - 编程需要你深入研究代码的内部工作,并牢记整体结构。你需要一些东西来保持你的思想免受所有这些“我必须这样做”的事情。粘黄色的纸不能很好地工作,书写垫也不行,因为纸张超过50个,纸张很难跟踪。
有软件。使用它。
答案 3 :(得分:3)
这是高效率的最佳实践,但对于新手来说却是直截了当的。
设置本地开发环境。使用像TortoiseSVN这样的VCS,或者理想地使用与IDE完全集成的东西。我使用Aptana和Subclipse开发PHP应用程序。
设置夜间脚本以远程自动备份VCS。
获取远程开发环境设置(即dev.mysite.com)。用于实时服务器测试,客户端校对,UI反馈测试等。
如果需要,请设置登台服务器(stage.mysite.com)。用于实时集成测试,反馈测试等。如果你的项目足够小,你通常可以跳过这个阶段,只需使用dev环境进行集成测试。
设置生产环境(www.mysite.com)
不要过度设计您的工作流程......您的时间非常宝贵。现在,我想说从这开始,获得一些经验,然后你就会知道如何改进你的工作流程。
答案 4 :(得分:2)
我发现一组最小的代码是开发和发布。某种版本控制至关重要。我使用HEAD进行开发,并在发布时进行分支。备份您的存储库,或至少将其放在与用于开发和构建的磁盘不同的磁盘上。
我更喜欢有三组代码:开发,测试和发布。每个都应该有一个自动构建环境。这些是构建环境。对于开发,只需要一组。
您可以使用GIT进行开发和制作,但工作流程与使用CVS或颠覆时的工作流程不同。请查看the ProGIT online book以了解流程。
避免在环境中编写应用程序。任何环境依赖性都应来自环境的配置。很高兴在界面中显示构建和环境的一些指示。
答案 5 :(得分:1)
单个开发人员的快速而繁琐的工作流程,他们不使用任何版本控制sw:
如果您正在使用数据库,则每个程序版本都会有一个数据库版本。
答案 6 :(得分:1)
将代码存储在http://www.github.com上。如果您需要私有代码,您可以象征性的费用创建一个托管的私有存储库,这将满足您的前两个要求。
如果您希望存储代码并托管网站,那么有一家名为PHP Fog(http://www.phpfog.com/)的云服务公司将托管代码并准备好使用它(要求3)。
答案 7 :(得分:1)
答案 8 :(得分:1)
很多人都在谈论为您的工作设置问题/功能跟踪器。如果只是你正在做的工作,我建议你看看FreeMind。
心灵映射是跟踪您需要为项目执行的任务和事情的绝佳方式。写下你想要保留的任何想法,但你现在没有时间做。
编辑:我为我的开源项目中的扩展添加了一个示例: