Come potrebbero lavorare più persone su un sito Web?


11

Di recente ho visto The Social Network, e questa potrebbe essere una domanda stupida, ma come è possibile che più persone lavorino su un sito Web? Voglio dire, se stanno lavorando sulla stessa pagina, come è possibile? Inoltre, è possibile caricare file su un host online senza renderli attivi?


12
Controllo della fonte. Ogni sviluppatore lavora sui file localmente, quindi deve estrarre il file che vieta altri sviluppatori di sostituire il contenuto all'interno del file fino a quando non viene archiviato. En.wikipedia.org/wiki/List_of_revision_control_software

3
Non utilizzare mai la funzionalità di blocco del controllo versione sui file a meno che non siano binari.
Colin Goudie,

@gommo: cosa intendi con "binario"? Puoi espanderci?
Cam

1
@Cam: in questo contesto “binary” = “qualunque cosa che non sia un file di testo”
Konrad Rudolph

Risposte:


27

Di solito, quando più persone devono apportare modifiche allo stesso file, usano una sorta di sistema di controllo della versione per tenere traccia di chi ha apportato le modifiche. Inoltre, consente loro di unire e sincronizzare le modifiche apportate da persone diverse.


1
Semplice ma elegante.
Ryan Hayes,

14

Pochissimi siti Web sono costituiti da una sola "pagina" e, per i casi in cui più persone lavorerebbero sulla stessa pagina, la maggior parte dei sistemi di controllo delle revisioni ha meccanismi integrati per riunire le modifiche in un file unificato.


Solo per essere pignoli :) a meno che non si tratti di un sistema basato su CMS, in cui tutte le pagine sono virtuali ed esistono solo in un database.
Darknight,

6

Più persone che lavorano negli stessi file: controllo del codice sorgente

Senza farli vivere: server di sviluppo e database, che non sono la stessa branca del vero sito Web.


3

Hanno bisogno di un qualche tipo di manager.

In genere, le squadre sono suddivise in segmenti che non dovrebbero mai interferire tra loro (ultime parole famose). Ad esempio, se l'API foo dipende dagli helper delle persone che codificano in C, la rottura dovrebbe (mai accadere), ma in tal caso, accade perché l'app helper non capisce cosa le stai passando.

Questo è un caso classico della mano destra che non sa cosa sta facendo la mano sinistra, il che illustra chiaramente l'errore, che è probabilmente il mio.

