全部商品分类

您现在的位置: 全部商品分类 > 电子电脑 > 计算机技术 > 程序与语言

Clojure高级编程/Web开发经典丛书

  • 定价: ¥49.8
  • ISBN:9787302471110
  • 开 本:16开 平装
  •  
  • 折扣:
  • 出版社:清华大学
  • 页数:247页
  • 作者:(美)Jeremy Ander...
  • 立即节省:
  • 2017-06-01 第1版
  • 2017-06-01 第1次印刷
我要买:
点击放图片

导语

  

内容提要

  

    作为一门现代Lisp方言,Clojure专为支持并发和Java兼容性而设计,能提供众多开发人员孜孜以求的解决方案。凭借通用性和诸多功能,Clojure日益受到企业级应用开发人员(尤其是那些希望远离命令式编程加速工作流程的开发人员)的青睐。Jeremy Anderson、Michael Gaare、Justin Holguin、Nick Bailey、Timothy Pratley著的这本《Clojure高级编程》条理清晰,紧贴实际介绍Clojure的用法,为职业程序员提供完备参考。本书首先介绍函数式编程基础知识,此后重点讲解与Clojure相关的特定主题,并从专业Clojure贡献者的角度提出诸多见解。资深Clojure人才日益紧俏,这本精品指南将助你迅速蜕变为Clojure专业开发人士。

目录

第1章  保持初学者的心态
  1.1  函数式思维
    1.1.1  以值为导向
    1.1.2  从递归的角度考虑问题
    1.1.3  高阶函数
    1.1.4  拥抱惰性
    1.1.5  当变动成为必需时
    1.1.6  Nil双关
    1.1.7  函数式Web
  1.2  改进面向对象编程
    1.2.1  利用defmulti实现多态调度
    1.2.2  使用deftype和defrecord定义类型
    1.2.3  协议
    1.2.4  reify
  1.3  可持久化数据结构
  1.4  塑造语言
  1.5  小结
第2章  Clojure的快速反馈循环
  2.1  REPL驱动开发
    2.1.1  REPL在Leiningen中的基本操作
    2.1.2  通过nREPL实现远程REPL
    2.1.3  REPL在实际程序中的应用
    2.1.4  REPL与编辑器的连接
  2.2  代码重载
    2.2.1  从REPL重载代码
    2.2.2  自动重载代码
    2.2.3  编写可重载的代码
  2.3  小结
第3章  Web服务
  3.1  项目总览
  3.2  构成Web服务的元素
    3.2.1  库,而非框架
    3.2.2
    3.2.3  路由
    3.2.4  JSON端点
  3.3  示例服务
    3.3.1  创建项目
    3.3.2  其他命名空间
    3.3.3  默认中间件
    3.3.4  存储协议
    3.3.5  处理函数
    3.3.6  中间件
    3.3.7  路由
  3.4  部署
    3.4.1  使用Leiningen
    3.4.2  编译Uberjar或Uberwar
    3.4.3  托管
  3.5  小结
第4章  测试
  4.1  clojure.test测试基础
    4.1.1  with-test宏
    4.1.2  deftest库
    4.1.3  are
    4.1.4  使用基境
  4.2  测试策略
    4.2.1  数据库测试
    4.2.2  Ring处理函数测试
    4.2.3  采用with-redefs实现模拟/存根
    4.2.4  重新定义动态
    4.2.5  采用vcr-clj实现录制和重放
  4.3  度量代码质量
    4.3.1  采用cloverage度量代码覆盖率
    4.3.2  采用kibit和bikeshed进行静态分析
    4.3.3  将依赖置于掌控之中
  4.4  其他测试框架
    4.4.1  expectations
    4.4.2  speclj
    4.4.3  Cucumber
    4.4.4  kerodon
  4.5  小结
第5章  采用ClojureScript开发反应式网页
  5.1  ClojureScript与众不同
  5.2  ClojureScript初探
    5.2.1  创建新的ClojureScript项目
    5.2.2  采用Figwheel实现快速反馈
    5.2.3  创建组件
    5.2.4  数据建模
    5.2.5  响应事件并处理状态变更
    5.2.6  理解错误和警告信息
    5.2.7  命名空间布局
    5.2.8  样式
    5.2.9  表单输入与表单处理
    5.2.10  导航和路由
    5.2.11  HTTP调用:与服务器进行通信
    5.2.12  拖放
    5.2.13  发布
  5.3  Reagent进阶
    5.3.1  形式1:返回向量的函数
    5.3.2  形式2:返回组件的函数
    5.3.3  形式3:返回类的函数
    5.3.4  序列与键
    5.3.5  自定义标记
    5.3.6  反应
    5.3.7  对样式的注释
  5.4  Devcards的测试组件
  5.5  与JavaScript的互操作性
  5.6  一种语言,一种惯用法,多个平台
  5.7  Closure编译器和Closure库浅析
  5.8  采用DataScript处理建模状态
  5.9  在浏览器中使用core.async
  5.10  小结
第6章  Datomic数据库
  6.1  Datomic基础
    6.1.1  为何选择Datomic?
    6.1.2  Datomic数据模型
    6.1.3  查询
    6.1.4  事务
    6.1.5  索引:将数据切实绑定在一起
    6.1.6  Datomic的独特架构
  6.2  对应用数据建模
    6.2.1  任务跟踪器应用的示例模式
    6.2.2  实体id和分区
  6.3  Datomic的Clojure API
    6.3.1  基本设置
    6.3.2  在REPL中小试牛刀
  6.4  采用Datomic构建应用
    6.4.1  用户函数
    6.4.2  账户函数
    6.4.3  任务函数
    6.4.4  部署
    6.4.5  局限性
  6.5  小结
第7章  性能
  7.1  何为性能?
  7.2  性能优化的前提:选择正确的数据结构
  7.3  基准测试
    7.3.1  测定低速模块的时间
    7.3.2  采用Criterium测定高速模块的时间
    7.3.3  采用测试选择器进行性能测试
  7.4  并行
  7.5  记忆化
  7.6  内联
  7.7  利用瞬态机制安全地处理变动
  7.8  性能分析
  7.9  利用类型提示避免反射
  7.10  Java标志
  7.11  数值计算
  7.12  小结