Che cosa è successo a questo tipo di convenzione di denominazione? [chiuso]

3

Ho letto così tanti documenti sulle convenzioni di denominazione, la maggior parte raccomandando le convenzioni di denominazione Pascal e Camel. Bene, sono d'accordo, va bene. Questo potrebbe non essere gradito ad alcuni, ma sto solo cercando di ottenere la tua opinione sul perché tu dai il nome ai tuoi oggetti e classi in un certo modo.

Che cosa è successo a questo tipo di convenzioni di denominazione e / o perché sono cattivi?

Voglio nominare una struttura e la prefisso con "struct". La mia ragione è che, con IntelliSense, vedo tutte le strutture in un posto, e ovunque vedo il prefisso della struct, so che è una "struct":

structPerson
structPosition

un altro esempio è l'enum, anche se non posso prefisso con "enum", ma forse con "enm":

enmFruits
enmSex

di nuovo la mia ragione è che in IntelliSense, vedo tutte le mie enumerazioni in un unico posto.

Poiché .NET ha così tante strutture dati integrate, penso che questo mi aiuti a fare meno ricerche. Nota che ho usato .NET in questo esempio, ma accolgo con favore le risposte agnostiche della lingua.

    
posta Smith 16.11.2011 - 23:14
fonte

5 risposte

11

Joel ha scritto un buon articolo su questo

Rendere errato il codice errato

In breve, si desidera utilizzare la notazione App Ungherese, non Sistemi ungherese.

Perché davvero, a chi importa se si tratta di un int, o di un lungo, o qualsiasi altra cosa, tutto quello che mi interessa è il "tipo" di valore, non è il tipo.

    
risposta data 16.11.2011 - 23:28
fonte
4

Questa è una notazione ungherese. È ancora usato ma molto meno ora nelle lingue in cui l'IDE ti aiuta con i tipi. (es. C # Java). In quelle lingue l'informazione fornita dal prefisso è già fornita dall'IDE, quindi non è più necessaria.

    
risposta data 16.11.2011 - 23:28
fonte
2

Il "tipo" di tipi non dovrebbe avere importanza. class , struct e enum sono solo mediocri rispetto alla definizione - non dovresti usare qualcosa di diverso solo perché è un struct e non un class , né dovresti riferirti ad esso come uno.

Penso che il modo più ragionevole di usare "notazione ungherese" sia quello di separare solo i tipi dalle funzioni:

  • types
  • instances of types
  • functions
risposta data 16.11.2011 - 23:36
fonte
2

Se i tipi hanno nomi appropriati nel dominio dell'applicazione, la rappresentazione sottostante non è importante. Preferisco di gran lunga il codice che legge sia in prosa che in matematica. In inglese diciamo "Post Office", non "officePost", quindi preferisco "EmailService" a "serviceEmail".

    
risposta data 17.11.2011 - 02:45
fonte
1

Nei linguaggi di programmazione orientati agli oggetti, questa "nozione dei sistemi ungheresi" non ha praticamente alcun posto. Considera le lingue in cui tutto è un oggetto. A ragione puoi usare un prefisso come "obj" per ogni variabile, dato che tutto è un oggetto . Ma anche se usi "int" e "dbl" per le variabili intero e doppio, per quanto riguarda le zillioni di altri oggetti? Vuoi inventare un prefisso per ogni classe del tuo programma e tutte le librerie che usa? Oppure useresti un prefisso completamente privo di significato come "obj"? Nessuna delle due opzioni ha molto senso.

    
risposta data 17.11.2011 - 08:58
fonte

Leggi altre domande sui tag