In der Vergangenheit habe ich immer Unterstriche zum Definieren von Klassen- und ID- Attributen in HTML verwendet. In den letzten Jahren habe ich auf Bindestriche umgestellt, hauptsächlich, um mich dem Trend in der Community anzupassen , nicht unbedingt, weil es für mich Sinn machte.
Ich habe immer gedacht, dass Bindestriche mehr Nachteile haben, und ich sehe die Vorteile nicht:
Code-Vervollständigung und Bearbeitung
Die meisten Editoren behandeln Bindestriche als Worttrennzeichen, sodass ich nicht zum gewünschten Symbol wechseln kann. Angenommen, die Klasse ist " featured-product
", ich muss " " automatisch vervollständigen featured
, einen Bindestrich eingeben und " product
" vervollständigen .
Mit Unterstrichen wird " featured_product
" als ein Wort behandelt, sodass es in einem Schritt ausgefüllt werden kann.
Gleiches gilt für die Navigation durch das Dokument. Das Springen nach Wörtern oder das Doppelklicken auf Klassennamen wird durch Bindestriche unterbrochen.
(Im Allgemeinen stelle ich mir Klassen und IDs als Token vor , daher macht es für mich keinen Sinn, dass ein Token so einfach in Bindestriche aufgeteilt werden kann.)
Mehrdeutigkeit mit arithmetischem Operator
Durch die Verwendung von Bindestrichen wird der Zugriff auf Objekteigenschaften auf Formularelemente in JavaScript unterbrochen. Dies ist nur mit Unterstrichen möglich:
form.first_name.value='Stormageddon';
(Zugegeben, ich greife selbst nicht auf diese Weise auf Formularelemente zu, aber wenn Sie sich als universelle Regel für Bindestriche oder Unterstriche entscheiden, denken Sie daran, dass dies jemand tun könnte.)
Sprachen wie Sass (insbesondere im gesamten Compass- Framework) haben sich standardmäßig für Bindestriche entschieden, auch für Variablennamen. Sie verwendeten ursprünglich auch am Anfang Unterstriche. Die Tatsache, dass dies anders analysiert wird, kommt mir seltsam vor:
$list-item-10
$list-item - 10
Inkonsistenz mit der Benennung von Variablen in verschiedenen Sprachen
Früher habe ich underscored_names
für Variablen in PHP, Ruby, HTML / CSS und JavaScript geschrieben. Dies war praktisch und konsistent, aber um wieder "hinein zu passen", benutze ich jetzt:
dash-case
in HTML / CSScamelCase
in JavaScriptunderscore_case
in PHP und Ruby
Das stört mich nicht wirklich, aber ich frage mich, warum diese scheinbar absichtlich so falsch ausgerichtet wurden. Zumindest mit Unterstrichen war es möglich, die Konsistenz aufrechtzuerhalten:
var featured_product = $('#featured_product'); // instead of
var featuredProduct = $('#featured-product');
Die Unterschiede führen zu Situationen, in denen wir Zeichenfolgen unnötig übersetzen müssen , zusammen mit der Möglichkeit von Fehlern.
Also frage ich: Warum hat sich die Community fast überall auf Bindestriche festgelegt, und gibt es Gründe, die die Unterstriche überwiegen?
Es gibt eine verwandte Frage aus der Zeit, als dies begann, aber ich bin der Meinung, dass es nicht nur Geschmackssache ist (oder hätte sein sollen). Ich würde gerne verstehen, warum wir uns alle für diese Konvention entschieden haben, wenn es wirklich nur Geschmackssache war.