In passato ho sempre usato i trattini bassi per definire gli attributi di classe e id in HTML. Negli ultimi anni sono passato ai trattini, principalmente per allinearmi con la tendenza della comunità , non necessariamente perché aveva senso per me.
Ho sempre pensato che i trattini presentino più svantaggi e non ne vedo i vantaggi:
Completamento e modifica del codice
La maggior parte degli editor tratta i trattini come separatori di parole, quindi non posso accedere al simbolo che desidero. Supponiamo che la classe sia " featured-product
", devo completare automaticamente " featured
", inserire un trattino e completare "product
".
Con sottolineatura "featured_product
" viene trattato come una sola parola, quindi può essere compilato in un solo passaggio.
Lo stesso vale per la navigazione nel documento. Saltare con le parole o fare doppio clic sui nomi delle classi è interrotto da trattini.
(Più in generale, penso a classi e ID come token , quindi non ha senso per me che un token dovrebbe essere facilmente divisibile su trattini.)
Ambiguità con operatore aritmetico
L'uso dei trattini interrompe l' accesso alla proprietà oggetto per gli elementi del modulo in JavaScript. Questo è possibile solo con caratteri di sottolineatura:
form.first_name.value='Stormageddon';
(Devo ammettere che non accedo agli elementi del modulo in questo modo, ma quando decido di trattini o trattini bassi come una regola universale, considera che qualcuno potrebbe.)
Lingue come Sass (specialmente in tutto il framework Compass ) si sono sistemate su trattini come standard, anche per i nomi delle variabili. Inizialmente usavano anche i trattini bassi. Il fatto che questo sia analizzato in modo diverso mi sembra strano:
$list-item-10
$list-item - 10
Incoerenza con denominazione variabile tra le lingue
Indietro nel giorno, ho usato per scrivere underscored_names
per le variabili in PHP, Ruby, HTML / CSS e JavaScript. Questo era comodo e coerente, ma di nuovo per "adattarmi" ora uso:
dash-case
in HTML / CSScamelCase
in JavaScriptunderscore_case
in PHP e rubino
Questo non mi dà molto fastidio, ma mi chiedo perché siano diventati così disallineati, apparentemente di proposito. Almeno con i trattini bassi è stato possibile mantenere la coerenza:
var featured_product = $('#featured_product'); // instead of
var featuredProduct = $('#featured-product');
Le differenze creano situazioni in cui dobbiamo tradurre inutilmente le stringhe , insieme al potenziale di bug.
Quindi chiedo: perché la comunità si è assestata quasi universalmente sui trattini e ci sono delle ragioni che superano le sottolineature?
C'è una domanda correlata da quando è iniziata, ma sono dell'opinione che non sia (o non avrebbe dovuto essere) solo una questione di gusti. Mi piacerebbe capire perché siamo tutti d'accordo su questa convenzione se fosse davvero solo una questione di gusti.