直接开始, 不废话, 上内容:
第0步: clojure开发背景介绍
第1步: 使用leiningen开发第一个 clojure项目
第2步: 使用emacs智能高效living code
第3步: 常见问题列表FAQ
1. 软件安装网络不稳定,经常失败应该怎么处理?
2. 如何使用公司的私有repository?
3 如何编写前后端通用的库?
4. 如何连接到远程服务器进行living code
第4步: clojure知名软件库介绍
第5步: clojure知名技术资料介绍
第6步: clojurians-org中国社区成员
clojure开发背景介绍:(clojure是一种lisp, 是一种信仰)
开发clojure需要一系列工具, 我们的选择也很多。这里仅列出本人工具箱, 不做过多解释,好东西就是用。
软件包管理工具[nix]: https://nixos.org/nix/
项目构建工具[leiningen]: https://leiningen.org
IDE开发[emacs]: http://www.gnu.org/software/emacs/
必不可少的clojure文档:https://clojuredocs.org/core-library
clojure常用库列表: https://www.clojure-toolbox.com/
clojure技术书箱列表: https://github.com/clojurians-org/clojure-ebook-2
clojure技术微信群: 联系微信号18217307226添加
开始前的准备工作:(连软件包也要函数式的nix)
nix安装:
docker方式安装:
docker pull nixos/nix
docker run --name nixos -it --net=host nixos/nix:latest sh
;; 如果没有root权限,请参照: https://nixos.wiki/wiki/Nix_Installation_Guide
网络方式安装:
sudo install -d -m755 -o $USER -g $USER /nix
curl https://nixos.org/nix/install | sh
离线方式安装:
sudo install -d -m755 -o $USER -g $USER /nix
下载https://nixos.org/releases/nix安装包后解压运行./install
jdk安装: nix-env -i openjdk
1. 使用leiningen开发第一个 clojure项目(轻轻松松)
leiningen安装: nix-env -i leiningen
;; 如果下载过慢,请参见常见问题列表FAQ.
测试一下REPL: lein repl
就可以开始进行编程了, 来一个标准的Hello Wold。
玩一下项目: lein new my-first
这里我们简单的写一个字符串base64加密的工具
a. 新建工程: lein new my-first
b. 添加依赖:[org.clojure/data.codec "0.1.1"]
c. 下载依赖: lein deps
d. 在lein repl里面测试代码
e. 编写源码文件
f: 编译并运行模块:
g: 生成maven pom文件(可选):
h: 打成jar包并运行:
i: 发布到本地maven仓库
j: 发布到远程服务器: lein deploy(待补充)
2. 使用emacs智能高效living code(成为黑客的必要条件)
emacs安装: nix-env -i emacs
;; 如果下载过慢,请参见常见问题列表FAQ.
a. 添加melpa源软件包:https://github.com/melpa/melpa
;; 全部使用http协议, https一些情况下存在bug
b. 启动emacs, 更新软件包
alt+x: package-refresh-contents
c. 安装clojure开发插件cider: https://github.com/clojure-emacs/cider
alx+x: package-install回车后输入: cider
d: 安装插号匹配插件paredit: https://www.emacswiki.org/emacs/ParEdit
alx+x: package-install回车后输入: paredit
e: 退出emacs, 挂钩paredit-mode至clojure编辑
f: emacs编辑项目文件,输入ctrl+c, alt+j后启动repl
g: 使用ctrl + x, o从repl窗口切换至源文件
g. 输入ctrl+c, ctrl + k加载当前文件
h: 移至需要计算的括号后面,输入ctrl+x, ctrl+e进行计算
快捷键总结:
[ctrl + c, alt + j] 启动repl
[ctrl + c, ctrl + k] 加载当前文件
[ctrl + x, ctrl + e] 执行当前表达式
[ctrl + X, o] 切换窗口
[ctrl +0] 关闭当前窗口
[ctrl + 1] 仅保持当前窗口
[ctrl + 2] 水平分隔窗口
[ctrl + 3] 垂直分隔窗口
[ctrl + 5, 2] 最大化窗口
[ctrl + 5, 0] 还原最大化窗口
[ctrl +x, b] 替换当前窗口
[ctrl + alt + f] 跳转到匹配括号结束
[ctrl + alt + b] 跳转到匹配括号开始
3: 常见问题列表FAQ
4: clojure知名商用软件库介绍:
Metabase: BI领域及其难得的开源可视化工具
主页: https://www.metabase.com/
github: https://github.com/jepsen-io/jepsen
CircleCI: 持续集成领域的最强者
主页: https://circleci.com/
Storm: 经典流式处理框架
主页: http://storm-project.net/
github: https://www.storm-project.net/
Onyx: 以clojure为核心打造的新型流式处理框架
主页: http://www.onyxplatform.org/
github: https://github.com/onyx-platform/onyx
Datomic: clojure之父打造的函数式日志的数据库, 极高的数据稳定性。
主页: http://datomic.com/
Jepsen: 以测试出各种分布式软件BUG著称于世
主页: https://jepsen.io/
github: https://github.com/jepsen-io/jepsen
rieman: 监控利器
主页: http://riemann.io/
github: https://github.com/riemann/riemann
5. clojure知名技术资料介绍
6. clojurians-org中国社区成员: all@clojurians.org
;; 联系larluo@clojurians.org添加
2gua@clojurians.org
andelf@clojurians.org
ballon@clojurians.org
banana@clojurians.org
celerybean@clojurians.org
chenyyx@clojurians.org
clj@clojurians.org
cyz@clojurians.org
dajianshi@clojurians.org
darionyaphet@clojurians.org
deepnil@clojurians.org
defclass@clojurians.org
dewei@clojurians.org
doglooksgood@clojurians.org
emliunix@clojurians.org
f258fengye@clojurians.org
fetureisgood@clojurians.org
fptomatoeggs@clojurians.org
franco@clojurians.org
frank@clojurians.org
gzmask@clojurians.org
horizon@clojurians.org
hujianxin@clojurians.org
hzm@clojurians.org
isaac@clojurians.org
itgraph@clojurians.org
kanontds@clojurians.org
kinoko@clojurians.org
lambeta@clojurians.org
larluo@clojurians.org
leapon@clojurians.org
lijun@clojurians.org
linpengchengfa@clojurians.org
lo@clojurians.org
lzp@clojurians.org
mahengyang@clojurians.org
mantantan@clojurians.org
mengzhao@clojurians.org
padma0@clojurians.org
pangolin@clojurians.org
phenom720@clojurians.org
raincal@clojurians.org
shuhui@clojurians.org
solarup@clojurians.org
tiye@clojurians.org
wind13@clojurians.org
wmeng17@clojurians.org
wuy@clojurians.org
xhh@clojurians.org
xiangel@clojurians.org
xiaochaihu@clojurians.org
xulhui@clojurians.org
yaiba@clojurians.org
yuanbo@clojurians.org
yyqian@clojurians.org
zongwu@clojurians.org
网友评论