本指南适用于至少对 Clojure 有 基本了解 并希望更熟练地使用 Clojure REPL 的开发人员。
Clojure REPL(代表 Read-Eval-Print Loop,读-求值-打印循环)是一个编程环境,它使程序员能够通过一次评估一个代码表达式来与运行的 Clojure 程序进行交互并修改它。
Clojure REPL 为程序员提供了交互式开发体验。在开发新功能时,它使程序员能够首先通过手动执行小型任务来构建程序,就好像她是计算机一样,然后逐渐使它们变得越来越自动化,直到所需的功能完全编程。在调试时,REPL 使程序的执行感觉可触碰:它使程序员能够快速重现问题,仔细观察其症状,然后即兴进行实验,快速缩小错误原因的范围并迭代到修复程序。
许多 Clojure 程序员认为 REPL 以及它提供的紧密反馈循环是使用 Clojure 最令人信服的原因。这并不意味着 Clojure 的语言特性(如不可变数据结构)没有价值:Clojure REPL 的优势在于由于这些特性,特别是由于 Clojure 是为了交互式开发而设计的。
在 Clojure 中,程序员通常会将 REPL 用于各种编程任务,而在其他语言中,她会转向其他类型的工具。这些任务包括
启动本地开发环境,
运行自动化测试套件,
一次性数据库查询和干预,
调试,
编排远程机器,
熟悉库和 API,
…以及各种形式的探索。
从根本上说,程序员将 REPL 用于所有这些任务的原因始终如一:因为他们想要将自动化和即兴发挥结合起来,而这既不能通过完全手动工具(如仪表板、控制台等)提供,也不能通过完全自动化的工具(如脚本)提供,同时保持工作流程在一个功能齐全的编程环境中集中。
本指南将从帮助您开始使用 Clojure REPL 开始,然后逐渐转向越来越高级的 Clojure REPL 使用方式。
根据您的需求,您可能不需要阅读本指南的全部内容
如果您是刚刚开始学习 Clojure,前两章 启动基本 Clojure REPL 和 基本使用 就足以让您开始使用高效的学习环境。
一旦您开始开发非平凡的程序(例如爱好者网络应用),您将至少需要下一章中的想法:REPL 中的数据可视化 和 导航命名空间。
对于在专业级别进行 Clojure 项目开发,增强您的 REPL 工作流程 和 REPL 辅助开发指南 是必读内容。
首先,我们将学习如何 启动基本 Clojure REPL。