Clojure Web开发实战 - (EPUB全文下载)
文件大小:0.22 mb。
文件格式:epub 格式。
书籍内容:
Clojure Web开发实战
第1章 起步
第2章 Clojure的Web技术栈
第3章 服务组件Liberator
第4章 访问数据库
第5章 相册
第6章 收尾
第7章 混合
附录1 选择IDE
附录2 Clojure入门
附录3 面向文档的数据库访问
第1章 起步
在简介部分,我们谈到了在编写应用程序时,采用函数式编程风格能够获得诸多好处。当然,想要学会一门语言,仅仅通过阅读是远远不够的,只有亲手编写一些代码,你才能获得真切的体验。
在本章中,我们将会介绍如何开发一个简单的留言簿应用,用户可以使用它给他人留言。通过它,我们能够了解Web应用的基本结构,并且尝试一些高效的Clojure开发工具。如果你是一个Clojure新手,那我建议你先跳到“附录2 Clojure入门”,快速了解一下Clojure的基本概念和语法。
1.1 环境设置
Clojure需要Java虚拟机(JVM,Java Virtual Machine)才能运行,此外,你还需要一份1.6或是更高版本的Java开发工具包[1](JDK,Java Development Kit)用于开发。Clojure是作为一个JAR包来分发的,你只需简单地将其包含在工程的class-path中即可。你可以使用任何常规的Java工具来构建Clojure应用,比方说Maven[2]或者Ant[3]。不过,我强烈建议你使用Leiningen[4],它是专为Clojure定制的。
使用Leiningen管理工程
借助Leiningen,你可以建立、构建、测试、打包和部署工程。也就是说,它能为你提供工程管理方面的一站式服务。
Maven是一个非常流行的Java依赖关系管理工具,而Leiningen就相当于Clojure世界中的Maven。重点是,Leiningen与Maven兼容,因此它可以毫无障碍地访问那些得到精心维护,且存放着海量Java类库的存储中心。此外,Clojure的库通常可以在Clojars[5]这个存储中心找到。所以,默认情况下Leiningen是启用了Clojars的。
使用Leiningen,你不用手动去下载那些在工程中需要用到的库。你只需要简单地声明一下工程的顶级依赖,剩下的事情Leiningen就会帮你自动搞定。
Leiningen的安装实在是小菜一碟,只需要从官方主页[6]上下载并执行安装脚本即可。
不如动手试试看。我们会通过执行下列命令,来下载这个脚本,并创建一个全新的Clojure工程:
wget https://raw.github.com/technomancy/leiningen/stable/bin/lein
chmod +x lein
mv lein ~/bin
lein new myapp
由于这是我们第一次运行lein这个命令,它做的第一件事情是安装它自己。一切顺利的话,你将会看到下面的输出:
Generating a project called myapp based on the 'default' template.
To see other templates (app, lein plug-in, etc), try `lein help new`.
一个新的文件夹myapp就创建好了,里面是应用程序的骨架。应用程序的代码存放在src文件夹中。其中有另外一个myapp文件夹,这个文件夹中只有一个文件,名为core.clj。文件内容如下:
(ns myapp.core)
(defn foo
"I don't do a whole lot."
[x]
(println x "Hello, World!"))
请注意命名空间的声明,与其文件夹结构是相匹配的。由于命名空间core位于myapp目录当中,所以它的名字就是myapp.core。
Leiningen工程文件一瞥
在工程文件夹myapp里有一个project.clj文件。这个文件包含了应用程序的描述信息,你可以仔细观察一下,就会发现这个文件是用标准的Clojure语法编写的,描述了应用的名称、版本、网址、许可证信息和依赖项,如下所示。
(defproject myapp "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.5.1"]])
通过修改这个project.clj文件,能让我们控制应用程序的方方面面。例如,我们可以通过添加:main关键字,将myapp.core命名空间下的foo函数设置为应用的入口点:
(defproject myapp "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.5.1"]]
;;this will set foo as the main function
:main myapp.core/foo)
此时我们就可以通过执行lein run这个命令来运行应用了。由于foo函数要求传入一个参数,我们只得遵命行事:
lein run First
First Hello, World!
............
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » Clojure Web开发实战 - (EPUB全文下载)