Questa scomoda spaziatura è un tipo di stile?


9

Nel leggere un altro codice programmatori, usa un formato che non ho mai visto. PER ESEMPIO

    namespace MyNs.HereWeAre
         {//tab here for some reason
         public class SomeClass
               {//here's another tab
               public string Method()
                    {//yet another tab
                    string _variable = "";//no tab implementation
                    return _variable;
                    }
               }//eof - class  (Yes these eof comments are on every file)
        }//eof - namespace
// eof - file

Lo ammetto ... questo codice mi fa arrabbiare. È difficile ottenere questo stile. È necessario combattere la formattazione predefinita fornita dall'IDE, Visual Studio.

Potrei ingoiare questa pillola un po 'più facilmente se sapessi che c'era una buona ragione per questo stile. Questo stile deriva da qualche altro linguaggio di programmazione / IDE?


5
Questo è solo bizzarro. Nei miei 18 anni di sviluppo, non ho mai visto quella convenzione.
17 del 26

5
Se dovessi indovinare, direi che il programmatore è un convertito di Python che è leggermente turbato dal bisogno di parentesi graffe ed è abituato a rientrare in tutti i sub-token della sintassi.
Telastyn,

21
CTRL K + CTRL D!
RYFN,

2
@Zeus - Oh mio Dio che mi farà risparmiare così tanto tempo a risolvere questa formattazione non convenzionale !! Dovresti ottenere alcuni punti di risposta per questo.
P.Brian.Mackey,

1
Quella scorciatoia di riformattazione (Ctrl K + Ctrl D) funziona anche su file HTML e altri formati in Visual Studio.
Oded,

Risposte:


19

Sì: http://en.wikipedia.org/wiki/Indent_style#Whitesmiths_style

Lo stile Whitesmiths, chiamato anche stile Wishart in misura minore, oggi è meno comune ... Era originariamente utilizzato nella documentazione per il primo compilatore commerciale C, il Whitesmiths Compiler . Era anche popolare nei primi tempi di Windows, poiché era utilizzato in tre influenti libri di programmazione Windows, Guida del programmatore a Windows di Durant, Carlson & Yao, Programmazione di Windows da Petzold e Tecniche di programmazione energetica di Windows 3.0 di Norton & Yao .. .

Questo stile inserisce il rientro associato a un'istruzione control nella riga successiva. Le dichiarazioni all'interno delle parentesi graffe sono rientrate allo stesso livello delle parentesi graffe ...

I vantaggi di questo stile sono simili a quelli dello stile Allman in quanto i blocchi sono chiaramente distinti dalle dichiarazioni di controllo. Tuttavia, con lo stile Whitesmiths, il blocco è ancora visivamente collegato alla sua istruzione di controllo invece di sembrare un blocco di codice non correlato circondato da spazi bianchi. Un altro vantaggio è che l'allineamento delle parentesi graffe con il blocco sottolinea il fatto che l'intero blocco è concettualmente (oltre che a livello di programmazione) una singola istruzione composta. Inoltre, il rientro delle parentesi graffe sottolinea che sono subordinate alla dichiarazione di controllo.

Uno svantaggio suggerito di questo stile è che la parentesi finale non si allinea più con l'affermazione a cui concettualmente appartiene. Tuttavia, la parentesi graffa di chiusura appartiene alla parentesi graffa di apertura e non alla dichiarazione di controllo ...

È uno che non ho mai visto praticato, grazie a IPU.

Eclipse ha uno stile di codice Whitesmith incorporato per c ++ ... potresti essere fregato con Java poiché tutti dovrebbero usare lo stesso stile in quella lingua.


4
oh um cosa significa "grazie all'IPU"? Google non me lo dirà ...
Amara,


Lo stile dei bianchi non include le schede alla fine di una riga. Le schede ovunque tranne all'inizio di una riga sono malvagie e devono essere uccise con il fuoco.
tdammers,

6

Mentre lo stile di codifica del tuo collega è bizzarro, brutto e difficile da leggere:

  1. se non hai standard di codifica, la loro formattazione è valida come una qualsiasi.

  2. se riformatti il ​​loro codice ogni volta che tocchi un file scritto da loro, troverai molto difficile tenere traccia delle modifiche - se esegui un diff usando il tuo VCS, allora molte se non tutte le righe di codice saranno cambiate.

Questo è il motivo per cui dovresti avere standard di codifica, rende più facile per tutti sapere cosa dovrebbero fare e più facile giustificare la riformattazione se non si sono attenuti ad esso.

Se lavorano ancora nella tua azienda, hai provato a parlarne?


Questa persona è ormai lontana dal mio tempo. Ora seguiamo le linee guida per la progettazione di Microsoft Framework.
P.Brian.Mackey,

9
In tal caso, ti consiglio di controllare la riformattazione del codice come check-in separato (ad esempio, Ctrl K + Ctrl D) prima di apportare modifiche (per rendere più facile tenere traccia di quella specifica modifica).
Brian,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.