¿Cómo podrían trabajar varias personas en un sitio web?


11

Recientemente vi The Social Network, y esta podría ser una pregunta estúpida, pero ¿cómo es posible que varias personas trabajen en un sitio web? Quiero decir, si están trabajando en la misma página, ¿cómo es eso posible? Y también, ¿es posible cargar archivos a un host en línea sin hacerlos en vivo?


12
Fuente de control. Cada desarrollador trabaja en los archivos localmente, entonces tiene que extraer el archivo que prohíbe a otros desarrolladores de reemplazar el contenido dentro del archivo hasta que se registró. En.wikipedia.org/wiki/List_of_revision_control_software

3
Sin embargo, nunca use la funcionalidad de bloqueo de control de versiones en archivos a menos que sean binarios.
Colin Goudie

@gommo: ¿Qué quieres decir con 'binario'? ¿Se puede ampliar al respecto?
Cam

1
@Cam: en este contexto "binario" = "cualquier cosa que no sea un archivo de texto"
Konrad Rudolph

Respuestas:


27

Por lo general, cuando varias personas necesitan realizar cambios en el mismo archivo, utilizan algún tipo de sistema de control de versiones para realizar un seguimiento de quién realizó los cambios. También les permite fusionar y sincronizar los cambios que hacen diferentes personas.


1
Simple, pero elegante.
Ryan Hayes

14

Muy pocos sitios web consisten en una sola "página" y, en los casos en que varias personas trabajarían en la misma página, la mayoría de los sistemas de control de revisiones tienen mecanismos incorporados para fusionar los cambios nuevamente en un archivo unificado.


Solo para ser exigente :) a menos que sea un sistema basado en CMS, donde todas las páginas son virtuales y solo existen en una base de datos.
Darknight

6

Varias personas que trabajan en los mismos archivos: control de fuente

Sin hacerlos en vivo: servidores de desarrollo y bases de datos, que no son la misma rama que el sitio web real.


3

Necesitan algún tipo de gerente.

Por lo general, los equipos se dividen en segmentos que nunca deberían interferir entre sí (últimas palabras famosas). Por ejemplo, si la API foo depende de los ayudantes de las personas que codifican en C, la rotura debería (nunca suceder), pero si sucede, sucede porque la aplicación auxiliar no entiende lo que le está pasando.

Ese es un caso clásico de la mano derecha que no sabe lo que está haciendo la mano izquierda, lo que ilustra claramente la falla, que probablemente sea mía.

Si empuja el código sin primero extraer y resolver las fusiones (mientras rompe lo que hizo el otro desarrollador simplemente eliminando lo que no escribió), antes de comunicarse con otros que editan lo mismo, voy a dosificarlo con alto voltaje. Después de eso, te llevaré a cenar (para enmendar los 1,21 gigavatios) y asegurarme de que ingieras algún tipo de comida loca, asquerosa y bastante exótica. Piensa ... Klingon .

Entonces me lo agradecerás y nunca lo volverás a hacer.

Por supuesto, podría sustituir algún tipo de 'conversación' normal aquí, pero ¿qué es eso divertido?


1

Probablemente encontrarás que tienen desarrolladores trabajando en diferentes páginas. Por lo general, se crea una plantilla o un maestro de sitio para que cada página tenga el mismo aspecto. Por ejemplo, si la empresa está utilizando el control de origen, como Team Foundation Server, cada desarrollador verificará su código fuente y esto permitirá a los otros desarrolladores obtener sus últimos cambios.


2
¿TFS fue lo mejor que pudo encontrar para un ejemplo de un sistema de gestión de control de origen? Ven ahora.
Matt Phillips

1

Podrían:

  • Programe en un editor a través de una sesión SSH (por ejemplo, vi, vim, nano, emacs).
  • Estará editando a través de FTP con su IDE (por ejemplo, emacs, notablepad ++).
  • Usando un sistema de control de versiones.

Para el último, las personas ahora usan control de versión distribuido como mercurial , git y bazar , en lugar de control de versión centralizado como CVS y subversion. Para mercurial, consulte bitbucket.org y el alojamiento de proyectos de código de google , para git, consulte github , que son sitios que alojan el código para que lo comparta de forma colaborativa sin necesidad de configurar un servidor.

También:


1

Desarrollo de páginas con componentes VS páginas en su conjunto

He trabajado en muchos sitios web a gran escala, y la forma en que trabajan varias personas en la misma página es que la mayoría de los sitios web son portales . En general, muchos sitios como Facebook contienen muchos controles, como fotos, anuncios, pequeñas áreas publicitarias, etc., en los que trabajarán varias personas. Además, los encabezados y pies de página generalmente se dividen en su propio archivo de inclusión reutilizable. Esto divide el sitio en componentes que no solo se pueden trabajar individualmente, sino que también se pueden reutilizar en múltiples sitios y áreas.


¿Sabes qué es un portal web? (pista, no es un mashup. piense en los viejos tiempos Yahoo)
Javier

Sí, estaba tratando de usar un ejemplo que muestra que una técnica es dividir las páginas en componentes. Un buen ejemplo de esto es un portal, excepto que los usuarios pueden colocar widgets de portal de entrada / salida, mientras que la creación de páginas con componentes puede ser solo desde el lado del desarrollador. Portales es un buen ejemplo visual.
Ryan Hayes

0

Podrías usar algún tipo de sistema de sincronización en vivo como el que usa OneNote ... Además, puedes subir archivos a un host pero no hacer que tu enlace de dominio principal a ellos.


