Convenzioni di denominazione: camelCase contro underscore_case? cosa ne pensi? [chiuso]


70

Sto usando underscore_case da circa 2 anni e recentemente sono passato a camelCase a causa del nuovo lavoro (ho usato quello successivo per circa 2 mesi e continuo a pensare che underscore_case sia più adatto a grandi progetti in cui sono coinvolti molti programmatori, principalmente perché il codice è più facile da leggere).

Ora tutti al lavoro usano camelCase perché (così si dice) il codice sembra più elegante.

Cosa ne pensi di camelCase o underscore_case

ps per favore scusa il mio cattivo inglese

modificare

Alcuni aggiornamenti prima:

  • la piattaforma utilizzata è PHP (ma non mi aspetto risposte rigorose relative alla piattaforma PHP, chiunque può condividere i propri pensieri su quale sarebbe il migliore da usare, ecco perché sono venuto qui in primo luogo)

  • Uso camelCase come tutti gli altri membri del team (proprio come molti di voi raccomandano)

  • usiamo Zend Framework che raccomanda anche camelCase

Alcuni esempi (relativi a PHP):

  • Il framework Codeigniter raccomanda underscore_case e onestamente il codice è più facile da leggere.

  • ZF consiglia CamelCase e non sono l'unico a pensare che il codice ZF sia un po 'più difficile da seguire.

Quindi la mia domanda verrebbe riformulata:

Prendiamo un caso in cui hai la piattaforma Foo che non raccomanda alcuna convenzione di denominazione ed è la scelta del leader del team di sceglierne una. Sei il capo squadra, perché dovresti scegliere camelCase o perché underscore_case?

ps grazie a tutti per la pronta risposta finora


6
"onestamente il codice è più facile da leggere" Opinione o fatto?
JD Isaacks,

9
IThinkTheyAreBothAboutTheSame but_i_think_mixing_them_is_pretty_bad.
dietbuddha,

7
@dietbuddha: ho appena letto "but_i_think_mixing_them_is_pretty_bad" molto più velocemente di "IThinkTheyAreBothAboutTheSame". Sono abbastanza sicuro che possa essere provato scientificamente. :)
Steven Jeuris,

@John Isaacks: Sono triste a riferire (come un sostenitore minuscolo), che uno studio ha concluso che "l'intelaiatura del cammello porta a una maggiore precisione tra tutte le materie indipendentemente dall'allenamento" .
Steven Jeuris,

IWonderWhetherReadingEnglishWrittenInOneStyleVersusAnotherMakesMuchDifference. InTheEnd, IFindThatNeitherIsVeryGoodAtBeingEasyToRead. It_screws_horribly_with_line_length_and_makes_even_the_simplest_thing_complicated. I_wonder_whether_there_would_be_language_support_in_the_future_for_quoted_variable_names. "Questo avrebbe molto più senso secondo me rispetto a camelCase o underscore_separators".
Christopher Mahan,

Risposte:


84

Sono d'accordo che dipende dalla lingua che stai usando in una certa misura; il codice tende ad apparire più ordinato quando i nomi dei simboli seguono lo stesso regime di formattazione dei built-in e delle librerie di magazzino del linguaggio.

Ma dove c'è una scelta, preferisco i caratteri di sottolineatura al caso del cammello, per una semplice ragione: trovo che lo stile sia più facile da leggere. Ecco un esempio: quale trovi più leggibile? Questo:

aRatherLongSymbolName

o questo:

a_rather_long_symbol_name

Trovo che la versione di sottolineatura sia molto più facile da leggere. Il mio cervello può ignorare le sottolineature molto più facilmente di quanto non in grado di rilevare i confini minuscole / maiuscole in caso di cammello, in particolare dove i confini sono tra i glifi che sembrano simili ad altri glifi del caso opposto, o numeri ( I/l, O/0, t/I, ecc). Ad esempio, questa variabile booleana memorizza un valore che indica se un Igloo è stato costruito o meno con un'autorizzazione di pianificazione adeguata (senza dubbio un caso d'uso comune per tutti noi):

