PingCRM on Clojure 使用教程
项目介绍
PingCRM on Clojure 是一个基于 Clojure/Script 的全栈演示应用程序,旨在说明 Inertia.js 的工作原理。该项目是原始 Ping CRM 的移植版本,原始版本使用 Laravel/PHP 编写。PingCRM on Clojure 使用了一系列 Clojure 生态系统中的工具和库,包括 Integrant、Ring、Reitit、next-jdbc 和 ClojureScript Reagent。
项目快速启动
安装步骤
-
克隆仓库
git clone https://github.com/prestancedesign/pingcrm-clojure.git cd pingcrm-clojure
-
构建前端
npm install npm run release
-
运行后端
clj -M:run
-
访问应用 打开浏览器并访问
http://localhost:3000
,使用以下默认账号登录:- 用户名:
johndoe@example.com
- 密码:
secret
- 用户名:
开发模式
-
前端开发
npm run dev
-
后端 REPL
clj -M:dev
启动 REPL 后,运行
(go)
以启动开发服务器。
应用案例和最佳实践
PingCRM on Clojure 展示了如何使用 Inertia.js 和 Clojure 构建单页应用程序(SPA)。以下是一些应用案例和最佳实践:
- 单页应用程序开发:使用 Inertia.js 可以避免编写 API,直接在客户端和服务器之间进行数据交互。
- Clojure 生态系统集成:通过 Integrant、Ring、Reitit 和 next-jdbc 等库,展示了如何在 Clojure 中进行全栈开发。
- 前端和后端分离:前端使用 ClojureScript 和 Reagent,后端使用 Clojure,实现了前后端的分离和高效开发。
典型生态项目
- Inertia.js:一个用于构建单页应用程序的库,无需编写 API。
- Reagent:一个用于构建 React 组件的 ClojureScript 库。
- Integrant:一个用于配置和启动系统的微框架。
- Ring:一个用于处理 HTTP 请求和响应的库。
- Reitit:一个用于路由和中间件的库。
- next-jdbc:一个用于数据库访问的库。
通过这些生态项目,PingCRM on Clojure 展示了如何在 Clojure 中进行全栈开发,并提供了丰富的功能和最佳实践。