Clojure:
Начало нового проекта
Как:
Для начала работы с проектом на Clojure мы будем использовать Leiningen, популярный инструмент сборки для Clojure:
;; 1. Установите Leiningen, если ещё не сделали это (https://leiningen.org/)
;; 2. Создайте новый каркас проекта:
lein new app my-cool-app
;; 3. Перейдите в ваш новый проект:
cd my-cool-app
;; 4. Запустите REPL (цикл чтение-выполнение-вывод):
lein repl
;; Пример вывода:
;; nREPL server started on port 12345 on host 127.0.0.1 - nrepl://127.0.0.1:12345
;; REPL-y 0.4.4, nREPL 0.6.0
;; Clojure 1.10.1
;; Java 1.8.0_232
;; Docs: (doc function-name-here)
;; (find-doc "part-of-name-here")
;; Source: (source function-name-here)
;; Javadoc: (javadoc java-object-or-class-here)
;; Exit: Control+D or (exit) or (quit)
;; Results: Stored in vars *1, *2, *3, an exception in *e
;; 5. Создайте файл для вашего кода (src/my_cool_app/core.clj) и откройте его в вашем любимом текстовом редакторе.
;; 6. Напишите некоторый простой Clojure код:
(ns my-cool-app.core)
(defn say-hello []
(println "Привет, мир Clojure!"))
;; 7. Запустите вашу функцию в REPL:
(my-cool-app.core/say-hello)
;; Пример вывода:
;; Привет, мир Clojure!
Глубокое погружение
Проекты на Clojure часто начинаются с использования Leiningen или Boot для управления зависимостями, сборки и автоматизации задач. Leiningen существует с 2010 года и стал основным выбором для большинства Clojurists.
Существуют и альтернативные инструменты, такие как deps.edn
и Clojure CLI инструменты, которые были введены Clojure/core для более простого управления зависимостями и конфигурацией проекта.
Clojure ценит неизменяемость и функциональное программирование. Правильное начало проекта подчеркивает чистоту управления состоянием и разделение обязанностей между функциями и пространствами имен.
Проекты обычно придерживаются стандартной структуры каталогов:
src/
для основного кода.test/
для тестового кода.resources/
для некодовых ресурсов.project.clj
илиdeps.edn
для управления зависимостями и конфигурациями.
Хорошей практикой является минимализм на старте. Добавляйте зависимости по мере необходимости, сохраняя ваш проект легким и управляемым.