多个人如何在一个网站上工作?


11

我最近看了《社交网络》,这可能是一个愚蠢的问题,但是,多人如何在一个网站上工作呢?我的意思是,如果他们在同一页面上工作,那怎么可能?而且,是否可以将文件上传到在线主机而不进行直播?


12
源代码控制。每个开发人员工作在本地的文件,然后必须检查哪些直至其在检查从文件中替换的内容禁止其他开发者文件。en.wikipedia.org/wiki/List_of_revision_control_software

3
除非它们是二进制文件,否则切勿对文件使用版本控制的锁定功能。
Colin Goudie

@gommo:“二进制”是什么意思?您可以对此进行扩展吗?
凸轮

1
@Cam:在这种情况下,“ binary” =“任何不是文本文件的东西”
Konrad Rudolph

Answers:


27

通常,当多个人需要对同一个文件进行更改时,他们会使用某种版本控制系统来跟踪谁进行了更改。它还使他们可以合并和同步不同人所做的更改。


1
简单而优雅。
瑞安·海斯

14

很少有网站仅由一个“页面”组成,并且在多个人将在同一页面上工作的情况下,大多数修订控制系统都具有内置的机制,可将更改重新合并到一个统一文件中。


请注意:),除非它碰巧是基于CMS的系统,其中所有页面都是虚拟的,并且仅存在于数据库中。
2011年

6

多人在同一个文件中工作:源代码管理

没有使它们生效:开发服务器和数据库,与真实网站不在同一个分支。


3

他们需要某种经理。

通常,团队被细分为永远不会相互干扰的部分(著名的遗言)。例如,如果foo API依赖于用C语言编写代码的人员的助手,则应该(永远不会发生)破损,但如果确实如此,则发生破损是因为助手应用程序不了解您要传递给它的内容。

这是右手不知道左手在做什么的经典情况,清楚地说明了故障,这很可能是我的。

如果您在没有首先拉动和解决合并的情况下推送代码(同时通过删除您未编写的内容破坏了其他开发人员的工作),那么 与其他编辑相同代码的人进行交流之前,我将向您施加高电压。之后,我将带您出去吃饭(以弥补1.21吉瓦的热量),并确保您摄取某种疯狂,令人作呕且颇具异国情调的食物。想想... 克林贡

然后,您会为此感谢我,再也不会再这样做了。

当然,您可以在这里替代某种普通的 “交谈”,但这有什么乐趣?


1

您可能会发现他们的开发人员正在不同的页面上工作。通常创建模板或网站母版,以便每个页面具有相同的外观。例如,如果公司使用的是诸如Team Foundation Server之类的Source Control,则每个开发人员都将签入其源代码,这将允许其他开发人员获取其最新更改。


2
对于源代码管理管理系统的示例,TFS是最好的选择?快过来
马特·菲利普斯

1

他们可以:

  • 通过SSH会话(例如vi,vim,nano,emacs)在编辑器中进行编程。
  • 正在使用其IDE通过FTP进行编辑(例如emacs,notedpad ++)。
  • 使用版本控制系统。

对于最后一个,人们现在使用分布式版本控制(例如mercurialgitbazar),而不是集中式版本控制(例如CVS和subversion)。出于商业目的,请检查bitbucket.orggoogle代码项目托管,对于git,请检查github,它们是托管代码的网站,您无需协作即可共享代码。

也:


1

使用组件VS页面作为整体开发页面

我曾在许多大型网站上工作,而多个人在同一页面上工作的方式是大多数网站都是门户网站。通常,许多网站(例如facebook)包含许多控件,例如照片,广告,很小的blurb区域等,这些控件将由多人共同处理。同样,页眉和页脚通常会分解为自己的可重用包含文件。这样可以将站点分解为多个组件,这些组件不仅可以单独处理,还可以在多个站点和区域中重复使用。


