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

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

第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

emacs开发-02:从零开始学习emacs构建clojure项目_第1张图片

;; 如果没有root权限,请参照: https://nixos.wiki/wiki/Nix_Installation_Guide

网络方式安装: 
  sudo install -d -m755 -o $USER -g $USER /nix
  curl https://nixos.org/nix/install | sh

emacs开发-02:从零开始学习emacs构建clojure项目_第2张图片

离线方式安装:
    sudo install -d -m755 -o $USER -g $USER /nix
    下载https://nixos.org/releases/nix安装包后解压运行./install

emacs开发-02:从零开始学习emacs构建clojure项目_第3张图片

jdk安装: nix-env -i openjdk

emacs开发-02:从零开始学习emacs构建clojure项目_第4张图片

1. 使用leiningen开发第一个 clojure项目(轻轻松松)

leiningen安装:   nix-env -i leiningen

;; 如果下载过慢,请参见常见问题列表FAQ.

emacs开发-02:从零开始学习emacs构建clojure项目_第5张图片

测试一下REPL: lein repl 

就可以开始进行编程了, 来一个标准的Hello Wold。

emacs开发-02:从零开始学习emacs构建clojure项目_第6张图片

玩一下项目: lein new my-first

这里我们简单的写一个字符串base64加密的工具

a. 新建工程: lein new my-first

b. 添加依赖:[org.clojure/data.codec "0.1.1"] 

emacs开发-02:从零开始学习emacs构建clojure项目_第7张图片

c. 下载依赖: lein deps

emacs开发-02:从零开始学习emacs构建clojure项目_第8张图片

d. 在lein repl里面测试代码

emacs开发-02:从零开始学习emacs构建clojure项目_第9张图片

e. 编写源码文件

emacs开发-02:从零开始学习emacs构建clojure项目_第10张图片

f: 编译并运行模块: 

g: 生成maven pom文件(可选):

h: 打成jar包并运行:

i: 发布到本地maven仓库

emacs开发-02:从零开始学习emacs构建clojure项目_第11张图片

j: 发布到远程服务器: lein deploy(待补充)


2. 使用emacs智能高效living code(成为黑客的必要条件) 

emacs安装:   nix-env -i emacs 

;; 如果下载过慢,请参见常见问题列表FAQ.

emacs开发-02:从零开始学习emacs构建clojure项目_第12张图片

    a. 添加melpa源软件包:https://github.com/melpa/melpa

        ;; 全部使用http协议, https一些情况下存在bug

emacs开发-02:从零开始学习emacs构建clojure项目_第13张图片
emacs开发-02:从零开始学习emacs构建clojure项目_第14张图片

    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编辑

emacs开发-02:从零开始学习emacs构建clojure项目_第15张图片

    f: emacs编辑项目文件,输入ctrl+c, alt+j后启动repl

emacs开发-02:从零开始学习emacs构建clojure项目_第16张图片

    g: 使用ctrl + x, o从repl窗口切换至源文件

    g. 输入ctrl+c, ctrl + k加载当前文件
    h:  移至需要计算的括号后面,输入ctrl+x, ctrl+e进行计算 

emacs开发-02:从零开始学习emacs构建clojure项目_第17张图片

    快捷键总结:

        [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中国社区成员: [email protected] 

;; 联系[email protected]添加

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

你可能感兴趣的:(emacs开发-02:从零开始学习emacs构建clojure项目)