Como várias pessoas poderiam trabalhar em um site?


11

Eu assisti recentemente à Rede Social, e isso pode ser uma pergunta estúpida, mas como é possível que várias pessoas trabalhem em um site? Quero dizer, se eles estão trabalhando na mesma página, como isso é possível? E também, é possível fazer upload de arquivos para um host online sem torná-los vivos?


12
Fonte de controle. Cada desenvolvedor trabalha nos arquivos localmente, em seguida, tem de verificar o arquivo que proíbe outros desenvolvedores de substituir o conteúdo dentro do arquivo até que seja verificado. En.wikipedia.org/wiki/List_of_revision_control_software

3
Nunca use a funcionalidade de bloqueio do controle de versão em arquivos, a menos que eles sejam binários.
Colin Goudie

@gommo: O que você quer dizer com 'binário'? Você pode expandir isso?
Cam

1
@Cam: neste contexto “binário” = “qualquer coisa que não é um arquivo de texto”
Konrad Rudolph

Respostas:


27

Geralmente, quando várias pessoas precisam fazer alterações no mesmo arquivo, elas usam algum tipo de sistema de controle de versão para acompanhar quem fez as alterações. Também permite mesclar e sincronizar as alterações que diferentes pessoas fazem.


1
Simples, mas elegante.
Ryan Hayes

14

Muito poucos sites consistem em apenas uma "página" e, nos casos em que várias pessoas trabalhariam na mesma página, a maioria dos sistemas de controle de revisão possui mecanismos incorporados para mesclar as alterações novamente em um arquivo unificado.


Apenas para ser exigente :) a menos que seja um sistema baseado em CMS, onde todas as páginas são virtuais e existem apenas em um banco de dados.
Darknight

6

Várias pessoas trabalhando nos mesmos arquivos: Controle de origem

Sem torná-los ativos: servidores e bancos de dados de desenvolvimento, que não são da mesma ramificação do site real.


3

Eles precisam de algum tipo de gerente.

Normalmente, as equipes são divididas em segmentos que nunca devem interferir entre si (últimas palavras famosas). Por exemplo, se a API foo depende de ajudantes das pessoas que codificam em C, a quebra deve (nunca acontecer), mas se acontecer, acontece porque o aplicativo auxiliar não entende o que você está passando para ele.

Esse é um caso clássico da mão direita sem saber o que a mão esquerda está fazendo, que ilustra claramente a falha, que provavelmente é minha.

Se você digitar o código sem primeiro puxar e resolver as mesclagens (enquanto quebra o que o outro desenvolvedor fez removendo apenas o que você não escreveu), antes de se comunicar com outras pessoas que editam o mesmo, eu colocarei você em alta tensão. Depois disso, vou levá-lo para jantar (para fazer as pazes pelos 1,21 gigawatts) e garantir que você ingira algum tipo de comida louca, nojenta e bastante exótica. Pense ... Klingon .

Você vai me agradecer por isso e nunca mais fazê-lo.

É claro que você poderia substituir algum tipo de 'conversa normal ' aqui, mas que graça é essa?


1

Você provavelmente descobrirá que eles têm desenvolvedores trabalhando em páginas diferentes. Um modelo ou site mestre geralmente é criado para que cada página tenha a mesma aparência. Por exemplo, se a empresa estiver usando o Controle de origem, como o Team Foundation Server, cada desenvolvedor verificará seu código-fonte e isso permitirá que os outros desenvolvedores obtenham as alterações mais recentes.


2
O TFS foi o melhor que você pode criar para um exemplo de sistema de gerenciamento de controle de origem? Venha agora.
Matt Phillips

1

Eles poderiam:

  • Faça a programação em um editor através de uma sessão SSH (por exemplo, vi, vim, nano, emacs).
  • Seja editando através do FTP com seu IDE (por exemplo, emacs, notepad ++).
  • Usando um sistema de controle de versão.

No último, as pessoas agora usam controle de versão distribuído, como mercurial , git e bazar , em vez de controle centralizado de versão, como CVS e subversão. Para mercurial, consulte bitbucket.org e hospedagem de projeto de código do google , para git, verifique o github , que são sites que hospedam o código para você compartilhar de forma colaborativa sem precisar configurar um servidor.

Além disso:


1

Desenvolvendo páginas com componentes VS Pages como um todo

Já trabalhei em muitos sites de grande escala, e a maneira como várias pessoas trabalham na mesma página é que a maioria dos sites é portais . Em geral, muitos sites como o facebook contêm muitos controles, como fotos, anúncios, pequenas áreas de publicidade, etc., nas quais várias pessoas trabalharão. Além disso, os cabeçalhos e rodapés geralmente são divididos em seu próprio arquivo de inclusão reutilizável. Isso divide o site em componentes que não só podem ser trabalhados individualmente, mas também podem ser reutilizados em vários sites e áreas.


você sabe o que é um portal da web? (dica, não é um mashup pensar velhos tempos Yahoo.)
Javier

Sim, eu estava tentando usar um exemplo que mostra que uma técnica é dividir as páginas em componentes. Um bom exemplo disso é um portal, exceto pelo fato de os usuários poderem entrar / sair de widgets de portal, enquanto a criação de páginas usando componentes pode ser apenas do lado do desenvolvedor. Portais é um bom exemplo visual.
Ryan Hayes

0

Você pode usar algum tipo de sistema de sincronização ao vivo, como o OneNote usa ... Além disso, você pode enviar arquivos para um host, mas não criar um link de domínio principal para eles.