isIllicitIgloo

Trovo questa versione molto più facile da leggere:

is_illicit_igloo

Forse anche peggio di un nome simbolo difficile da leggere è un nome simbolo facile da leggere. I nomi di buoni simboli sono auto-documentanti, il che per me significa che dovresti essere in grado di leggerli e comprenderne il significato a colpo d'occhio. (Sono sicuro che tutti leggiamo le stampe di codici a letto per piacere, ma a volte anche noi ci affrettiamo anche in fretta.) Spesso trovo con i nomi dei simboli delle custodie per cammelli che è facile leggerle erroneamente e avere l'impressione sbagliata di un semantica del simbolo.


25
Un problema con i trattini bassi: usabilità. Per la maggior parte delle tastiere (europee), digitare il segno di sottolineatura richiede di tenere premuto il tasto MAIUSC. Devi farlo anche per camelCase, ma posso tenere comodamente premuto MAIUSC con il mignolo e digitare qualsiasi lettera - ma poiché il tasto di sottolineatura si trova proprio accanto al tasto MAIUSC, premendo entrambi allo stesso tempo è piuttosto imbarazzante e interrompe il flusso di battitura.
LearnCocos2D

11
Per il primo, in realtà ho trovato camelCase più facile da leggere, anche se quest'ultimo è ovviamente diverso.
Phoshi il

19
Questo in effetti dipende da cosa sei abituato. Trovo i casi di cammello più facili da leggere e inoltre sono più brevi dei nomi di sottolineatura equivalenti.
Joonas Pulakka,

17
Io odio digitando sottolineatura.
Epsilon

6
Il punto "usabilità" è irrilevante per questo. Il codice è in genere scritto una sola volta da una persona, ma diciamo nell'ordine di 1-10 volte tenendo conto della modifica e della potenziale programmazione delle coppie. Ma il codice viene in genere letto dozzine / centinaia / migliaia di volte da una o potenzialmente molte persone. Pertanto, rendere il codice facile da leggere è molto più importante di avere un codice facile da scrivere.
hlovdal

97

Penso che dovresti usare la convenzione di denominazione adottata dalla tua piattaforma. underscore_case apparirà strano nel codice C #, come camelCase in Ruby =)


23
La coerenza è una chiave. Sia che tu sia d'accordo con la convenzione locale o meno, renderai il tuo tempo più facile (e quello di tutti gli altri) essendo coerente. (A meno che la convenzione locale non sia essa stessa incoerenza.) Inoltre, la leggibilità è principalmente un argomento falso: leggi abbastanza codice qualsiasi scoprirai che c'è poca differenza a meno che tu non decida che sia illeggibile.
Richard,

1
Pienamente d'accordo. Penso solo che sia meglio usare le convenzioni della piattaforma invece di quelle personalizzate, perché ad esempio i nuovi ragazzi in squadra si sentiranno più a loro agio con esso.
Alexey Anufriyev,

2
Ma guai a quelli di noi che lavorano su due piattaforme con due convenzioni, dove alcuni preferiscono e altri preferiscono l'altro!
Michael K,

Se la piattaforma ha 2 convenzioni, chiederei a tutti i membri del team di votare per le convenzioni con cui si sentono a proprio agio =)
Alexey Anufriyev il

20

Onestamente, non importa se tutti nella squadra usano lo stesso schema. Le probabilità sono l'una o l'altra è più naturale per te, anche se la vera importanza è la leggibilità del codice a lungo termine e quindi è fondamentale che tutti aderiscano alle stesse regole di denominazione.


hai perfettamente ragione, comunque sto cercando di scoprire l'opinione della gente sulla strega sarebbe meglio usare (diciamo per tutto il team), e perché ... mentre capisco che alcune persone potrebbero essere solo abituate a qualche convenzione o altri si nutrono più naturali con l'altro.
Poelinca,

20

Sulla base di una risposta, la risposta di John Isaacks:

"onestamente il codice è più facile da leggere" Opinione o fatto?

