不幸的是,我从未有过高级开发人员或导师向我展示一些最佳实践。所以我使用WAMP在我的Windows机器上开发站点(php / mysql),我在生产服务器上的隐藏(密码限制)文件夹中进行测试,最后将站点移动到生产文件夹。
我希望有一个更流畅/实用/防错的设置,以便从开发>测试>生产,没有打嗝。
重点/问题是(你可能会提出更多):
你们如何开发PHP / MySQL网站?
你使用SVN吗?你使用IDE吗?你使用虚拟机吗?
感谢。
答案 0 :(得分:4)
这是一个经常被问到的问题 - 这就是为什么大多数经验丰富的开发者都没有回复 - 并且通常会以激烈的观点结束火焰战争。所以,要小心。
但你似乎是一个善于进入正确道路的好人,寻求一些真正富有成效的道路。几年前我对此有所了解。
好的,首先要记住的是:不要盲目跟随任何人。任何人都可以声称自己是一个伟大的大师,但你可以找到至少10,000个人更好,完全匿名。因此,对于您听到的任何内容,请执行以下操作:倾听,测试并自行得出结论。如果只有一条黄金法则就是这样。在你自己的结论出现之前,其他一切都很糟糕。你是最后的法官。
那就是说,让我开始讨论最新问题之一:IDE。你应该用什么?你应该使用你可以生产更多,让你更舒适的。 Netbeans,Eclipse,VIM,Notepad ++,Notepad,gedit,kate,quanta plus ....你有很多选择,每个人都有自己的看法。测试你认为有趣的东西,然后选择你选择的那个。
对于任何方法,框架或工具也是如此。使用,学习并获得批评。坚持使您更舒适,更富有成效。
开发环境也是如此。如果你在Windows,Mac或Linux上开发,那就没那么重要了。重要的是获得您需要的资源。您需要的资源可以并且通常会从一个项目更改为另一个项目。
因此,开发某个项目的最佳环境是反映生产运行的真实环境的环境。如果您使用PHP 5.3 OOP资源开发并最终获得PHP 5.1,该怎么办?这才是重点。最终的环境是谁告诉你什么是最好的开发环境,而不是反过来。
对于测试,您应该追踪策略。我在谈论这是IBM内部5年的测试团队负责人。这是因为您可以执行大量测试,但并非所有测试都对当前项目非常有用。
首先根据项目需求决定您要测试的内容。安全性,性能,UI显示,UI效果,错误处理,负载和平衡,可用性,可访问性......
记录您要测试的内容(内容,时间,地点,成功标准),并报告成功与失败。
正如我之前所说,项目需求是指导您完成每一步的原因。测试没有什么不同。如果您只需要检查不同浏览器上的显示器,请随意使用不同的机器或VM。
通常这就足够了。但如果项目需要性能或负载测试,那么您将需要特定的负载测试软件。我不会深入研究这个主题,因为它非常广泛。
找到一个理想的流程和工具匹配需要一些时间,在实现这一目标后,您将始终发现一个新的测试工具或一个过程,以节省一点时间。这是IT。
答案 1 :(得分:2)
以下是我的建议:
拥有纯粹用于开发的开发环境。根据您拥有的资源保持暂存和/或实时环境。暂存环境是您测试的地方,并确保您的应用程序没有严重的问题。实时环境基本上就是您的生产设置。事实上,舞台和现场应该总是一样的。在分段上重现问题并在不修改代码的情况下进行一些故障排除很有用。请记住,这也适用于任何相关的数据库。
使用SVN或某种形式的版本控制。通过这种方式,如果有一天世界崩溃,您将能够回退到应用程序的任何稳定版本!
如果您使用的是Linux环境,则可以编写简单的脚本来将设置与最新的(STABLE)开发环境同步。理想情况下,您进行开发和进行单元测试,以确保一切按设计工作。运行脚本,并使用最新的代码库更新暂存环境。对分段进行功能测试,并确保一切按规格运行。运行另一个脚本,您的最新更改将转移到实时/生产环境中。
答案 2 :(得分:1)
我的开发过程仍然有点粗糙,我也期待着答案。
我为大型项目做的是在我的linux桌面和Windows桌面上设置一个git repo。如果可能的话我会在当地测试。作为完成的组件,我将把我的更改推送到集中托管的git repo(通常是私有git hub帐户),或者将它们拉到dev(我将dev设置为repo并从ssh中提取)。所有MySQL更新都存储在更新文件中,我使用netbeans进行开发(虽然我使用了eclipse和其他,netbeans只适用于我)。
答案 3 :(得分:1)
我认为你抓住了所有重点。就个人而言,我
mysqldump
生成表创建SQL。我使用mysql <name_of_sql.file
在服务器上安装它。当我进行更改时,我备份数据库,然后通过命令行界面执行此操作。对于PHP,我只使用Doctrine进行表结构/迁移支持。这不是最复杂的设置,但它对我来说效果很好。我是唯一的开发人员正在处理我参与的项目,这可能解释了很多。最重要的部分,不仅仅是个人偏好,是第一个 - 将您的开发/测试系统尽可能地与生产系统相匹配,包括操作系统。