clojure 开发工具
现在我已经对Clojure熟悉了一年多,而我投入的越多,它就越成为一种语言 。 一旦您克服了“括号恐惧症”,其他一切都将有所作为:工具,社区,良好的工程实践。 因此,现在是我说服他人的时候了。 在这篇文章中,我将尝试从头开始研究一个简单的Web应用程序,以展示2015年底用于使用Clojure开发的关键工具和库。
给Clojurian的注意事项 :如果您已经有点了解Clojure,但是从未做过比Hello World应用程序更大的事情,那么此材料是相当基本的,对您可能有用。
Java开发人员注意事项 :该资料显示了如何使用一堆Clojure工具和库以及一些代码来替换Spring,Angular,grunt,live-reload。
- 带有最终代码和各个步骤的回购在这里 。
引导程序
我认为所有人都同意该组件是管理Clojure应用程序生命周期的行业标准。 如果您是Java开发人员,则可以将其视为Spring(DI)的替代品-声明“组件”之间的依赖关系,这些依赖关系在“系统”启动时已解决。 因此,您只是说“我的组件需要一个存储库/数据库池”,而组件库则为您“注入”它。
为了简单起见,我喜欢从风管 Web应用程序模板开始。 遵循12要素原则,这是一个不错的入门组件应用程序。 因此,让我们开始吧:
lein new duct clojure-web-app +example
+example
参数告诉管道使用HTTP路由创建示例端点–这将很有帮助。 要完成引导, lein setup
在clojure-web-app
目录中运行lein setup
。
好的,让我们深入研究代码。 与组件和注入相关的代码应位于system.clj
文件中:
(defn new-system [config]
(let [config (meta-merge base-