Ho deciso di fare qualche ricerca e ho trovato questo documento . Che cosa ha da dire la scienza sull'argomento?

  1. L'involucro del cammello ha una maggiore probabilità di correttezza rispetto ai caratteri di sottolineatura. (le probabilità sono più alte del 51,5%)
  2. In media, la custodia del cammello ha impiegato 0,42 secondi in più , il 13,5% in più.
  3. La formazione non ha alcun impatto statisticamente significativo su come lo stile influenza la correttezza.
  4. Quelli con più addestramento erano più veloci sugli identificatori nello stile della custodia di cammello.
  5. L'allenamento in uno stile, influisce negativamente sul tempo di ricerca per altri stili.

Nel mio post sul blog sull'argomento, rivedo il documento scientifico e faccio la seguente conclusione.

Solo la lentezza del caso cammello (2) è veramente rilevante per la programmazione, respingendo gli altri punti come irrilevanti a causa dei moderni IDE e della maggior parte degli utenti di camelCase nello studio. La discussione (insieme a un sondaggio) è disponibile sul post del blog.

Sono curioso di sapere come questo articolo potrebbe cambiare la propria opinione. :)


3
Certo, ignori tutti gli altri punti a causa della tua preferenza per i trattini
bassi

2
@Charles: Sì e no, IMHO Faccio buone argomentazioni sul perché siano liquidabili, e alcuni di loro sono persino discussi come problematici dal documento stesso. Un documento di follow-up indaga alcuni dei problemi di questo documento e i risultati sono dei punti di forza.
Steven Jeuris,

11

Copia i ragazzi più intelligenti

Nel caso dei linguaggi di programmazione, copia lo stile dello sviluppatore del linguaggio.

Ad esempio, codice C esattamente come in K&R.

Quindi, quando qualcuno cerca di iniziare una noiosa conversazione in stile codice, posso dire loro "tiralo fuori con Dennis Ritche e fammi sapere cosa dice".


12
L'originale non è sempre il migliore. Ci sono molte cattive pratiche nel libro evangelico di K&R su C. Prima che inizi una guerra di fiamma ... leggi alcune delle raccomandazioni MISRA.
quick_now

10
Non dimenticare, K&R è stato scritto quando non c'erano IDI GUI. La maggior parte del lavoro è stato svolto su terminali 80x25 caratteri, quindi lo spazio dello schermo era un premio, facendo if (...) {risparmiare una linea! Al giorno d'oggi, c'è più spazio sullo schermo: K&R sarebbe diverso se scritto oggi con IDI GUI ad alta risoluzione e configurazioni di monitor multipli?
Skizz,

3
Sì, ma quando qualcuno dice che codificano C come K&R, ottengono oggetti di scena per essere alla vecchia scuola.
Christopher Mahan,

3
@quickly_now, parlane con Dennis Ritchie e fammi sapere cosa dice!
Mark Harrison,

Adotto molta formattazione da MS: _internalToClassOnly, accessibileByGetter, PublicVariable.
Estratto

10

In generale, preferisco camelCase. Tuttavia, ciò è dovuto al fatto che nella maggior parte della mia carriera ho lavorato in lingue e ambienti in cui le guide di stile normalmente raccomandano camelCase. (Java, ECMAScript, C ++). Tu, essendo una persona PHP, è probabile che tu abbia la preferenza opposta.

Detto questo, quando vai oltre le treOrFourWords o se usi inizialismi come XmlForExample, smette di essere così leggibile.

Ecco perché emacs ci offre la modalità occhiali.


2
+1 per avermi fatto scoprire la modalità occhiali! L'ho appena testato su un file di codice che utilizza camelCase e ho notato come ha iniziato subito a sembrare migliore (assemblaggio con un sacco di etichette in camelCase).
Gauthier,

Ok, cos'è la modalità occhiali?
Marcie,


8

camelCase

Questo è uno dei pochi posti in cui sceglierò sempre l'abilità del tipo piuttosto che la leggibilità. CamelCase è semplicemente più facile da scrivere ed essere più gentile con le dita vince su un leggero guadagno di leggibilità per me.

