Dovremmo sempre creare applicazioni web scalabili? [chiuso]

2

Fatto che ora tutti passano al cloud grazie alla facilità di scalabilità, configurazione e manutenzione.

Ma la mia domanda è: dovremmo sviluppare tutto l'evento scalabile per applicazioni web se non è richiesto? Se un'applicazione ha un budget basso senza requisiti speciali di questo tipo, perché dovremmo aggiungere ulteriori sforzi per renderlo più flessibile?

Ci sono molti fattori da considerare mentre rendi scalabile l'applicazione. Se il client non ha requisiti specifici, la piccola applicazione contiene 3-4 moduli, il budget del client è basso e viene utilizzato sui server locali.

Per rendere l'applicazione scalabile, dobbiamo assicurarci di sessione, file IO, memorizzazione nella cache ecc ...

    
posta Ruchir Shah 09.07.2014 - 09:18
fonte

2 risposte

5

È difficile immaginare una situazione in cui la scalabilità non è abbastanza importante da tenere in considerazione quando si costruisce un'applicazione Web, tuttavia, immagino che potrebbe accadere. Se stai facendo un'applicazione web per provare nuove tecnologie, non è necessario che sia "pronta per la produzione". Allo stesso modo, se sai che questa sarà un'applicazione web utilizzata da pochi che non è probabile che cresca, allora la scalabilità sarebbe in basso nell'elenco delle priorità.

Tuttavia, se il client non ha specificato esplicitamente, potrebbe essere perché A) non è importante per il client o B) il client non sa nemmeno cosa sia la "scalabilità" e quindi non lo ha specificato.

Nel caso di A, non ci sono problemi lì. Tuttavia, nel caso di B, dovrebbe essere tua responsabilità verificare se la scalabilità è, in effetti, un problema. Anche se il budget è basso e pensi che possa essere abbastanza ovvio, dovresti chiarirlo. Rendilo più caro, qualunque cosa tu voglia, tuttavia almeno entrambe le parti sono d'accordo. Se il cliente si aspetta che un'applicazione web funzioni altrettanto bene con 1 utente come con un milione di utenti, non andrà a finire bene per lui e, in definitiva, anche per te.

Esistono alcune pratiche di programmazione che migliorano la scalabilità e non comportano gravi problemi, a meno di impiegare un po 'più di tempo per implementare (la memorizzazione nella cache di richieste comuni, la riduzione dell'utilizzo dei dati di sessione, il pool di connessioni al database). Per questi, vi incoraggio a sempre a prendere la via più lunga indipendentemente dal fatto che il client valuti o meno la scalabilità. Questo ti rende un programmatore migliore e ti aiuta a pensare nella mentalità di sforzarti sempre di scrivere un programma migliore. Questo è solo il mio 10 centesimi però.

    
risposta data 09.07.2014 - 09:49
fonte
3

Come sempre in questi casi si applica YAGNI (non ne hai bisogno) e KISS (Keep It Simple Stupid).

In altre parole, mantieni la tua applicazione il più semplice possibile e aggiungi solo le funzionalità che sono attualmente necessarie (non aggiungere funzionalità che potrebbero essere necessarie in futuro).

I sistemi semplici sono più facili da sviluppare, più facili da mantenere e sono spesso facili da scalare.

    
risposta data 09.07.2014 - 10:16
fonte