Dovrei evitare di usare spazi nei miei nomi di file?

1

A volte trovo programmatori esperti che eviteranno attivamente di usare spazi nei loro nomi di file, scegliendo di usare underscore o camelCase .

(cioè /org map/attach jobs.cpp vs /org_map/attach_jobs.cpp vs /orgMap/attachJobs.cpp )

Da quello che ho capito, questo è stato originariamente fatto su vecchi sistemi che avevano restrizioni più severe sui nomi dei file. Ma i computer moderni non sembrano avere problemi con gli spazi.

Perché alcuni sviluppatori evitano di usare spazi nei nomi dei file? È una pratica di progettazione che dovrei prendere in considerazione per i miei progetti?

    
posta Steven M. Vascellaro 18.08.2017 - 21:39
fonte

3 risposte

7

Gli spazi nei nomi di file non presentano alcun problema, tranne quando lo sono. Il problema è che molte parti della toolchain di compilazione sono scriptate, spesso con più livelli di linguaggi di scripting e espansione variabile accatastati l'uno sull'altro.

L'esempio più importante è uno script di shell come parte di un Makefile, che è forse generato da un modello M4 (autotools ...), che può eseguire script di shell per determinare i percorsi. È possibile, ma abbastanza doloroso, gestire gli spazi correttamente nella shell POSIX in quasi tutte le circostanze: invece di foo $bar $baz dovresti scrivere foo "$bar" "$baz" . Generalmente non è possibile farlo nei Makefile. È estremamente complicato gestire lo spazio che sfugge correttamente su più livelli di linguaggi di scripting.

Quindi, se esiste la possibilità che il tuo programma sia compilato da un sistema di build basato su Makefile, non utilizzare spazi nei nomi dei file. Questo dovrebbe essere facile da fare poiché il nome del file dovrebbe indicare il contenuto del file e nella maggior parte degli linguaggi di programmazione gli identificatori non possono contenere spazi. In C ++, basta nominare il file dopo lo spazio dei nomi o la classe più importante che contiene.

    
risposta data 18.08.2017 - 22:28
fonte
4

Ogni spazio sui sistemi * nix deve essere citato. Ciò significa che quando vuoi eseguire vi /tmp/my file.cpp devi aggiungere \ per mascherare lo spazio, quindi il comando sembra vi /tmp/my\ file.cpp .

Sulle macchine Windows non è un problema, poiché quando si usa cmd o console di PowerShell esso maschera automaticamente lo spazio nel nome file (quando si utilizza il completamento automatico nella riga di comando).

Personalmente, non uso spazi nei miei nomi di file in nessun progetto e in realtà non lo consiglio.

È probabile che alcuni sistemi / programmi di build siano in esecuzione su sistemi * nix (Jenkins, make) possono avere problemi quando si carica un file con lo spazio all'interno del nome - quindi, build fallisce.

    
risposta data 18.08.2017 - 21:54
fonte
3

Non appena sono coinvolti degli script, lo sviluppatore deve essere sicuro al 100% che i propri script gestiscano nomi di file, inclusi spazi o altri caratteri rilevanti per uno script.

Avere nomi di file con spazi potrebbe interrompere gli script. Solo gli script sono già stati risolti, ovviamente, ma comunque ti costerà del tempo per farlo bene. Alcune persone hanno avuto brutte esperienze con script non funzionanti, e quindi evitano di far fallire le cose.

D'altra parte, se crei cose come un programma di installazione, che verrà eseguito nell'ambiente di un utente, è meglio considerare che "/ / / / / /" è un percorso perfettamente valido per una directory e assicurati che il tuo lo gestisce.

    
risposta data 18.08.2017 - 22:05
fonte

Leggi altre domande sui tag