2011-02-08 11 views
7

Lavoriamo sulla piattaforma Magento ei nostri sviluppatori front-end lavorano tutti sullo stesso foglio di stile CSS. Ci sono molti stili esistenti che vengono con questo foglio di stile. Il più delle volte dico loro di aggiungere altri stili in fondo per semplificare la fusione e tutto il resto. Questo non funziona sempre quando vuoi mettere determinati stili con selettori già esistenti nel foglio di stile.Qual è il tuo metodo di lavoro con un singolo file CSS in un grande team e controllo di versione

Sembra che ci siano molti problemi con gli sviluppatori che non gestiscono correttamente i conflitti e ignorano il codice di altre persone. Ovviamente è sempre meglio provare e lavorare sui file quando si conoscono gli altri con cui è fatto per ridurre la possibilità di conflitti, ma ovviamente se c'è più di uno sviluppatore che lavora su un sito e c'è solo un file CSS che sta per incorrere in molti conflitti

Sono alla ricerca di modi in cui altre persone gestiscono questo e alcune idee su come minimizzare al meglio la quantità di conflitti che questi sviluppatori hanno.

risposta

12
  1. Non disporre di un singolo file CSS. Avere un gruppo di piccoli file CSS che vengono uniti e ridotti in un unico file per l'implementazione ma che separano logicamente gli stili durante lo sviluppo.

    Come suggerito da @JosephMastey di seguito, personalmente separo un file per pagina in stile diverso del sito. All'interno dei fogli di stile tendo a ordinare selettori da più generale a più specifici e selettori di gruppo insieme (ad esempio tutti i selettori table#foo ... sono contigui).

  2. Utilizzare un sistema di controllo della versione sensato come Git che non richiede di estrarre o bloccare i file, ma consente invece le modifiche simultanee con unioni intelligenti.

    Modifica: E ad un certo punto ti sei allenato e ti fidi dei tuoi sviluppatori. L'unico metodo che alla fine sarà di aiuto con gli sviluppatori che ripetutamente eseguono il lavoro degli altri e unendo le loro modifiche in modo errato sta insegnando loro a non farlo.

+0

Ho pensato di far usare a tutti gli sviluppatori il proprio foglio di stile. Potrei andare con quello, attualmente in questo momento stiamo attaccando con SVN. –

+3

@ dan.codes: Subversion è abbastanza sano per quello che stai facendo, ma stai sconfiggendo lo scopo del controllo di revisione se ogni sviluppatore ha il proprio file CSS, cosa faresti quando verrà il momento di unirli? –

+0

@mu è troppo corto, hai ragione e penso che potrebbe essere il motivo per cui ho deciso di non farlo. Quindi cosa fai in modo che le persone non commettano errori se non sono fantastici con SVN? –

4

La possibilità di conflitti di modifica aumenta notevolmente se tutti modificano la stessa parte del file (ovvero la fine).

Direi che il CSS va dove va naturalmente. Se qualcuno sta modificando una parte e qualcun altro sta modificando un'intera sezione, qualsiasi sistema di controllo di revisione decente fonderà automaticamente la maggior parte delle modifiche quando qualcuno aggiornerà e ci saranno meno conflitti.

+0

Immagino di non averlo pensato in termini di aggiunta di elementi in fondo. Ho appena immaginato che le persone potessero facilmente dire cosa sarebbe stato necessario nella fusione del conflitto. –

+0

@dan: basta una persona che non sa come risolvere i conflitti correttamente per rovinare tutto. Meglio ridurre la possibilità di conflitti che fidarsi di tutti per sapere come risolverli, IMO. – cHao

1

Concordo sul sentimento "Non avere un singolo file CSS". I moduli Magento possono avere ciascuno il proprio foglio di stile, e ovviamente si separano già compiti non collegati in moduli indipendenti, vero? Preferirei che Magento venisse con fogli separati per catalogo, checkout, cliente, ecc. Ma purtroppo non lo è, dovrai farlo tu stesso e magari preparare un tema vuoto con loro.

Non ha senso scomporlo secondo gli sviluppatori. Gli sviluppatori vanno e vengono e vengono assegnati compiti diversi.

Magento include anche la fusione di CSS & JS in modo da non doverti preoccupare di avere molti fogli. C'è anche Fooman Speedster e mod_pagespeed.

+0

Sì, penso che sto per proporre di avere fogli diversi per diverse sezioni dei siti, è così che normalmente vorrei costruire un sito da zero comunque –

1

In base alla mia esperienza, un singolo sviluppatore dovrebbe lavorare al progetto fino a quando non maturi abbastanza da consentire un aiuto esterno.Quel singolo sviluppatore dovrebbe impostare le linee guida e gli stili standard da utilizzare in tutta l'applicazione, in modo che le persone non debbano aggiungere un nuovo stile per ogni elemento. Prova a fare in modo che lo sviluppatore iniziale riveda tutte le nuove modifiche al foglio di stile non appena vengono aggiunte inizialmente al repository, in modo che gli sviluppatori che sono nuovi al progetto siano a conoscenza delle classi di utilità o delle convenzioni esistenti.

Sarebbe anche utile se si ha un qualche tipo di tema stock sistema che si avvia sempre con - in questo modo la gente conoscere il punteggio all'inizio di ogni progetto e non hanno alcuna scusa per rovinare il vostro CSS organizzato :)

Come sottolinea @cHao, quando viene coinvolto un intero gruppo di sviluppatori, assicurarsi che non aggiungano mai direttamente alla fine del file. Questa è la principale causa di conflitto che sperimentiamo e può essere facilmente evitata.

Problemi correlati