2011-01-27 6 views
10

LotsofC++projects utilizzare una sorta di convenzione di denominazione del caso cammello. L'unico progetto che utilizza le convenzioni di denominazione STL sembra essere un incentivo (in cui viene eseguita molta prototipazione per l'STL). So che ci sono alcuni progetti che precedono lo STL, ma anche la maggior parte delle nuove basi di codice (che usano lo STL) si attaccano alla convenzione sui nomi dei cammelli.Perché nessuno usa le convenzioni di denominazione STL?

Quindi le mie domande sono:

  • Perché nessuno utilizzi le convenzioni di denominazione STL?
  • Consiglieresti di utilizzare la convenzione di denominazione STL sulla custodia cammello per un nuovo progetto?
  • Ho visto alcuni progetti utilizzare le convenzioni di denominazione STL per alcune classi "STL type" (limited_stack, simplify_type) e case cammello per tutto il resto. Questo sembra un buon approccio per separare l'infrastruttura dal codice dell'applicazione. Consiglieresti di fare questo?

(so che le convenzioni di denominazione sono stati discussi a morte. Ancora penso che la questione non è stato risposto prima. Soprattutto l'idea di convenzioni splitting denominazione è, a mio parere, vale la pena discutere.)

+0

Questa è un'altra domanda di stile .... –

+7

Se un programmatore utilizza le convenzioni di denominazione stdlib e @andreas non lo vede, è successo? Sicuramente * sono * le persone che usano quelle convenzioni. –

+4

I veri programmatori usano caratteri di sottolineatura! –

risposta

3

Prima di tutto, vorrei sottolineare che la mia risposta è piuttosto soggettiva, basata esclusivamente sulla mia esperienza, non supportata da dati o risorse esterni.

Una convenzione è proprio questo: una convenzione. Non importa quale si usa, ma piuttosto quale è leggibile e comodo da digitare per te e per i programmatori che riescono a mantenere il codice con cui stai lavorando al momento.

Io uso CamelCase in C++ perché è visivamente più piacevole per il mio occhio e perché mi sono abituato. D'altra parte, utilizzo i caratteri di sottolineatura e i nomi di funzioni in lettere minuscole in C: è diventato una sorta di modo semplice per distinguere quale lingua è stata utilizzata per me.

Altri programmatori ti daranno sicuramente altri motivi, molti dei quali saranno più o meno soggettivi, veri per loro o per gli sviluppatori di cui sono membri.

Cerca in altre lingue. C# favorisce CamelCase, con la prima lettera maiuscola. Perché è meglio che lasciare il primo in minuscolo?

I programmatori PHP che utilizzano il framework Zend hanno familiarità con le convenzioni di denominazione Zend: http://framework.zend.com/manual/en/coding-standard.naming-conventions.html.

Drupal API è anche PHP, ma utilizza caratteri di sottolineatura, lettere minuscole e prefissi di moduli/temi specifici.

Librerie, quadri e persino intere lingue possono avere convenzioni di denominazione che per qualche motivo sono favorite dai loro produttori. Ciò non ti costringe a smettere di usare la solita convenzione di denominazione :). Quindi, tutto sommato, penso che la risposta alla tua domanda possa essere messa in un modo così sciocco: solo perché: D. Perché i singoli programmatori si sentono a proprio agio con esso.

Per quanto riguarda la seconda domanda: no, non consiglierei di utilizzare alcuna convenzione rispetto a un'altra per qualsiasi progetto. Scegli cosa è meglio per te. L'unica situazione in cui non hai scelta è quando ti trovi in ​​un team di sviluppo che per qualche ragione desidera attenersi a una singola convenzione (come un'API coerente).

Terza domanda: sì, è possibile visualizzarla in questo modo. Di solito mi prefisso le mie classi, quindi è ovvio che lo UmbraModule o lo TCODConsole facciano parte delle API Umbra o libtcod. Per quanto riguarda STL, preferisco non nominarlo. La prefissazione di tutto con std::* è un'indicazione molto chiara del fatto che faccia parte di una libreria diversa o meno, quindi il codice infrastruttura/applicazione è chiaramente distinto - lasciando CamelCase vs. sottolinea una questione secondaria :).

+1

La variante capocorda è talvolta chiamata StudlyCaps per distinguere da camelCase. –

+0

Oh, grazie, non lo sapevo! – mingos

+0

thisIsCalledCamelCase, mentre ThisIsCalledPascalCase. http://www.dofactory.com/topic/1141/camelcase-pascalcase-vs-camelcase-pascalcase.aspx – Kaiserludi

Problemi correlati