Wenn mein Projekt "Person" Maps mit der Form {:firstName :lastName :address}
verwendet, und ich diese Form zu {:name {:firstName :lastName} :address}
ändern möchte, was kann ich tun, um sicherzustellen, dass ich die entsprechenden Änderungen überall diese vorgenommen habe Objekte werden verwendet?Strukturelle Korrektheit beim Refactoring in Clojure
In Java ist es einfach, wie überall, wo ich noch Person.firstName einen Kompilierungsfehler ausgeben würde. In Clojure I könnte nicht einmal eine Laufzeit Fehler erhalten, aber nur schlechte Daten auf dem Server gespeichert. Ich nehme an, es ist unmöglich, Garantie Richtigkeit, aber was gibt es außer feinzahnigen Kämmen?
Wenn Sie Kompilierungsfehler benötigen, können Sie auch 'core.typed' verwenden. –
Die Antworten, die gegeben wurden, sind gut, aber ich werde bemerken, dass dies eine Situation sein kann, in der die Vertrautheit mit dem regulären Ausdruck Suchen und Ersetzen in einem guten Programmierer-Editor sehr nützlich sein könnte. Wenn reguläre Ausdrücke nicht flexibel genug sind und Sie eine große Codebasis haben, könnte es sogar sinnvoll sein, ein Textmanipulations-Skript in Ihrer bevorzugten Sprache für die String-Manipulation zu programmieren. Oder du benutzt vielleicht sogar Clojure. Es ist schließlich sehr gut beim Lesen der Clojure-Quelle, und Clojure-Makros sind gut beim Umschreiben von Clojure-Quellen. Das hängt davon ab, wie viel Code Sie umgestalten müssen. – Mars