新手'正确'的PHP项目管理

时间:2010-01-27 20:23:57

标签: svn deployment project-management staging

我过去基于快速'改变,上传'开发方法创建了很多PHP项目。

我开始了一个长期(6-8个月的估计)项目,以提供一个相当全功能的托管Web应用程序。在过去的几周里,我一直在寻找“项目管理”的最佳方式(我的实际代码很好)。该应用程序将具有初始版本,提供基本功能以及提供高级功能的进一步版本。我从未使用过SVN,Trac,Bug跟踪,登台服务器或部署工具,所以这对我来说都是新手。

根据我过去一周学到的知识,我正在寻找这个。

4 x VPS,128mb RAM(256个可突发)和10GB硬盘空间。

在以下配置中配置

  1. tools.ops.ourdomain.co.uk - 托管SVN,Trac和安全文件存储的服务器,用于上传和DNS(点名称服务器)
  2. development.ops.ourdomain.co.uk - 开发环境,适用于主干版本的软件。 SVN提交时自动更新的htdocs文件夹
  3. staging.ops.ourdomain.co.uk - 部署“潜在版本”进行测试。
  4. production.ops.ourdomain.co.uk - 部署“最终版本”的生产服务器。
  5. 这有意义吗?我应该将开发服务器放到本地计算机上吗?将DNS放在工具服务器上是否有意义?

    其次,对于单个开发人员来说,最好的开发方法是什么?我首先要计划所有功能,例如“验证用户”,“注销用户”,然后将它们创建为trac票证。当我遇到有关任务时,可以解决实际的“如何”和“何处”。规划所有类方法(和通用文件)然后为这些方法创建票证会更有意义吗?

    提前致谢。

2 个答案:

答案 0 :(得分:2)

以下是一些基于敏捷方法的一些提示,对于一个人团队而言应该是非常好的,因为与有用性相比,它们没有太多开销。

  • 制作部署脚本 - 您可以运行的单个命令来部署应用。这样,您可以轻松地重复执行部署应用程序的步骤。这样可以减少在部署到生产或登台时出现小错误或忘记步骤的可能性
  • 我发现在我自己的电脑上进行开发通常对我来说最快。工作时没有网络延迟,熟悉操作系统和工具。最重要的是个人偏好。
  • 拥有一个临时环境是一个好主意,最好是在与最终生产环境相同的硬件/软件上。这将允许您确认一切正常,并允许客户端测试驱动更改。
  • 尝试执行定期发布,类似于Scrum sprint。选择要为下一个版本完成的功能。这使您可以更容易地专注于最重要的功能,因为您知道自己需要做什么,并且还可以更容易地显示进度(确定此版本具有A,B和C功能)。如果您完成了所选的功能,则仅为当前版本选择新功能。在源代码管理中标记每个版本。
  • 对于上述内容,您可能希望使用Trac跟踪功能,正如您所说。你使用什么工具或方法并不重要,只要你有某种关于你正在做什么的地图或文件。
  • 如果您熟悉单元测试,可能需要考虑使用测试驱动开发。如果没有,开始学习单元测试可能是个好主意

最后但并非最不重要的是,制定计划并坚持下去。否则,您的项目可能会花费比预期更长的时间。

我希望至少其中一些可以帮助你避免我在职业生涯早期犯过的错误=)

答案 1 :(得分:0)

如果您可以在不花费太多费用的情况下进行更改,请将RAM增加一倍或四倍。我有一个256 MB(固定)“工作台”VPS,并且无法同时运行Trac / Python,Apache2,一个或两个PHP应用程序和一个远程桌面连接(该框只是拒绝做任何事情并声称“内存不足”)。这是一个Windows Server 2003 VPS,整体上Linux可能更节俭,但更多RAM不会受到伤害。

至于规划,我不确定Trac门票是否是第一步和基本开发的方法。它们非常适合处理单个问题,想法和功能,但是对于大局(功能要求,将要解决的问题草案,功能列表),您可能只需使用办公文档,UML图表或无论你用什么来收集想法和建立一个结构。