如果我的项目使用形状为{:firstName :lastName :address}
的“人物”地图,并且我想将该形状更改为{:name {:firstName :lastName} :address}
,我该怎么做才能确保我在这些地方进行了相应的更改对象被使用?在Clojure中重构时的结构正确性
在Java中,它的简单,因为无论我仍然有person.firstName会发出一个编译错误。在Clojure中我可能甚至没有得到一个运行错误,但只是坏的数据保存到服务器上。我认为这是不可能的保证的正确性,但除了细齿梳之外还有什么?
如果你想编译时错误,你也可以考虑使用'core.typed'。 –
已经给出的答案是好的,但我会注意到,这可能是一种情况,熟悉正则表达式搜索和替换在一个好的程序员的编辑器中可能是非常有用的。如果正则表达式不够灵活,而且代码库很大,那么甚至可以使用您喜欢的语言编写字符串操作的文本操作脚本。或者你甚至可以使用Clojure。毕竟,它非常擅长阅读Clojure源代码,而Clojure宏则擅长重写Clojure源代码。这完全取决于你需要重构多少代码。 – Mars