Questa è la prima volta che consegnerò il codice per un progetto freelance (web-app) e, poiché non ho un codice di spedizione molto esperto, sto avendo difficoltà a decidere se il mio programma è pronto per l'implementazione oppure no.
La mia comprensione è che un codice a livello di produzione deve avere le seguenti caratteristiche:
- Tolleranza ai guasti : capacità di sopravvivere alle eccezioni non rilevate
- Ridondanza dei dati : non perdere mai i dati utente
- Scalabilità : la gestione del carico aggiuntivo non richiede la riscrittura dell'app
- Copertura del test : una quantità "decente" di codice testato
Alcune di queste caratteristiche sono specifiche del programma stesso, mentre altre sono più legate all'ambiente (se si utilizzano più cluster). Tuttavia, anche le caratteristiche dipendenti dall'ambiente influiscono sul modo in cui il programma è progettato.
La mia domanda allora è: quali sono le altre caratteristiche che rendono il codice di produzione così diverso dal codice non destinato alla produzione?
Per ridurre l'ambito della domanda, concentrati solo su app web .
Modifica : cercherò di restringere l'ambito chiedendo caratteristiche specifiche della mia situazione. Come libero professionista, ero responsabile di tutto, dall'acquisto di un VPS, alla sua configurazione, alla scrittura del codice, alla sua distribuzione. Sebbene il progetto e la sua configurazione siano ben documentati, il cliente non sarà in grado di mantenerlo. L'app non è complessa, ma dipende da molti componenti esterni, il che rende molto facile rompere se questi componenti cambiano / scompaiono. L'obiettivo è quello di creare un servizio che possa durare il più a lungo possibile senza l'intervento del cliente.