Domanda

Esistono molti stili diversi di nomi di variabili che ho riscontrato negli anni.

L'attuale voce di Wikipedia sulle convenzioni di denominazione è abbastanza leggera ...

Mi piacerebbe vedere un catalogo conciso di convenzioni di denominazione variabili, identificandolo con un nome / descrizione e alcuni esempi.

Se una convenzione è particolarmente favorita da una determinata community di piattaforme, vale la pena notare anche questo.

Lo sto trasformando in un wiki della comunità, quindi crea una risposta per ogni convenzione e modifica se necessario.

È stato utile?

Soluzione

Il miglior set di convenzioni di denominazione che ho visto è nel libro " Code " completo; Steve McConnell ha una grande sezione lì sulle convenzioni di denominazione e molti esempi. I suoi esempi illustrano una serie di "buone pratiche" per lingue diverse, ma alla fine lascia allo sviluppatore, al responsabile dello sviluppo o all'architetto decidere l'azione specifica.

Altri suggerimenti

PEP8 è la guida di stile per il codice Python che fa parte di la libreria standard che è relativamente influente nella comunità Python. Per i punti bonus, oltre a coprire le convenzioni di denominazione utilizzate dalla libreria standard di Python, fornisce una panoramica delle convenzioni di denominazione in generale.

Secondo PEP8: variabili, variabili di istanza, funzioni e metodi nella libreria standard dovrebbero usare parole minuscole separate da caratteri di sottolineatura per leggibilità:

foo
parse_foo
a_long_descriptive_name

Per distinguere un nome da una parola riservata, aggiungi un trattino basso:

in_
and_
or_

I nomi debolmente privati ??(non importati da 'from M import *') iniziano con un singolo trattino basso. I nomi la cui privacy è imposta con la modifica del nome iniziano con doppi caratteri di sottolineatura .:

_some_what_private
__a_slightly_more_private_name

I nomi che sono metodi "speciali" di Python iniziano e terminano con caratteri di sottolineatura doppi:

__hash__  # hash(o) = o.__hash__()
__str__   # str(o) = o.__str__()

Sun ha pubblicato un elenco di convenzioni di nomi variabili per Java qui . L'elenco include convenzioni per la denominazione di pacchetti, classi, interfacce, metodi, variabili e costanti.

La sezione sugli stati delle variabili

  
    

Ad eccezione delle variabili, tutte le costanti di istanza, classe e classe sono in maiuscolo e minuscolo con una prima lettera minuscola. Le parole interne iniziano con le lettere maiuscole. I nomi delle variabili non devono iniziare con i caratteri di sottolineatura _ o il simbolo del dollaro $, anche se entrambi sono consentiti.

         

I nomi delle variabili devono essere brevi ma significativi. La scelta di un nome variabile dovrebbe essere mnemonica, cioè progettata per indicare all'osservatore casuale l'intenzione del suo uso. I nomi delle variabili a un carattere devono essere evitati, ad eccezione del "lancio temporaneo" variabili. I nomi comuni per le variabili temporanee sono i, j, k, m e n per gli interi; c, d ed e per i personaggi.

  

Alcuni esempi includono

int             i;
char            c;
float           myWidth;

Qualunque sia la tua convenzione di denominazione, di solito non ti consente di distinguere facilmente:

  • variabile di istanza (generalmente privata)
  • variabili locali (utilizzate come parametri o locali per una funzione)

Uso una convenzione di denominazione basata sull'uso di articolo indefinito (a, an , alcuni) per le variabili locali e nessun articolo per le variabili di istanza, come spiegato in questa domanda su prefisso variabile .

Quindi un prefisso (a modo mio o qualsiasi altro prefisso elencato in questa domanda ) può essere un modo per perfezionare la convenzione di denominazione variabile .

So che la tua domanda non si limita alle variabili, volevo solo sottolineare quella parte della convenzione di denominazione.

Esiste il " Java Programmers Phrasebook " di Einar Hoest.

Ha analizzato la struttura grammaticale dei nomi dei metodi insieme alla struttura dei corpi dei metodi e ha raccolto informazioni come:

  

add- [sostantivo] - * Questi metodi spesso hanno parametri e creano oggetti.   Molto raramente restituiscono valori di campo.   La frase appare praticamente in tutto   applicazioni.

eccetera ... raccolti da centinaia di progetti open source.

Per ulteriori informazioni di riferimento, fare riferimento al suo SLE08 carta .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top