Vor langer Zeit haben wir eine Funktion hinzugefügt, mit der unsere Benutzer ein Bild "akzeptieren" konnten, nachdem es einer Workflow-Warteschlange hinzugefügt wurde. Es stellte sich heraus, dass wir den falschen Begriff verwendet haben und die Benutzer das Bild tatsächlich "genehmigen".
Das Ändern von Akzeptieren in Genehmigen auf unserer Benutzeroberfläche ist einfach. Ersetzen Sie einfach ein Wort. Wir haben jedoch alle Ebenen mit dem Wort "accept" programmiert, vom CSS-Klassennamen bis zu den Datenbankwerten.
- Die CSS-Klasse, mit der die Schaltfläche grün angezeigt wird: ".accepted";
- Die Modellmethode, die das Klassenattribut auf dem DOM-Knoten überprüft und bindet: "isAccepted";
- JavaScript-Statusattribut: Array mit "nicht überprüft", "akzeptiert" und "veröffentlicht";
- Mysql-Statusspalte: ENUM mit "nicht überprüft", "akzeptiert" und "veröffentlicht";
- Testnamen;
Es ist trivial (besonders wenn Sie Tests haben), die meisten Vorkommnisse von Accept zu Approve zu ersetzen. Etwas schwieriger ist es, die Daten zu migrieren, zumal sie mit der Bereitstellung synchronisiert werden müssen.
Dieser spezielle Fall ist einfach, aber ich habe während meiner Karriere ähnliche, aber komplexere Fälle erlebt. Wenn eine Datei ebenfalls umbenannt wird und die Bereitstellung auf Dutzenden von Servern erfolgt oder wenn Proxy-Caching, Memcached und MySQL beteiligt sind.
Auf jeder anderen Ebene mit Ausnahme der Benutzeroberfläche "akzeptiert" zu lassen, ist eine schlechte Idee, da neue Programmierer, die dem Team beitreten, möglicherweise nicht die historischen Gründe kennen, die zu dieser Entscheidung geführt haben wurde in "Warteschlange für das nächste Statustreffen" umbenannt, was sicherlich keinen Sinn ergeben würde. Und wenn wir hier und da Kompromisse eingehen, werden die Konzepte der Benutzeroberfläche in einigen Iterationen keinen Einfluss auf die Systeminternen haben, und ich möchte auf keinen Fall an einem System arbeiten, bei dem die Hälfte der Ausgabe keine Verbindung zu den Innereien hat.
Benennen Sie also bei Bedarf immer alles um? Wenn Ihnen das passiert ist und Sie entschieden haben, dass sich der Kompromiss nicht gelohnt hat, ist es dann zurückgekommen, um Sie zu beißen? Reichen Codekommentare oder Entwicklerdokumentationen aus, um dieses Problem zu vermeiden?