Ein Code-Formatierer ist ein Werkzeug, das Quelltext nach festen Regeln umschreibt: Einrückung, Zeilenumbrüche, Abstände und Anführungszeichen. Am Verhalten des Programms ändert er nichts.
- Code-Formatierer
Ein Werkzeug, das Quelltext nach festen Regeln umschreibt, ohne sein Verhalten zu ändern.
Beispiel: „Der Code-Formatierer läuft beim Speichern, deshalb sieht jede Datei im Projekt gleich aus.“Abgrenzung zum Linter: Der meldet Probleme und greift selten ein, der Formatierer schreibt um und urteilt nicht.
In diesem Projekt übernimmt das Pint für PHP; andere Sprachen haben eigene Werkzeuge.
Was ein Code-Formatierer macht
Er liest den Quelltext in seine Struktur ein und schreibt sie nach seinen Regeln neu heraus. Was vorher stand, spielt dabei keine Rolle; das Ergebnis hängt allein von der Struktur und den Regeln ab.
Daraus folgt die wichtigste Eigenschaft: Zweimaliges Anwenden ändert nichts mehr. Derselbe Quelltext ergibt bei jedem Lauf dasselbe Bild, unabhängig davon, wer ihn geschrieben hat.
Dieselben beiden Zeilen vor dem Lauf:
const preise = [ 19.90,29.90 , 49.90 ]
function summe(liste){return liste.reduce((a,b)=>a+b,0)}Und danach, ohne dass sich am Verhalten etwas geändert hat:
const preise = [19.9, 29.9, 49.9];
function summe(liste) {
return liste.reduce((a, b) => a + b, 0);
}Warum ein Code-Formatierer Diskussionen beendet
Weil er die Frage der Schreibweise aus dem Gespräch nimmt. Wo ein Werkzeug entscheidet, gibt es nichts mehr zu begründen, und die Durchsicht kann sich mit dem Inhalt befassen.
Der Gewinn zeigt sich vor allem in den Unterschieden zwischen zwei Ständen. Ohne Formatierer mischen sich inhaltliche Änderungen mit Umbrüchen, und niemand sieht mehr, was wirklich geändert wurde.
Was beim Einsatz eines Code-Formatierers zu klären ist
Wann er läuft. Beim Speichern in der Entwicklungsumgebung, vor jeder Übergabe oder in der Prüfkette; am besten an allen drei Stellen, damit niemand ihn umgehen kann.
Dazu der Zeitpunkt der Einführung. Wer ihn über ein gewachsenes Projekt laufen lässt, erzeugt einen einmaligen Unterschied über alle Dateien. Der gehört in einen eigenen Stand, damit die Versionsgeschichte lesbar bleibt.