Se invii il codice senza prima estrarre e risolvere le fusioni (mentre interrompi ciò che l'altro sviluppatore ha fatto semplicemente rimuovendo tutto ciò che non hai scritto), prima di comunicare con altri che modificano lo stesso, ti doserò ad alta tensione. Dopodiché, ti porterò a cena fuori (per fare ammende per 1,21 gigawatt) e ti assicurerò che ingerisci una sorta di cibo pazzo, disgustoso e piuttosto esotico. Pensa ... Klingon .

Mi ringrazierai per questo e non lo farai mai più.

Ovviamente potresti sostituire una sorta di normale "parlare con" qui, ma che divertimento è?


1

Probabilmente scoprirai che hanno sviluppatori che lavorano su pagine diverse. Generalmente viene creato un template o un site master in modo che ogni pagina abbia lo stesso aspetto grafico. Ad esempio, se la società utilizza il controllo del codice sorgente come Team Foundation Server, ogni sviluppatore controllerà il proprio codice sorgente e ciò consentirà agli altri sviluppatori di ottenere le ultime modifiche.


2
TFS è stato il massimo che potresti trovare per un esempio di un sistema di gestione del controllo del codice sorgente? Andiamo ora.
Matt Phillips,

1

Potrebbero o:

  • Programmare in un editor tramite una sessione SSH (ad es. Vi, vim, nano, emacs).
  • Modifica tramite FTP con il loro IDE (es. Emacs, annotato pad ++).
  • Utilizzando un sistema di controllo della versione.

Per l'ultimo, le persone ora usano il controllo della versione distribuita come mercurial , git e bazar , invece del controllo centralizzato della versione come CVS e sovversione. Per mercurial, controlla bitbucket.org e l' hosting di progetti di codice google , per git, controlla github , che sono siti che ospitano il codice per condividere in modo collaborativo senza la necessità di configurare un server.

Anche:


1

Sviluppo di pagine con componenti VS Pagine nel loro insieme

Ho lavorato su molti siti Web su larga scala e il modo in cui più persone lavorano sulla stessa pagina è che la maggior parte dei siti Web sono portali . In generale, molti siti come Facebook contengono molti controlli, come foto, annunci pubblicitari, piccole aree blurb, ecc., Su cui lavoreranno più persone. Inoltre, le intestazioni e i piè di pagina sono generalmente suddivisi nel loro file include riutilizzabile. Ciò suddivide il sito in componenti che non solo possono essere lavorati individualmente, ma possono anche essere riutilizzati su più siti e aree.


sai cos'è un portale web? (suggerimento, non è un mashup. pensa ai vecchi tempi di Yahoo)
Javier

Sì, stavo cercando di usare un esempio che mostra che una tecnica è quella di spezzare le pagine in componenti. Un buon esempio di ciò è un portale, tranne per il fatto che gli utenti possono inserire / disinserire i widget del portale, mentre la creazione di pagine utilizzando i componenti può essere solo dal lato sviluppo. I portali sono un buon esempio visivo.
Ryan Hayes,

0

È possibile utilizzare una sorta di sistema di sincronizzazione live come utilizza OneNote .... Inoltre, è possibile caricare file su un host ma non collegarli al dominio principale.


0

Non dimenticare che possono esistere anche sistemi di gestione dei contenuti che alcuni siti utilizzano per pubblicare contenuti in modo che, sebbene tu possa pensare che qualcosa sia una pagina Web, è davvero questo mix di cose.

Molti sistemi di gestione dei contenuti avranno una funzionalità di anteprima per consentire agli autori di visualizzare i contenuti prima di renderli accessibili al pubblico.


0

Tutti questi strumenti citati sono utili, ma per me sembra più che l'OP stia più chiedendo come le persone impediscono di mettersi sulla strada degli altri.

Oltre a utilizzare gli strumenti per risolvere tali conflitti, di solito c'è una divisione in pile o livelli per aiutare a evitare i conflitti in primo luogo.

Con l'approccio dello stack hai ogni persona che lavora su una funzione non correlata (una persona potrebbe fare la registrazione dell'account e una potrebbe essere l'invio di contenuti). Ci saranno alcuni conflitti in cui i due potrebbero incrociarsi (probabilmente i record utente in questo esempio) e che verranno gestiti come parte dell'unione alla build successiva.

Con l'approccio di livello qualcuno sta costruendo tutti i bit più intimi, quando ottengono una porzione finita un'altra persona scrive i bit che si trovano sopra quelli e così via. i conflitti generati qui sono di solito quando qualcosa deve essere riportato a un livello inferiore per qualche modifica successiva che potrebbe influenzare il livello successivo sopra e sono gestiti in modo simile prima della build successiva.

La parte relativa ai file promossi ma non attivi ha una grande varietà di risposte / implementazioni, ma un server separato su cui visualizzare l'anteprima, una modalità di anteprima specifica o una classe utente o un diritto che estrae la versione bleeding edge mentre gli utenti regolari ottengono la versione stabile quelli che tendo a vedere più spesso.


0

Per rispondere prima alla seconda parte, un modo per caricare i file senza renderli attivi è quello di dare loro un nome a cui non saranno collegati. Ad esempio, per creare una nuova versione di una index.htmlpagina, caricarla con il nome index2.html, quindi visitare http://yoursite.com/index2.htmle verificare che funzioni correttamente. Una volta che sei soddisfatto, rinominalo in index.html. Questo è davvero solo per siti molto piccoli e diventa un po 'disordinato se vuoi cambiare qualcosa di esterno alla pagina, come immagini, file CSS o JavaScript, perché devi avere image2.png, quindi la index2.htmlcui unica differenza è che punta al nuova immagine.

Un programmatore professionista dovrebbe sempre avere un sistema di prova su cui lavorare, quindi caricarlo sul proprio "host online" quando sarà soddisfatto delle modifiche. Puoi configurare un server web sul tuo computer che servirà solo le pagine all'interno della tua rete locale. Ovviamente potresti anche usare un computer separato o (come faccio io) una macchina virtuale in esecuzione sul tuo computer principale.

Quando più sviluppatori lavorano insieme, ognuno avrebbe il proprio sistema di test su cui lavorare, quindi caricare le proprie modifiche su un sistema di controllo della versione che tiene traccia di tutte le modifiche di tutte le diverse persone. Vedi la parabola git per come funziona.

Il sistema di controllo della versione consente di vedere facilmente chi ha cambiato cosa e perché. Questo può essere verificato da chiunque sia responsabile, quindi unirlo al master e consegnarlo al dipartimento testing / QA. Dopo aver testato completamente le nuove funzionalità, lo approveranno per il caricamento sul sito live.


0

La prima cosa da stabilire è che molti siti non sono una raccolta di pagine statiche su cui lavorano una o più persone.

Le pagine che vedi come visitatore non esistono sul sito Web per apportare modifiche in quanto in tali siti vengono automaticamente assemblate al volo da un sistema di gestione dei contenuti - software in esecuzione sul server di hosting, utilizzando i contenuti che il sito Web i proprietari hanno prodotto. Il CMS assembla la pagina dal contenuto disposto utilizzando i file modello (file di configurazione CSS e CMS) e la pagina risultante viene visualizzata nel browser.

I proprietari del sito apportano modifiche al contenuto e ai modelli di layout anziché alle pagine statiche. Partendo da ciò la tua risposta dipende dal tipo di cambiamento e dal ruolo della persona che lo sta facendo:

  1. un utente pubblico del sito , che pubblica un blog o un commento
  2. se si sta modificando il contenuto del sito (ruolo di produttore del contenuto, ad esempio giornalista che lavora per il proprietario del sito Web) o
  3. aggiunta e modifica della funzionalità del sito (sviluppatore del sito che lavora per il proprietario del sito).

Drupal è un sistema di gestione dei contenuti gratuito e potente che fornisce la gestione multiutente per gestire gli aggiornamenti dei contenuti che a sua volta influisce su ciò che i visitatori vedono sulle pagine. Drupal fornirà anche mezzi per alterare il comportamento delle pagine, ad esempio come sono disposte o se è possibile pubblicare gli articoli su un articolo, affrontando il 1o e il 2o tipo di modifica. Se si eseguono le modifiche in Drupal, queste verranno archiviate in un database SQL. Drupal fornisce alcuni controlli di versione / revisione dei contenuti.

È necessario un sistema di controllo della versione completa per modifiche del comportamento del sito più coinvolte, il terzo tipo di modifica, ad esempio l'introduzione di più funzionalità, la ricezione di aggiornamenti da Drupal o la correzione di bug sul proprio codice aggiunto, quindi questo significa cambiare il codice e come altri hanno pubblicato qui. I sistemi di controllo della versione come GIT, Subversion o Mercurial - tutti gratuiti - vengono utilizzati per gestire le modifiche apportate da diversi sviluppatori del sito.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.