supponendo ovviamente che il progetto non si basi su una base di codice esistente con uno standard diverso.


Non sono d'accordo, scrivi il codice solo una volta, ma devi leggerlo più volte dopo
Roman Pekar,

7

È una domanda interessante, ci ho pensato molte volte. Ma non esiste una risposta definitiva, credo.

Seguendo le convenzioni "culturali" è stata una buona scelta. "Culturale" in questo caso significa convenzioni stabilite nel team / azienda e sostanzialmente portano anche le convenzioni lingua / piattaforma. Aiuta gli altri a leggere / utilizzare facilmente il codice e non richiede ulteriori sforzi e tempo per comprendere il codice.

A volte è interessante rompere le notazioni accettate. Uno dei miei piccoli progetti (su Python) ho usato underscored_namesper funzioni di utilità / metodi "protetti" e stile Java methodNamesper metodi. La mia squadra era felice :)


6

Dipende dal linguaggio di programmazione.

Considero di utilizzare il caso nella stessa barca per usare o meno la notazione ungherese:

  • Python: underscore_case, nessuna notazione ungherese
  • C ++: camelCase, notazione ungherese

8
@Kevin Cantu: In realtà il nome Javascript è in PascalCase piuttosto che in camelCase ...
Guffa,

1
@Guffa: touché!
Kevin Cantu,

2
@Kevin Cantu: su JavaScript: XMLHttpRequest<- Odio questo nome con passione.
Thanatos,

1
hypotheticalReasonsToNukeRedmond.push (XMLHttpRequest)
Kevin Cantu

4
@Lionel: la notazione in realtà ungherese non viene quasi mai utilizzata in C ++, poiché C ++ controlla già i tuoi tipi. È più un manufatto storico che altro.
In silico,

6

Entrambi!

Faccio molto sviluppo in CakePHP e utilizzo uno CamelCaseo $underscored_vars, nel modo seguente (anche al di fuori dei progetti CakePHP):

  1. nomi di file : /lowercased_underscored.phptipici, ma vale la pena menzionarli.
  2. classi - class CamelCase extends ParentObject. Si noti che, durante l'utilizzo CamelCase, il carattere iniziale non è minuscolo. Trovo camelCasedi guardare davvero strano.
  3. variabili -$are_variables_underscored === TRUE;
  4. variabili che contengono istanze -$CamelCase = new CamelCase();
  5. chiavi array -$collection['underscored_keys'];
  6. costanti - Penso che tutti possano essere d'accordo sul fatto che le costanti dovrebbero essere ALL_CAPS_AND_UNDERSCORED.
  7. metodi -$CamelCase->foo_method_underscored();
  8. metodi statici -CamelCase::just_like_regular_methods();

3
essere d'accordo con te, avere il primo personaggio in minuscolo mi fa impazzire! Odio il camelCase con passione.
HLGEM,

In Java dove i nomi sono in genere camelCased i nomi delle classi iniziano effettivamente con una lettera maiuscola. Questo per distinguerli dai nomi dei metodi.
James P.

5

Personalmente preferisco underscore_caseperché lo trovo più leggibile, ma sono d'accordo con gli altri risponditori che sottolineano che la coerenza con la base di codice esistente è molto più importante.

Tuttavia, ho un controesempio per coloro che dicono "segui la convenzione della tua lingua e delle sue biblioteche".

In passato abbiamo scritto codice C su Windows usando underscore_casee chiamato PascalCasefunzioni Win32:

if (one_of_our_conditions_is_true())
{
    call_one_of_our_functions();
    CallSystemFunction();
}

La distinzione visiva tra i nomi delle nostre funzioni e i nomi delle funzioni di Microsoft è stata un aiuto piuttosto che un ostacolo, come ha mostrato chiaramente quando il codice stava andando in "terra di sistema".

Inoltre, sono stato in grado di modificare le regole di evidenziazione della sintassi del mio editor per visualizzarle in diversi colori, il che ha fornito ulteriori indizi visivi quando ho cercato di comprendere sezioni di codice sconosciute (o anche la mia).


