Clojure REPL 用于广泛的目的,从学习语言到数据探索到现场音乐表演。本章将提供一些指导原则,用于将 Clojure REPL 应用于更常见的实用软件开发用例。
程序通常通过各种媒介提供用户界面
图形化:网页、移动和桌面应用程序
基于网络:Web 服务/HTTP API/…
基于存储:程序使数据库保持最新状态,然后可以查询该数据库
命令行界面 (CLI):通过终端进行交互
您应该将 REPL 视为用户与程序交互的另一种媒介;与上面列出的那些相比,它需要高级知识(用 Clojure 编程!),但它也极具表现力且开发成本低廉,因为它几乎不需要预料用户想要利用代码的哪些部分。例如,REPL 非常适合临时数据导出。
在 Clojure 项目中,通常的做法是定义仅用于 REPL 交互的函数和命名空间:将其视为 CLI、仪表板等的替代方案。
REPL 可以为您带来很多速度,但不要将运动误认为进步。您应该始终带着计划使用 REPL,否则 REPL 会给您带来更多干扰而不是专注。如果您发现很难在使用 REPL 时将计划保存在脑海中,考虑将其写下来。
REPL 只能引导您进行非常渐进的更改,这很容易让您陷入“局部最大值”。当需要更具战略意义的思考时,强迫自己退一步。特别是,快速反馈不能替代软件设计和有条理的解决问题。