您知道什么是门户网站吗?(提示,这不是混搭。想想过去的Yahoo)
哈维尔(Javier

是的,我正在尝试使用一个示例,该示例显示了一种技术是将页面拆分为组件。门户就是一个很好的例子,除了用户可以放入/退出门户小部件,而使用组件构建页面只能从开发人员那儿开始。门户是一个很好的视觉示例。
瑞安·海斯

0

您可以使用OneNote使用的某种实时同步系统。...此外,您可以将文件上传到主机,但不能将主域链接到这些文件。


0

不要忘记,有些站点还可以使用内容管理系统来提供内容,这样一来,虽然您可能以为是网页,但实际上就是这些东西的混合体。

许多内容管理系统都将具有预览功能,以允许作者在将内容公开访问之前先查看内容。


0

提到的所有这些工具都是有帮助的,但对我来说,听起来更像是OP在问人们如何避免进入他人的道路。

除了使用工具来解决那些冲突外,通常还可以将其划分为堆栈或层级,从而首先避免冲突。

使用堆栈方法,您可以让每个人都在使用不相关的功能(一个人可能正在注册帐户,一个人可能正在执行内容提交)。两者可能会交叉(可能是本例中的用户记录),并且会在合并到下一个版本的过程中发生冲突。

使用分层方法时,某人正在构建所有最里面的位,当他们完成一个部分时,另一个人会写出位于这些位上面的位,依此类推。通常,当必须在较低层上返回某些内容以进行以后的修改时,这些冲突可能会影响上面的下一层,并在下一次构建之前以类似的方式进行处理,因此此处产生的冲突通常是这样。

有关已升级文件但尚未发布的文件的部分,其答案/实现方式多种多样,但有一个单独的服务器可进行预览,一种特定的预览模式,或者一种用户类别或权利,可带动最新版本,而普通用户则可获得稳定的版本。我最常看到的那些。


0

首先要回答第二部分,一种不使文件生效就上传文件的方法是给它们提供一个不会链接的名称。例如,制作index.html页面的新版本,将其上传为名称index2.html,然后访问http://yoursite.com/index2.html并检查其是否正常。满意后,将其重命名为index.html。这实际上仅适用于非常小的网站,如果您想更改页面外部的某些内容(例如图像,CSS或JavaScript文件),则会有些混乱,因为您必须拥有image2.pngindex2.html而它们的唯一区别是它指向新图片。

专业的程序员总是会使用一个测试系统来工作,一旦对更改感到满意,就可以将其上传到其“在线主机”。您可以在计算机上设置一个Web服务器,该服务器仅在本地网络内提供页面。当然,您也可以使用单独的计算机,或者(就像我一样)在主计算机上运行虚拟机。

当多个开发人员一起工作时,每个人都将拥有自己的测试系统,然后将其更改上载到版本控制系统,该系统将跟踪来自所有不同人员的所有更改。请参阅git寓言以了解其工作原理。

版本控制系统使您可以轻松查看谁更改了内容和原因。可以由负责人进行检查,然后将其合并到主数据库中,然后移交给测试/质量检查部门。一旦对新功能进行了全面测试,他们将批准将其上传到实时站点。


0

首先要确定的是,许多网站不是由一个或多个人员处理的静态页面的集合。

您视为访客的页面在网站上不存在,无法进行更改,因为在这样的网站上,它们是由内容管理系统(在托管服务器上运行的软件,使用网站上的内容)在运行时自动组合而成的业主产生的。CMS将使用模板文件(CSS和CMS自己的配置文件)布局的内容组装页面,然后将结果页面提供给浏览器。

网站所有者对内容和布局模板(而不是静态页面)进行更改。从中得出答案,取决于更改的类型和执行更改的人员的角色

  1. 网站的公共用户,发布博客或评论
  2. 如果您要更改网站上的内容(内容制作者角色,例如为网站所有者工作的记者),或者
  3. 添加和更改网站的功能(为网站所有者工作的网站开发人员)。

Drupal是一个免费且功能强大的内容管理系统,可提供多用户管理来处理内容更新,从而影响访问者在页面上看到的内容。Drupal还将提供方法来更改页面的行为,例如,页面的布局方式或是否可以在文章上发表评论,以解决第一种和第二种更改。如果在Drupal中进行更改,则这些更改将存储在SQL数据库中。Drupal提供了一些内容的版本控制/修订控制。

需要一个完整的版本控制系统来进行更多涉及的站点行为更改,即第三种类型的更改,例如,引入更多功能,从Drupal接收更新或修复自己添加的代码中的错误,这意味着更改代码,以及其他在此处发布的内容。诸如GIT,Subversion或Mercurial之类的版本控制系统(全部免费)用于管理站点的多个开发人员所做的更改。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.