5

Mi piacciono molto i trattini di Dylan come normali, facili da scrivere e da leggere.

Piace

result-code := write-buffer(file-stream, some-string)

Ma immagino che questo linguaggio sia abbastanza oscuro, questo è un po 'fuori tema ... :(


3
Sono anche stanco di premere Maiusc per digitare caratteri di sottolineatura.
Gauthier,

8
Questo non è generalmente possibile per i nomi delle variabili, poiché "-" di solito significa meno.
Eric Wilson,

4

Mi è stato insegnato a usare camelCase all'università. Ho usato alcune convenzioni diverse negli ultimi anni, ma preferisco camelCase a qualsiasi altra cosa. Penso di ricordare di aver letto da qualche parte che CamelCase è in realtà il più facile da leggere e capire.


4
beh non è più facile perché leggi da qualche parte, è più facile perché è stato il primo con cui hai lavorato e principalmente perché sei più abituato, ad esempio sono più a mio agio con underscore_case.
Poelinca,

1
come in ho letto che uno studio è stato fatto e l'ho trovato migliore ..
Ross,

4

Come molti hanno già detto - Usa lo standard esistente. Se si tratta di un nuovo progetto, utilizzare lo standard per la lingua e i framework che verranno utilizzati.

E non ti confondere, non si tratta di leggibilità (che è soggettiva), si tratta di essere coerenti e professionali. Chiunque abbia lavorato in una base di codice con numerosi "standard" in corso capirà.


4

A volte uso un mix: module_FunctionName. Tutte le funzioni (non statiche) nei miei moduli iniziano con un'abbreviazione di un modulo.

Ad esempio una funzione per inviare il contenuto di un buffer sul bus I2C:

i2c_BufferSend()

L'alternativa i2c_buffer_sendnon mostra una separazione abbastanza grande tra prefisso e nome della funzione. i2cBufferSendmescola troppo il prefisso (in questo modulo ci sono molte funzioni I2C).

i2c_Buffer_send avrebbe potuto essere un'alternativa, però.

La mia risposta è che ti adatti a ciò che funziona meglio per il tuo progetto (la tua lingua, la tua architettura SW, ...), e ho voluto sottolineare che mescolare questi stili potrebbe essere utile.

myGeneralOpinionIsThatNamesAreMuchHarderToReadInCamelCase. I_respect_the_fact_that_some_could_think_otherwise_but_I_do_not_really_understand_why.


1
+1 per le ultime 2 righe, tuttavia non consiglio di combinare le convenzioni di denominazione, dovresti attenersi all'una o all'altra.
Poelinca,

Fintanto che la convenzione è ben definita (prefisso + trattino basso + PascalCase) ...
Gauthier,

Mi piace usare i trattini bassi per separare parti di un nome che hanno scopi semanticamente disgiunti, specialmente se la comunanza su entrambe le metà può essere significativa. Ad esempio, le routine Motor1_Start(), Motor2_Start(), Motor1_Stop()e Motor2_Stop()hanno un rapporto che potrebbe essere meno chiare, senza le sottolineature.
supercat

4

Personalmente, preferisco camelCase, ma in alcuni caratteri penso che i caratteri di sottolineatura siano più facili da leggere.

Vorrei suggerire che se è necessario utilizzare prefissi per differenziare insiemi di variabili, è necessario utilizzare un linguaggio che consenta di creare spazi dei nomi o oggetti o qualcosa per contenere tali informazioni.

myName   = 7
bobsName = 8   // :(

me.name  = 7
bob.name = 8   // :D

Allo stesso modo, se è necessario differenziare i tipi, perché non utilizzare una lingua che li consenta?

var intThingy = 7; // :(

int thingy = 7;    // :)

Una volta che hai ragione, e non stai solo usando il nome come metadati, allora non avrai abbastanza nomi lunghi che contano molto se preferisci quel tasto aggiuntivo o meno.


1
Uno dei motivi per usare camelCase o underscore_case è che non ho bisogno di trovare la definizione degli oggetti per discernere di cosa si tratta.
Joshua Shane Liberman,

