Perché usiamo le notazioni ungheresi sulla variabile locale ma non sulla funzione o sulla variabile globale? [chiuso]

0

Questo non sembra avere senso.

Nella variabile locale, in qualche modo conosciamo il tipo. È locale. Ci stiamo lavorando.

Tuttavia, nel nome della funzione o nella variabile globale, la definizione è molto lontana su altri file. Sembra che le notazioni ungheresi abbiano molto più senso lì.

Ad esempio, in ogg-c ho usato questo

+(CGFloat) fHeightOfNavigationController

Quindi, quando voglio conoscere l'altezza del controller di navigazione, dovrò premere un pulsante che specifichi la funzione.

Qual è il pulsante? Qual è il nome della funzione. E 'heightOfNavigationController? È NavigationControllerHeight? È navHeight?

Non so quale lettera dovrei digitare prima per attivare il completamento automatico. Ma so che la funzione è mobile.

Quindi scrivo solo f ...

Tada ... Ho ottenuto fHeightOfNavigationController in completamento automatico.

Eppure non credo che questo sia il modo in cui la maggior parte delle persone usa la notazione ungherese.

Perché?

    
posta user114310 12.03.2014 - 09:18
fonte

2 risposte

4

Ungherese non è più usato molto per vari motivi, soprattutto il software di completamento del codice risolve la maggior parte dei problemi ungheresi volti a risolvere.

anche ungherese nel suo formato originale (app ungherese) ha specificato l'uso della variabile invece del solo tipo (sistemi ungherese). Significa che le coordinate del cursore del mouse sullo schermo sarebbero scrXmouse e scrYmouse invece di imouseX e imouseY .

Una funzione per trasformarla in vista locale potrebbe quindi essere chiamata translateScrXScrY2LocXLocY(int srcX, int scrY, int* locX, int* locY); , quindi puoi vedere immediatamente quando hai fatto un errore in ordine variabile

    
risposta data 12.03.2014 - 09:54
fonte
1

Le persone non usano più la notazione ungherese, è una buona idea che ha avuto il suo giorno.

Tutti conoscono il problema con l'ungherese - a parte il fatto che i tuoi nomi sono confusi con un codice speciale - se cambi qualcosa, devi anche cambiare il nome per abbinarlo. Quindi se hai una funzione chiamata iGetCustomer e un giorno vuoi tornare più di un intero, devi cambiare ovunque la funzione è chiamata a essere cstGetCustomer che è solo una seccatura. (anche se, ovviamente, devi cambiare ovunque sia comunque usato come hai cambiato il tipo di ritorno!)

Tuttavia, è solo una di quelle cose di moda, nessuno la usa più, invece usano una forma di codifica dei nomi in cui alcuni tipi sono annotati in modo diverso (ad esempio interfacce con prefisso I, classi di eccezioni con suffisso "Eccezione" ecc.).

WRT intellisense, molte persone digitano this. e poi lasciano che il sistema presenti una lista da cui scegliere. Se si nomina anche in base alla funzione anziché al tipo restituito, è possibile raggruppare le proprie funzioni (ad esempio, GetX, GetY, ecc appariranno tutte insieme mentre iGetX e fGetY non lo faranno).

    
risposta data 12.03.2014 - 09:42
fonte

Leggi altre domande sui tag