0

Não se esqueça que também pode haver sistemas de gerenciamento de conteúdo que alguns sites usam para veicular conteúdo, de modo que, embora você pense que algo é uma página da Web, é realmente esse mix de coisas.

Muitos sistemas de gerenciamento de conteúdo terão um recurso de visualização para permitir que os autores visualizem o conteúdo antes de torná-lo acessível ao público.


0

Todas essas ferramentas mencionadas são úteis, mas, para mim, parece mais que o OP está mais perguntando como as pessoas impedem de seguir o caminho dos outros.

Além de usar ferramentas para resolver esses conflitos, geralmente há alguma divisão em pilhas ou camadas para ajudar a evitar os conflitos em primeiro lugar.

Com a abordagem de pilha, cada pessoa trabalha em um recurso não relacionado (uma pessoa pode estar inscrevendo uma conta e outra pode estar enviando conteúdo). Haverá algum conflito no qual os dois podem se cruzar (provavelmente os registros do usuário neste exemplo) e isso será tratado como parte da mesclagem para a próxima compilação.

Com a abordagem de camada, alguém está construindo todos os bits mais internos, quando termina uma parte, outra pessoa escreve os bits que ficam sobre eles e assim por diante. os conflitos gerados aqui geralmente ocorrem quando algo precisa ser retornado em uma camada inferior para alguma modificação posterior que possa afetar a próxima camada acima e são tratados de maneira semelhante antes da próxima compilação.

A parte sobre arquivos promovidos, mas não ao vivo, tem uma ampla variedade de respostas / implementações, mas um servidor separado para visualização, um modo de visualização específico ou uma classe de usuário ou direito que obtém a versão mais avançada enquanto usuários comuns obtêm a versão estável. os que eu costumo ver com mais frequência.


0

Para responder à segunda parte primeiro, uma maneira de fazer upload de arquivos sem torná-los ativos é atribuir um nome ao qual não será vinculado. Por exemplo, para criar uma nova versão de uma index.htmlpágina, carregue-a com o nome e index2.html, em seguida, visite http://yoursite.com/index2.htmle verifique se ela funciona bem. Quando estiver satisfeito, renomeie-o para index.html. Isso é realmente apenas para sites muito pequenos e fica um pouco confuso se você deseja alterar algo externo à página, como imagens, arquivos CSS ou JavaScript, porque você precisa image2.png, então index2.htmlcuja única diferença é que ele aponta para o nova imagem.

Um programador profissional sempre terá um sistema de teste para trabalhar e depois fará o upload para o seu "host on-line" quando estiver satisfeito com as mudanças. Você pode configurar um servidor Web no seu computador que servirá apenas páginas na sua rede local. É claro que você também pode usar um computador separado ou (como eu) uma máquina virtual em execução no seu computador principal.

Quando vários desenvolvedores trabalham juntos, cada um tem seu próprio sistema de teste para trabalhar e, em seguida, carrega suas alterações em um sistema de controle de versão que monitora todas as alterações de todas as pessoas diferentes. Veja a parábola do git para saber como isso funciona.

O sistema de controle de versão facilita ver quem mudou o quê e por quê. Isso pode ser verificado por quem estiver no comando e depois mesclado com o mestre e entregue ao departamento de teste / controle de qualidade. Depois de testar completamente os novos recursos, eles o aprovam para o upload no site ativo.


0

A primeira coisa a estabelecer é que muitos sites não são um conjunto de páginas estáticas trabalhadas por uma ou mais pessoas.

As páginas que você vê como visitante não existem no site para fazer alterações, pois, nesses sites, são montadas automaticamente em tempo real por um sistema de gerenciamento de conteúdo - software em execução no servidor de hospedagem, usando o conteúdo do site proprietários produziram. O CMS monta a página a partir do conteúdo apresentado usando arquivos de modelo (arquivos de configuração do CSS e do CMS) e a página resultante é veiculada no seu navegador.

Os proprietários do site fazem alterações no conteúdo e nos modelos de layout, em vez de nas páginas estáticas. Partindo disso, sua resposta depende do tipo de mudança e do papel da pessoa que a realiza:

  1. um usuário público do site , postando um blog ou comentário
  2. se você estiver alterando o conteúdo do site (função de produtor de conteúdo, por exemplo, jornalista trabalhando para o proprietário do site) ou
  3. adicionar e alterar a funcionalidade do site (desenvolvedor do site trabalhando para o proprietário do site).

O Drupal é um sistema de gerenciamento de conteúdo gratuito e poderoso que fornece gerenciamento multiusuário para lidar com atualizações de conteúdo que, por sua vez, afetam o que é visto pelos visitantes nas páginas. O Drupal também fornecerá meios para alterar o comportamento das páginas, por exemplo, como elas são dispostas ou se os comentários em um artigo podem ser publicados, abordando o primeiro e o segundo tipos de mudança. Se fizer as alterações no Drupal, elas serão armazenadas em um banco de dados SQL. Drupal fornece algum controle de versão / revisão de conteúdo.

É necessário um sistema de controle de versão completo para mudanças de comportamento do site mais envolvidas, o terceiro tipo de alteração, por exemplo, a introdução de mais recursos, o recebimento de atualizações do Drupal ou a correção de bugs no próprio código adicionado. Sistemas de controle de versão como GIT, Subversion ou Mercurial - todos gratuitos - são usados ​​para gerenciar as alterações feitas por vários desenvolvedores do site.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.