2

All'inizio sono d'accordo con dafmetal. È della massima importanza che non si mischino diversi stili di programmazione. Fare questo in uno stesso file è il peggio che puoi fare IMHO. Attraverso diversi file, è fonte di distrazione, ma non fatale.

La prossima cosa che devi fare, è di nominare le regole che sono popolari per la lingua in cui stai scrivendo. Il mio codice C ++ per instnace, apparirà diverso da qualcosa per Python ovviamente (PEP8 è una bella guida qui)

Puoi anche usare convenzioni di denominazione diverse per fare riferimento a cose diverse, per quanto probabilmente usi UPPER_CASE per le costanti (questo vale ovviamente solo per alcune lingue), puoi usare this_style per nomi di variabili locali, mentre usi camelCase per istanza / membro variabili. Questo potrebbe non essere necessario quando hai cose come selfo thiscomunque.

Aggiornare

Prendiamo un caso in cui hai la piattaforma Foo witch non raccomanda alcuna convenzione di denominazione ed è la scelta del leader del team di sceglierne una. Sei il capo squadra, perché dovresti scegliere camelCase o perché underscore_case.

Non ci sono davvero vantaggi per l'uno rispetto all'altro. Questa questione è molto soggettiva e, una volta concordata, non farà alcuna differenza. Ci sono sempre queste guerre di religione su queste piccole cose. Ma una volta che ti sei adattato a entrambi, le discussioni sembrano essere del tutto superflue.

Per citare Alex Martelli su una questione molto simile:

Certo, mi stanco, in Ruby, di digitare la "fine" sciocca alla fine di ogni blocco (piuttosto che solo unindenting) - ma poi riesco a evitare di digitare ugualmente la sciocca ":" di cui Python richiede l' inizio di ogni blocco, quindi è quasi un lavaggio :-). Altre differenze di sintassi come '@foo' rispetto a 'self.foo', o il significato più elevato del caso in Ruby vs Python, sono davvero altrettanto irrilevanti per me.

