Это руководство предназначено для разработчиков, которые имеют хотя бы базовое понимание языка Clojure и хотят стать более опытными в использовании Clojure REPL.
Что такое REPL?
Clojure REPL (расшифровывается как Read-Eval-Print Loop) - это среда программирования, которая позволяет программисту взаимодействовать с запущенной программой Clojure и изменять ее, оценивая по одному выражению кода за раз.
Рисунок 1. Clojure REPL в окне терминала
Рисунок 2. Интегрированный в редактор Clojure REPL
Зачем использовать REPL?
Clojure REPL предоставляет программисту интерактивный опыт разработки. При разработке новой функциональности он позволяет создавать программы, сначала выполняя небольшие задачи вручную, как если бы он был компьютером, а затем постепенно автоматизировать их, пока желаемая функциональность не будет полностью запрограммирована. При отладке REPL делает выполнение программ осязаемым: он позволяет программисту быстро воспроизвести проблему, внимательно наблюдать за ее симптомами, а затем импровизировать эксперименты, чтобы быстро выявить причину ошибки и итерационно продвигаться к ее устранению.
Многие программисты на Clojure считают REPL и обеспечиваемую им тесную обратную связь самой убедительной причиной для использования Clojure. Это не означает, что языковые особенности Clojure, такие как неизменяемые структуры данных, не являются ценными: Clojure REPL получает большую часть своего влияния за счет этих особенностей, в частности потому, что Clojure был разработан с учетом интерактивной разработки.
В Clojure программист обычно использует REPL для широкого спектра задач программирования, когда в другом языке он обратился бы к другим инструментам. К таким задачам относятся:
- запуск локальных сред разработки,
- запуск автоматизированных наборов тестов,
- разовые запросы к базе данных и вмешательства,
- отладка,
- управление удаленными машинами,
- знакомство с библиотеками и API,
- … и многие другие виды исследований.
По сути, причина, по которой программисты используют REPL для всех этих задач, всегда одна и та же: потому что они хотят получить сочетание автоматизации и импровизации, которое не могут обеспечить ни полностью ручные инструменты (такие как приборная панель, консоли и т.д.), ни полностью автоматизированные (такие как скрипты), сохраняя свой рабочий процесс сосредоточенным в одной полнофункциональной среде программирования.
О чем пойдет речь в этом руководстве
Это руководство начнется с того, что вы начнете работать с Clojure REPL, а затем постепенно перейдет к более продвинутым способам использования Clojure REPL.
В зависимости от ваших потребностей, вам может не понадобиться читать это руководство целиком:
- Если вы только начинаете изучать Clojure, первых двух глав Запуск базового Clojure REPL и Базовое использование будет достаточно, чтобы начать продуктивное обучение.
- Как только вы начнете разрабатывать нетривиальные программы (например, веб-приложение для хобби), вам понадобятся идеи, представленные по крайней мере в следующих двух главах: Визуализация данных в REPL и Навигация по пространствам имен.
- Для работающих над проектами на Clojure на профессиональном уровне, Enhancing your REPL workflow и Guidelines for REPL-Aided Development являются обязательными к прочтению.
Сначала мы узнаем, как запустить базовый Clojure REPL.