Consenti al codice del livello presentazione di essere implementato al di fuori di un ciclo di build?

4

Per qualsiasi progetto web standard, avrai come codice del server il codice lato server, le pagine server, i file JavaScript e CSS. È pratica piuttosto comune per il codice lato server avere una suite di test e un processo di creazione script per compilare / pacchettizzare / distribuire il codice. Generalmente le build vanno in ordine dopo che il codice è stato testato e convalidato in un ambiente QA.

D'altra parte, abbiamo spesso dei requisiti per poter spingere le risorse del codice del livello di presentazione a volontà. Dal momento che non richiedono la compilazione o il riavvio, ciò è fattibile, ma sono convinto che questo codice sia accoppiato al codice lato server ed è altrettanto probabile che distrugga l'intero sito se è danneggiato. Pertanto, non dovrebbe mai essere inserito al di fuori di un ciclo di build.

Quali sono le migliori pratiche per questo?

    
posta jiggy 25.05.2011 - 16:42
fonte

3 risposte

4

NO!

Usiamo C # + ASP.net al lavoro e qui ci sono i motivi per cui no (si applicheranno anche ad altri tech, ma immagino in un formato leggermente diverso):

Cosa succede se l'interfaccia utente fa riferimento a un controllo che non esiste?

-Big Yellow Exception.

Cosa succede se l'interfaccia utente fa riferimento a un assembly che non esiste?

-Big Yellow Exception.

Che succede se un file JS ha un codice che fa riferimento a un elemento DOM specifico che non c'è?

-JavaScript Exception.

Puoi vedere lo schema qui!

Ad ogni modo, perché vorresti eseguire una distribuzione parziale? Usiamo il nostro server CI (TeamCity) per generare artefatti di build per la distribuzione, ovvero un sito Web completo precompilato precompilato in un file zip che viene semplicemente estratto sopra quello precedente. In questo modo, qualsiasi modifica a config / js / css / images / qualsiasi deve passare attraverso il controllo della versione, quindi c'è anche meno probabilità che qualcosa vada storto.

    
risposta data 25.05.2011 - 16:51
fonte
4

Non mi interessa quale parte della conversazione il codice / template / immagine / qualunque cosa sia attiva. Se fa parte del sistema, fa parte del sistema e deve essere gestito e distribuito come qualsiasi altra cosa.

Nota: questo è distinto da contenuto generato dall'utente che è supportato dal sistema. Anche questo potrebbe essere controllato dalla versione, ma esiste in una dimensione diversa dai componenti del sistema.

    
risposta data 25.05.2011 - 17:48
fonte
3

No.

Il codice di presentazione è comunque il codice. Solo perché è interpretato piuttosto che compilato non significa che dovrebbe avere un pass gratuito per salvare il processo di compilazione.

Come garantisci che gli sviluppatori si assicurino di duplicare queste modifiche nel controllo del codice sorgente? L'ambiente live dovrebbe corrispondere al codice rilasciato dal controllo del codice sorgente.

Se si usa l'abitudine di apportare queste piccole modifiche innocue, i bug inizieranno a manifestarsi.

    
risposta data 25.05.2011 - 18:07
fonte

Leggi altre domande sui tag