我最近看了《社交网络》,这可能是一个愚蠢的问题,但是,多人如何在一个网站上工作呢?我的意思是,如果他们在同一页面上工作,那怎么可能?而且,是否可以将文件上传到在线主机而不进行直播?
我最近看了《社交网络》,这可能是一个愚蠢的问题,但是,多人如何在一个网站上工作呢?我的意思是,如果他们在同一页面上工作,那怎么可能?而且,是否可以将文件上传到在线主机而不进行直播?
Answers:
多人在同一个文件中工作:源代码管理
没有使它们生效:开发服务器和数据库,与真实网站不在同一个分支。
他们需要某种经理。
通常,团队被细分为永远不会相互干扰的部分(著名的遗言)。例如,如果foo API依赖于用C语言编写代码的人员的助手,则应该(永远不会发生)破损,但如果确实如此,则发生破损是因为助手应用程序不了解您要传递给它的内容。
这是右手不知道左手在做什么的经典情况,清楚地说明了故障,这很可能是我的。
如果您在没有首先拉动和解决合并的情况下推送代码(同时通过删除您未编写的内容破坏了其他开发人员的工作),那么 在与其他编辑相同代码的人进行交流之前,我将向您施加高电压。之后,我将带您出去吃饭(以弥补1.21吉瓦的热量),并确保您摄取某种疯狂,令人作呕且颇具异国情调的食物。想想... 克林贡。
然后,您会为此感谢我,再也不会再这样做了。
当然,您可以在这里替代某种普通的 “交谈”,但这有什么乐趣?
他们可以:
对于最后一个,人们现在使用分布式版本控制(例如mercurial,git和bazar),而不是集中式版本控制(例如CVS和subversion)。出于商业目的,请检查bitbucket.org和google代码项目托管,对于git,请检查github,它们是托管代码的网站,您无需协作即可共享代码。
也:
我曾在许多大型网站上工作,而多个人在同一页面上工作的方式是大多数网站都是门户网站。通常,许多网站(例如facebook)包含许多控件,例如照片,广告,很小的blurb区域等,这些控件将由多人共同处理。同样,页眉和页脚通常会分解为自己的可重用包含文件。这样可以将站点分解为多个组件,这些组件不仅可以单独处理,还可以在多个站点和区域中重复使用。
您可以使用OneNote使用的某种实时同步系统。...此外,您可以将文件上传到主机,但不能将主域链接到这些文件。
提到的所有这些工具都是有帮助的,但对我来说,听起来更像是OP在问人们如何避免进入他人的道路。
除了使用工具来解决那些冲突外,通常还可以将其划分为堆栈或层级,从而首先避免冲突。
使用堆栈方法,您可以让每个人都在使用不相关的功能(一个人可能正在注册帐户,一个人可能正在执行内容提交)。两者可能会交叉(可能是本例中的用户记录),并且会在合并到下一个版本的过程中发生冲突。
使用分层方法时,某人正在构建所有最里面的位,当他们完成一个部分时,另一个人会写出位于这些位上面的位,依此类推。通常,当必须在较低层上返回某些内容以进行以后的修改时,这些冲突可能会影响上面的下一层,并在下一次构建之前以类似的方式进行处理,因此此处产生的冲突通常是这样。
有关已升级文件但尚未发布的文件的部分,其答案/实现方式多种多样,但有一个单独的服务器可进行预览,一种特定的预览模式,或者一种用户类别或权利,可带动最新版本,而普通用户则可获得稳定的版本。我最常看到的那些。
首先要回答第二部分,一种不使文件生效就上传文件的方法是给它们提供一个不会链接的名称。例如,制作index.html
页面的新版本,将其上传为名称index2.html
,然后访问http://yoursite.com/index2.html
并检查其是否正常。满意后,将其重命名为index.html
。这实际上仅适用于非常小的网站,如果您想更改页面外部的某些内容(例如图像,CSS或JavaScript文件),则会有些混乱,因为您必须拥有image2.png
,index2.html
而它们的唯一区别是它指向新图片。
专业的程序员总是会使用一个测试系统来工作,一旦对更改感到满意,就可以将其上传到其“在线主机”。您可以在计算机上设置一个Web服务器,该服务器仅在本地网络内提供页面。当然,您也可以使用单独的计算机,或者(就像我一样)在主计算机上运行虚拟机。
当多个开发人员一起工作时,每个人都将拥有自己的测试系统,然后将其更改上载到版本控制系统,该系统将跟踪来自所有不同人员的所有更改。请参阅git寓言以了解其工作原理。
版本控制系统使您可以轻松查看谁更改了内容和原因。可以由负责人进行检查,然后将其合并到主数据库中,然后移交给测试/质量检查部门。一旦对新功能进行了全面测试,他们将批准将其上传到实时站点。
首先要确定的是,许多网站不是由一个或多个人员处理的静态页面的集合。
您视为访客的页面在网站上不存在,无法进行更改,因为在这样的网站上,它们是由内容管理系统(在托管服务器上运行的软件,使用网站上的内容)在运行时自动组合而成的业主产生的。CMS将使用模板文件(CSS和CMS自己的配置文件)布局的内容组装页面,然后将结果页面提供给浏览器。
网站所有者对内容和布局模板(而不是静态页面)进行更改。从中得出答案,取决于更改的类型和执行更改的人员的角色:
Drupal是一个免费且功能强大的内容管理系统,可提供多用户管理来处理内容更新,从而影响访问者在页面上看到的内容。Drupal还将提供方法来更改页面的行为,例如,页面的布局方式或是否可以在文章上发表评论,以解决第一种和第二种更改。如果在Drupal中进行更改,则这些更改将存储在SQL数据库中。Drupal提供了一些内容的版本控制/修订控制。
需要一个完整的版本控制系统来进行更多涉及的站点行为更改,即第三种类型的更改,例如,引入更多功能,从Drupal接收更新或修复自己添加的代码中的错误,这意味着更改代码,以及其他在此处发布的内容。诸如GIT,Subversion或Mercurial之类的版本控制系统(全部免费)用于管理站点的多个开发人员所做的更改。