Web开发人员 - 在本地计算机或远程主机上进行开发是否更好?

Cor*_*use 37 build-environment

在本地计算机上而不是在集中式开发服务器上进行Web开发的利弊是什么?对于那些在本地机器上执行dev的人,当涉及多个开发人员时,如何为本地开发保留更新的数据库体系结构?

特别是,我正在尝试使用XAMPP for PHP,并且很好奇当其他开发人员定期更改数据/数据库结构时,我如何使MySQL数据库实例保持同步.

当地开发只在单独工作时才有用吗?

Ste*_*son 55

  • 始终,始终在本地设置上进行开发.
  • 始终使用源代码管理.
  • 始终将所有内容置于源代码管理下,包括数据库架构.

似乎有很多人喜欢拥有一个每个人都用于开发的中央服务器 - 我真的不明白为什么你更喜欢在共享环境中进行更改的人可能会中断你的开发过程.

在我的商店里,每个人都有自己的开发Web服务器和他们自己的开发数据库(通常位于同一个数据库服务器上,但是他们自己的数据库).这样他们就完全与其他开发人员隔离,不会互相打断.

当他们实现功能或修复错误时,他们会检查他们的代码和匹配的数据库模式,以便其他开发人员可以将其作为一个完整的单元使用.从源代码存储库中的标记版本完成对测试服务器或部署服务器的发布.

稳定而且理智!当开发服务器空闲时,我不明白为什么你会以任何其他方式做到这一点!


Cod*_*eef 7

我认为最好在开发过程中使用完全由您控制的本地设置,以确保其他开发人员所做的更改不会干扰您自己的更改.我在本地设置了开发和测试环境,因此我可以执行这两项任务,而无需考虑其他开发人员.我在使用自动测试编码时不断运行测试,这意味着我可以确保我的代码是正确的并且满足正确的规范.

在代码库按顺序完成后,我将部署到临时服务器(这是一个尽可能接近生产的环境),然后重新运行测试.我们还使用我们的阶段来运行负载测试并进行用户测试.


noo*_*rce 7

在其他人编辑数据库时保持数据库"同步".解决此问题的一种方法是将数据库架构置于版本控制之下.这并不像将源代码置于版本控制之下那么简单,并且有不同的处理方式.

阅读关于Coding Horror的这篇文章:

https://blog.codinghorror.com/get-your-database-under-version-control/

不是这篇文章本身,而是他与K. Scott Allen联系的六篇文章.

基本上,这些文章中描述的是一种基线化数据库模式的方法,检查该基线的.sql文件,并在每次更改模式时编写增量.sql"更改脚本".现在,每当开发人员签出或更新工作副本时,都会运行任何未完成的更改脚本.除非您使用为您执行此操作的框架,否则您需要设置一些脚本/工具来自行完成.


Dav*_*rno 6

我发现运行本地Web服务器,远程数据库效果最好.数据库复制/同步很痛苦,所以如果我真的需要,我只能使用本地数据库.

使用本地Web服务器可以消除在更改之间上载页面/代码的所有烦恼和缓慢.


war*_*ren 5

对当地的优点:

  • 即使网络出现故障也能正常工作
  • 你知道机器上的每一个工具

对当地的缺点:

  • 必须将所有内容同步到部署服务器
  • 没有版本控制你可以破坏别人的工作

中心的优点:

  • 每个人都有相同的工具
  • 始终致力于"真实"的内容

中心的缺点:

  • 如果网络中断,则无法工作
  • 您的"最爱"工具可能会丢失

我相信还有更多,但这些让我想到了.


Dil*_*ave 5

在本地机器上开发和"测试"是好的,但是应该在反映目标环境的系统上执行质量测试,即不安装所有开发工具等.

这将有助于避免"它在我的机器上工作"的情况.