建立 Web 应用程序开发的协作环境

发布于 2024-12-12 02:12:39 字数 420 浏览 0 评论 0原文

我的办公室正在不断壮大,我的任务是为我们的网络开发构建 IT。

在小组环境中进行 Web 开发的最佳工具/设置是什么?需求是一个集中的代码存储库、一个测试开发代码的位置,以及最后一种将标记代码推送到登台服务器的方法。我的想法是 svn/redmine 用于代码仓库,每个用户在中央开发机器上都有一个帐户,以允许 ssh 访问(通过 ssh 的 eclipse),并在开发服务器上拥有自己的虚拟主机,这为每个人提供了一个集中的开发沙箱。代码在此开发盒上编写和测试,然后重新签入 svn,然后标记并推送到登台服务器。是的?想法评论或建议?

*此外,在开发环境中处理数据库的最佳方法是什么?从生产数据库中提取数据是否明智?每个开发人员还应该拥有自己的数据库还是使用主数据库?

**我们正在构建一个 magento 应用程序,并且还有一些在 cakePHP 上运行的自定义后台工具。

My office is growing and ive been tasked to build out the IT for our web development.

Whats the best tool/setup for doing web development in a group setting? The requirements are a centralized code repository, a location to test development code on, and finally a way to push tagged code out to a staging server. What im thinking is svn/redmine for code repo, each user has an account on a central development machine to allow for ssh access(eclipse over ssh) and their own virtual host on the dev server which gives everyone a centralized development sandbox. Code is written and tested on this dev box then checked back into svn and later tagged and pushed out to the staging server. Yeah? Thoughts comments or recommendations?

*Also, in a dev environment what is the best way to handle databases? Is it wise to pull from the production database? Also should each developer have his/her own db or work off a master db?

**We are building a magento application and also have some custom backoffice tools that run on cakePHP.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

○愚か者の日 2024-12-19 02:12:39

虽然这个主题在 StackOverflow 中是离题的并且被标记了,所以你需要专注于以下领域:

VERSION-CONTROL

  • GIT 拥有所有的荣耀,你不需要自己的盒子,因为 https://bitbucket.org/ 提供无限数据和私有/公共存储库,您可以在那里设置您的代码库。 http://github.com 也是强大的,事实上是最流行的面向版本控制的工具,尽管它是为了价格小
  • ,这样你的主分支就存在于你的版本控制中,你的开发人员将在那里签出 frpom 并提交给它,
  • 你的部署工具将从你的主环境中将数据部署到你的实时和临时环境

通常

  • 使用三个 LIVE、STAGE、DEV
  • LIVE活得很好,唯一批准的代码部署在那里
  • STAGE 是预上线环境,应该是根据 LIVE 的精确副本环境,因此所有东西都可以由商家
  • DEV 在那里进行测试,拥有精确的副本很酷,但也可以在开发人员本地环境中,并且可以松散地更换测试和实验

数据库和部署

  • mysql 数据库同步起来很麻烦,所以你最好有一个脚本,可以从实时同步到其他数据库,并防止从其他环境同步到实时。此限制还要求所有配置和内容只能从 LIVE 添加,然后才能在线同步。对架构或永久设置的每次更改都应通过更新脚本来处理(正如我们所说的 MAGENTO CE ,MAGENTO EE 内置了迁移)
  • 进行部署我还建议您构建一个 Fabric 或 capistrano 脚本来重置开发和登台环境,处理数据库重置并从 LIVE DB 中提取,并从中央存储库导入代码。

针对以下日常任务也是一个好主意:

  • 客户需要为其测试重置阶段
  • 项目经理、开发人员或测试人员需要进行测试,因此生成测试克隆应该是一键操作(获取当前的数据库和代码并使其存在于某些子文件夹仅用于特定测试)以及删除测试
  • 第3方开发人员可能需要访问特定测试或开发环境(这对于magento来说是实际的,因为平均每个magento中至少安装了10个外部扩展 店铺)

Although this subject is off-topic in StackOverflow and flagged so then you need to concentrate on following areas:

VERSION-CONTROL

  • GIT has all the glory and you don't need your own box for this as https://bitbucket.org/ offers unlimited data and private/public repos and you can set your codebase there. http://github.com is also powerful and de facto most popular version-control oriented tool out there although it comes for a small price
  • so your master branches live in your version control and your devs will checkout frpom there and commit to it as well
  • your deployment tools will deploy data to your live and staging environments from your master

ENVIRONMENTS

  • usually three are used LIVE, STAGE, DEV
  • LIVE is well live and only approved code gets deployed there
  • STAGE is pre-live environment and should be exact replica environment according to LIVE so all things can be tested there by merchant
  • DEV is cool to have exact replica but can as well be on developers local env and is ment for loose testing and experimenting

DATABASES AND DEPLOYMENT

  • mysql databases are pain in the ass to sync so you better have a script for it that syncs from live to others and prevent syncing from other environments to LIVE. This limitation also requires that all the configuration and content will be added from LIVE only and only then synced down the line. Every change to schema or permanent setting should be handled by update scripts (As we are talking MAGENTO CE , MAGENTO EE has migration built in)
  • for deployment I also suggest you to build a fabric or capistrano script that resets dev and staging environments, handles database reset and pull from LIVE DB, and imports code from central repository.

it's also a good idea to target the following everyday tasks:

  • clients needs to reset the stage for it's tests
  • project manager, developer or testers need to test so spawning a test clone should be oneclick action (take current db and code and make it live in some subfolder for specific test only) as well as deleting the test
  • 3rd party devs might need access to specific test or dev environment (this is actual with magento as in average there are at least 10 external extensions installed in every magento store)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文