Altri senza dubbio basano la loro scelta di linguaggi di programmazione proprio su tali questioni e generano i dibattiti più importanti - ma per me questo è solo un esempio di una delle leggi del Parkinson in azione ( l'ammontare del dibattito su una questione è inversamente proporzionale alla questione importanza reale ).

fonte

Se sei il caposquadra, basta andare con uno. Dal momento che uno non ha alcun vantaggio rispetto all'altro, puoi semplicemente lanciare dadi o scegliere quello che ti piace di più.


2

Ho letto diversi anni fa che i programmatori che non parlano l'inglese come prima lingua tendono a trovare il carattere di sottolineatura più facile da capire quel caso di cammello, ma non riesco a trovare il riferimento e non ho idea se sia vero.


2

Per i linguaggi di programmazione che ho usato, come Java, Python, C ++, ho adottato un formato chiaro:

  • ClassNamesArePascalCase
  • methodNamesAreCamalCase
  • variable_names_are_underscore
  • CONSTANT_VARIABLES_ARE_CAPITAL_VARIABLES

Questo mi permette di discernere immediatamente con cosa ho a che fare. Ho scoperto che è utile da mantenere per me stesso e dovrebbe essere facile da seguire per qualcun altro che legge il codice. Penso che come altri abbiano menzionato la coerenza sia molto importante. Quindi trovo che il mio formato sia abbastanza semplice da mantenere, fornendo al contempo chiare distinzioni tra i tipi di nomi. Potrei immaginare interface_Names_Are_Like_This e Abstract_Classes_Are_Like_Queste possibili estensioni, ma sembra essere più complicato da seguire e forse non utile una distinzione da fare.

Ho anche trovato utile essere severi e nominare cose in PascalCase come un parser HTML come HtmlParser invece di HTMLParser o HTMLparser. Perché credo che sia più facile ricordare la regola rigida e mantenere più chiari i confini delle parole (purtroppo richiede errori di ortografia come HTML o SQL). Analogamente a camelCase, htmlParserMethod anziché HTMLParserMethod o HTMLparserMethod.

AGGIORNAMENTO :

Da allora ho trovato l'uso nell'espansione di queste regole per includere variabili private. - _private_variable_names_are_prefixed_with_an_underscore - _PRIVATE_CONSTANT_VARIABLES_ARE_PREFIXED_WITH_AN_UNDERSCORE

In Java, ciò significa che i campi privati ​​si trovano per definizione in uno spazio dei nomi diverso rispetto alle variabili locali, il che significa che è possibile saltare i this.campi privati. Altri formati ho visto il prefisso con " m", ma quei formati usano anche camelCase per i nomi delle variabili. Questo mi permette anche di fare una distinzione tra i campi ai quali dovrebbe accedere la classe solo internamente (e renderlo super chiaro quando si verifica al di fuori della classe object._field_xsi distingue).


1

Se dipendesse da me, non imporrei o suggerirei l'uso di uno stile particolare perché, come programmatori, saremmo in grado di leggere un simbolo IfItIsInCamelCase o in_underscore_space o persino in_SomeOtherStyle e capire cosa significhi. Dover passare una piccola quantità di tempo ad analizzare il simbolo non è un grande sovraccarico nel grande schema delle cose.

Ora, l'argomento principale per una convenzione credo sia che tu sappia in anticipo quale sia il formato di una funzione / nome di variabile e non hai bisogno di cercarlo - è LoadXMLFile, loadXMLFile, LoadXmlFile, load_xml_file? Ora, vorrei contrastare tale argomento dicendo "Ottieni un IDE che supporti il ​​completamento automatico in stile intellisense!" (non sempre possibile però).

Alla fine, tuttavia, non importa quale stile usi perché il compilatore / interprete non se ne frega davvero. L'importante è che il nome sia utile:

NumberOfPrisonersReleasedByAccident
manufacturer_name
distance_EarthToMoon

Tre stili diversi, ma sai esattamente cosa fa ciascuno.


1
Mi permetto di dissentire, l'aspetto della fonte è importante. Vedi la teoria delle finestre rotte di "Il pragmatico programmatore". La diversa convenzione di denominazione rende l'aspetto peggiore. pragprog.com/the-pragmatic-programmer/extracts/software-entropy
Gauthier

1
@Gauthier: Anche se concordo con l'idea di "finestra rotta", non credo che la capitalizzazione di simboli costituisca una "finestra rotta". Il codice definito a caso è certamente, e il mio attuale progetto ha sicuramente molto di quello che cerco di mettere in ordine ogni volta che posso.
Skizz,

Sono d'accordo. Riesco a leggere tutti e tre ugualmente bene. Non importa Uso semplicemente qualunque sia il file utilizzato, quindi qualunque sia la lingua proposta (python) e quindi qualunque cosa ritenga che il progetto sarà meglio servito. (Ho usato per programmare in GWBasic, ed era tutto in maiuscolo -! I bei vecchi tempi)
Christopher Mahan

0

Può sembrare sciocco, ma non mi piacciono i caratteri di sottolineatura perché il carattere di sottolineatura è sottile e si nasconde in più righe e mi manca. Inoltre, in alcuni (molti) editor di testo e / o ambienti di sviluppo, quando si fa doppio clic sul nome di un token per evidenziarlo in modo da copiarlo o trascinarlo, il sistema non evidenzierà l'intero token, ma solo una porzione del token, tra caratteri di sottolineatura adiacenti. Questo mi fa impazzire.


0

Tendo a preferire camelCase per il motivo sciocco che faccio la maggior parte del mio sviluppo in Eclipse (per Java, PHP e JavaScript) e quando I Ctrl+ o Ctrl+ attraverso le parole, si ferma effettivamente ai confini di camelCase.

Vale a dire: myIntVariablesarebbe trattato da Eclipse come 3 parole quando Ctrl+ ← →'ci passa attraverso.

So che è una strana stranezza, ma mi trovo a preferire la possibilità di modificare le parole medie in un nome camelCase.

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.