Qual è l'infrastruttura e il ciclo di rilascio appropriati per lo sviluppo e il test di un'applicazione? [chiuso]

2

Sto sviluppando un'applicazione web per i miei colleghi, e da una piccola app di gestione sta diventando un progetto più intenso e intenso che coinvolge più persone mentre vado. Sono abbastanza sicuro che il mio capo mi chiederà di aggiungere ancora di più come andrò avanti.

Quindi sono diventato insicuro se sto facendo le cose per bene, perché non ho mai lavorato a progetti di grandi dimensioni (in realtà questo è il mio primo lavoro).

La webapp su cui sto lavorando viene utilizzata dalla mia azienda, quindi non posso apportare modifiche e modifiche mentre ci lavorano; Li esporrò ovviamente ad alcuni bug e problemi ux che potrebbero essere mortali, come l'aggiunta di dati errati nei database ecc ecc. Ecc.

Quindi negli ultimi mesi ho "diviso" la mia applicazione web in due directory; uno è il index.php principale in cui lavorano, l'altro è la directory "sviluppo", nello stesso server, che viene utilizzato solo da me.

Quando termino tutte le modifiche e le modifiche, sposto tutto nella directory di sviluppo nella directory principale utilizzata dai miei colleghi.

Ma mi chiedo: questo è un modo corretto per sviluppare e testare le web app? Ultimamente sono stato colto in termini come "sviluppo continuo basato su test, test unitari, sviluppo sandbox, ecc." inoltre, apportare piccole modifiche al mio codice e caricarlo ogni volta per vedere cosa succede non mi sembra molto professionale per me.

Quindi, come posso capire se questo è un modo corretto per sviluppare applicazioni web? Non sono nemmeno sicuro di aver bisogno di tutti questi test, visto che sono l'unico webdev qui.

So che questo può essere "troppo ampio", ma non conosco altri modi per chiedere una cosa del genere poiché conosco solo alcune cose sullo sviluppo del web su più vasta scala. Questo è qualcosa che potrebbe essere risolto da un architetto del software, ad esempio, o da un web dev senior, ma io sono l'unico web dev qui.

    
posta MarkWuji 07.03.2016 - 10:47
fonte

1 risposta

2

In un buon ambiente, avresti tre arene separate. Ognuno con il proprio database, in modo da poter lavorare senza paura di distruggere i dati di produzione.

  1. Local Dev
    • Nulla lascia la tua postazione di lavoro locale.
  2. Prova
    • Qui caricate le modifiche quando pensate di essere testate da un utente aziendale. fai fai testare le tue modifiche prima che entrino in produzione, giusto? (A proposito, questo è chiamato UAT [Test di accettazione degli utenti]).
  3. Produzione

Più questi ambienti sono separati, meglio sarà. Avere ambienti separati rende impossibile rompere involontariamente prod mentre si sta sviluppando. Gli ambienti Test / Dev sono "in modalità sandbox" lontano da dove le modifiche apportate non possono danneggiare i dati di produzione. Preferibilmente, Test non vive sullo stesso server di Prod. (Ne ho persino visto alcuni metterli in un dominio NT completamente diverso, ma questo è IMO eccessivo.) Avere ambienti Dev / Test separati è bello perché ti dà l'opportunità di mettere in pratica la tua strategia di implementazione.

Detto questo, puoi assolutamente fare a meno di avere solo 2, un Dev / Test e Prod. Non è l'ideale, ma l'ho fatto funzionare in passato.

TL; DR: 3 ambienti che non possono parlare tra loro. Dev, Test, Prod.

Per quanto riguarda i test automatici, ti incoraggio vivamente a guardare alcuni tutorial e a esercitarti un po '. Sono certamente uno zelot del TDD, ma gli studi hanno dimostrato che riduce il numero di bug che lo rendono in produzione, dove il loro fixing è di ordini di grandezza più costosi, mentre costa solo tra il 15-30% del tempo di ciclo (tempo di consegna ). Vale la pena investire a mio modesto parere.

Una nota personale ...

Non rimanere a questo lavoro a lungo. Prepara il tuo curriculum e vai a cercare un'azienda che investirà in te come sviluppatore. Più a lungo lavori senza il mentorato di uno sviluppatore esperto, più si formeranno le cattive abitudini. Lavorare con persone esperte ti aiuterà a evitare molti degli errori che farai imparando tutto da solo.

    
risposta data 07.03.2016 - 12:56
fonte