Non c'è dubbio che dovremmo codificare le nostre applicazioni per proteggersi da utenti malintenzionati, curiosi e/o incuranti, ma che dire dei colleghi attuali e/o futuri?Dovresti programmare per proteggere la tua applicazione da programmatori sbagliati?
Ad esempio, sto scrivendo un'API basata sul Web che accetta parametri dall'utente. Alcuni di questi parametri possono essere associati a valori in un file di configurazione. Se l'utente crea problemi con l'URL e fornisce un valore non valido per il parametro, la mia applicazione effettuerebbe un errore quando provava a leggere da quella sezione del file di configurazione che non esiste. Quindi, naturalmente, scrub i parametri prima di provare a leggere dal file di configurazione.
Ora, se in fondo alla strada, un altro sviluppatore lavora su questa applicazione, aggiunge un altro valore valido per questo parametro che passerebbe il processo di lavaggio, ma non aggiunge la sezione corrispondente al file di configurazione. Ricorda, sto solo proteggendo l'app da cattivi utenti, non da programmatori malvagi. La mia richiesta fallirebbe.
Da un lato, so che tutti i cambiamenti dovrebbero essere testati prima di passare alla produzione e qualcosa del genere sarebbe senza dubbio in una sessione di test decente, ma d'altra parte, provo a costruire le mie applicazioni per resistere al fallimento come il migliore possibile Semplicemente non so se è "giusto" includere la modifica del mio codice da parte dei colleghi nell'elenco dei potenziali punti di errore.
Per questo progetto, ho deciso di non verificare se esistesse la sezione pertinente del file di configurazione. Come sviluppatore corrente, non consentirei all'utente di specificare un valore di parametro che causerebbe un errore, quindi mi aspetterei che un futuro sviluppatore non introduca un comportamento in un ambiente di produzione che potrebbe causare un errore ... o almeno eliminare tale caso durante il test.
Cosa ne pensi?
Pigro ... o filosoficamente valido?
perché questo wiki della comunità? – marcgg
Perché c'è un tag wiki della comunità? –
a volte ha senso :) http://meta.stackexchange.com/questions/11740/what-are-community-wiki-posts-on-stack-overflow – marcgg