美文网首页Clojure技术集合
emacs开发-02:从零开始学习emacs构建clojure项

emacs开发-02:从零开始学习emacs构建clojure项

作者: larluo_罗浩 | 来源:发表于2018-07-14 10:51 被阅读515次

直接开始, 不废话, 上内容:

第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

相关文章

网友评论

    本文标题:emacs开发-02:从零开始学习emacs构建clojure项

    本文链接:https://www.haomeiwen.com/subject/pxpmyftx.html