0

No olvide que también puede haber sistemas de administración de contenido que algunos sitios usan para servir contenido, de modo que si bien puede pensar que algo es una página web, es realmente esta mezcla de cosas.

Muchos sistemas de administración de contenido tendrán una función de vista previa para permitir a los autores ver el contenido antes de que sea accesible al público.


0

Todas estas herramientas mencionadas son útiles, pero para mí suena más como si el OP preguntara más sobre cómo las personas evitan meterse en el camino de los demás.

Además de usar herramientas para resolver esos conflictos, generalmente hay cierta división en pilas o niveles para ayudar a evitar los conflictos en primer lugar.

Con el enfoque de pila, cada persona trabaja en una función no relacionada (una persona puede estar registrando una cuenta y otra puede estar enviando contenido). Habrá algún conflicto en el que los dos pueden cruzarse (los registros de usuarios en este ejemplo probablemente) y eso se maneja como parte de la fusión a la próxima compilación.

Con el enfoque de nivel, alguien está construyendo todos los bits más internos, cuando terminan una porción, otra persona escribe los bits que se encuentran encima de ellos, etc. Los conflictos generados aquí son generalmente cuando algo tiene que ser devuelto a un nivel inferior para alguna modificación posterior que podría afectar el siguiente nivel anterior y se manejan de manera similar antes de la próxima compilación.

La parte sobre los archivos promocionados pero no en vivo tiene una amplia variedad de respuestas / implementaciones, pero un servidor separado para obtener una vista previa, un modo de vista previa específico o una clase de usuario o derecho que extrae la versión de vanguardia mientras que los usuarios normales obtienen la versión estable. los que suelo ver con más frecuencia


0

Para responder primero a la segunda parte, una forma de cargar archivos sin ponerlos en vivo es dándoles un nombre al que no se vinculará. Por ejemplo, para crear una nueva versión de una index.htmlpágina, cárguela con el nombre index2.html, luego visítela http://yoursite.com/index2.htmly compruebe que funciona correctamente. Una vez que esté satisfecho, cámbiele el nombre a index.html. Esto es realmente solo para sitios muy pequeños, y se vuelve un poco desordenado si desea cambiar algo externo a la página, como imágenes, archivos CSS o JavaScript, porque tiene que tener image2.png, entonces index2.htmlcuya única diferencia es que apunta a la nueva imagen.

Un programador profesional siempre tendrá un sistema de prueba en el que trabajar y luego lo cargará a su "host en línea" una vez que esté satisfecho con los cambios. Puede configurar un servidor web en su computadora que solo servirá páginas dentro de su red local. Por supuesto, también podría usar una computadora separada o (como yo) una máquina virtual que se ejecuta en su computadora principal.

Cuando varios desarrolladores trabajan juntos, cada uno tendrá su propio sistema de prueba en el que trabajar y luego cargará sus cambios en un sistema de control de versiones que realiza un seguimiento de todos los cambios de las diferentes personas. Vea la parábola de git sobre cómo funciona esto.

El sistema de control de versiones facilita ver quién cambió qué y por qué. El responsable puede verificar esto y luego fusionarlo con el maestro y entregarlo al departamento de pruebas / control de calidad. Una vez que hayan probado completamente las nuevas funciones, lo aprobarán para cargarlo en el sitio en vivo.


0

Lo primero que debe establecerse es que muchos sitios no son una colección de páginas estáticas en las que trabajan una o más personas.

Las páginas que ve como visitante no existen en el sitio web para realizar cambios, ya que en dichos sitios se ensamblan automáticamente sobre la marcha por un sistema de gestión de contenido: software que se ejecuta en el servidor de alojamiento, utilizando contenido que el sitio web Los propietarios han producido. El CMS ensambla la página a partir del contenido presentado utilizando archivos de plantilla (CSS y los propios archivos de configuración del CMS) y la página resultante se sirve a su navegador.

Los propietarios del sitio realizan cambios en el contenido y las plantillas de diseño en lugar de páginas estáticas. A partir de eso, su respuesta depende del tipo de cambio y el papel de la persona que lo realiza:

  1. un usuario público del sitio , publicando un blog o comentario
  2. si está cambiando el contenido del sitio (función de productor de contenido, por ejemplo, periodista que trabaja para el propietario del sitio web) o
  3. agregar y cambiar la funcionalidad del sitio (el desarrollador del sitio trabaja para el propietario del sitio).

Drupal es un sistema de administración de contenido gratuito y potente que brinda administración multiusuario para manejar actualizaciones de contenido que a su vez afecta lo que ven los visitantes en las páginas. Drupal también proporcionará medios para alterar el comportamiento de las páginas, por ejemplo, cómo se presentan o si se pueden publicar comentarios sobre un artículo, abordando los tipos de cambio primero y segundo. Si realiza los cambios en Drupal, estos se almacenarán en una base de datos SQL. Drupal proporciona algunas versiones / control de revisión de contenido.

Se necesita un sistema de control de versión completo para cambios de comportamiento del sitio más involucrados, el tercer tipo de cambio, por ejemplo, introducir más funciones, recibir actualizaciones de Drupal o corregir errores en el propio código agregado, entonces esto significa cambiar el código y como otros han publicado aquí. Los sistemas de control de versiones como GIT, Subversion o Mercurial, todos gratuitos, se utilizan para administrar los cambios realizados por varios desarrolladores del sitio.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.