Clojure高級編程

Clojure高級編程 pdf epub mobi txt 電子書 下載2025

出版者:清華大學齣版社
作者:[美] Jeremy Anderson,Michael Gaare, Justin Holguín
出品人:
頁數:247
译者:蔣楠
出版時間:2017-6-29
價格:49.80元
裝幀:平裝
isbn號碼:9787302471110
叢書系列:
圖書標籤:
  • Clojure
  • Clojure
  • 函數式編程
  • 高級編程
  • 並發編程
  • 數據結構
  • 元編程
  • JVM
  • Lisp
  • 編程語言
想要找書就要到 小美書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

作為一門現代Lisp方言,Clojure專為支持並發和Java兼容性而設計,能提供眾多開發人員孜孜以求的解決方案。憑藉通用性和諸多功能,Clojure日益受到企業級應用開發人員(尤其是那些希望遠離命令式編程加速工作流程的開發人員)的青睞。本書條理清晰,緊貼實際介紹Clojure的用法,為職業程序員提供完備參考。本書首先介紹函數式編程基礎知識,此後重點講解與Clojure相關的特定主題,並從專業Clojure貢獻者的角度提齣諸多見解。資深Clojure人纔日益緊俏,這本精品指南將助你迅速蛻變為Clojure專業開發人士。

主要內容

◆ 探討函數式編程與麵嚮對象編程之間的差異,分析

Clojure如何消除這種差異

◆ 討論快速反饋循環中聲明式編程所用的REPL流程

◆ 演示如何使用ClojureScript來設計和開發反應式網頁

◆ 介紹Clojure的特性、性能與功能,並討論使其成為一門

重要語言的通用兼容性

◆ 涵蓋Web服務、測試和Datomic數據庫等主題,是完備的

專業指南和教程

◆ 從專傢程序員和Clojure貢獻者的角度,提齣應用開發的

實用見解

著者簡介

Jeremy Anderson就職於美國密歇根州的Code Adept,這是一傢提供高品質軟件交付的谘詢公司,業務涵蓋軟件開發、敏捷教導與培訓服務。Jeremy是一名Clojure愛好者,對多種Clojure庫的開發都有貢獻。Jeremy對嚮用戶提供編程培訓極為熱心,並作為誌願者在當地中學協助講授計算機課程。

Michael Gaare就職於美國一傢提供金融技術服務的初創公司NextAngles,擔任平颱技術負責人。從2012年起,Michael就采用Clojure開發專業的Web服務、數據處理係統與各種庫(而非框架)。Michael愛好參加歌劇演齣,大部分閑暇時間都與妻子和兩個女兒度過。

Justin Holguín在美國波特蘭的Puppet Labs擔任軟件工程師,負責Clojure後端服務的開發。Justin熱愛函數式編程,對高級類型係統、基於屬性的測試等能夠提高軟件穩定性的技術情有獨鍾。

Nick Bailey是一名Clojure愛好者,也負責Clojure java.jmx庫的維護。Nick在總部位於美國加州的DataStax擔任軟件架構師,使用Clojure開發用於管理分布式數據庫的企業級軟件。Nick從2010年起開始接觸Clojure,並由此成為這門語言的擁護者。

Timothy Pratley從2008年起開始使用Clojure,是這門語言的貢獻者和倡導者。Timothy目前就職於美國舊金山的Outpace Systems,負責開發基於Clojure、ClojureScript和Clojure Android的解決方案。Timothy已有15年的專業軟件開發經驗,接觸過許多編程語言、框架和數據庫,熱愛Clojure、Datomic數據庫、結對編程(pair programming) ,喜歡思考。

圖書目錄

第1章 保持初學者的心態 1
1.1 函數式思維 2
1.1.1 以值為導嚮 2
1.1.2 從遞歸的角度考慮問題 4
1.1.3 高階函數 7
1.1.4 擁抱惰性 11
1.1.5 當變動成為必需時 12
1.1.6 Nil雙關 15
1.1.7 函數式Web 16
1.2 改進麵嚮對象編程 17
1.2.1 利用defmulti實現
多態調度 18
1.2.2 使用deftype和defrecord
定義類型 20
1.2.3 協議 21
1.2.4 reify 22
1.3 可持久化數據結構 23
1.4 塑造語言 27
1.5 小結 29
第2章 Clojure的快速反饋循環 31
2.1 REPL驅動開發 31
2.1.1 REPL在Leiningen中的
基本操作 32
2.1.2 通過nREPL實現
遠程REPL 34
2.1.3 REPL在實際程序中的
應用 36
2.1.4 REPL與編輯器的連接 40
2.2 代碼重載 41
2.2.1 從REPL重載代碼 41
2.2.2 自動重載代碼 45
2.2.3 編寫可重載的代碼 52
2.3 小結 54
第3章 Web服務 55
3.1 項目總覽 55
3.2 構成Web服務的元素 57
3.2.1 庫,而非框架 57
3.2.2 HTTP 57
3.2.3 路由 66
3.2.4 JSON端點 73
3.3 示例服務 78
3.3.1 創建項目 78
3.3.2 其他命名空間 78
3.3.3 默認中間件 81
3.3.4 存儲協議 82
3.3.5 處理函數 87
3.3.6 中間件 92
3.3.7 路由 94
3.4 部署 99
3.4.1 使用Leiningen 99
3.4.2 編譯Uberjar或Uberwar 100
3.4.3 托管 101
3.5 小結 102
第4章 測試 105
4.1 clojure.test測試基礎 106
4.1.1 with-test宏 106
4.1.2 deftest庫 107
4.1.3 are 108
4.1.4 使用基境 109
4.2 測試策略 110
4.2.1 數據庫測試 110
4.2.2 Ring處理函數測試 112
4.2.3 采用with-redefs實現
模擬/存根 115
4.2.4 重新定義動態var 117
4.2.5 采用vcr-clj實現錄製和
重放 118
4.3 度量代碼質量 119
4.3.1 采用cloverage度量
代碼覆蓋率 120
4.3.2 采用kibit和bikeshed
進行靜態分析 122
4.3.3 將依賴置於掌控之中 124
4.4 其他測試框架 127
4.4.1 expectations 127
4.4.2 speclj 128
4.4.3 Cucumber 129
4.4.4 kerodon 136
4.5 小結 137
第5章 采用ClojureScript開發
反應式網頁 139
5.1 ClojureScript與眾不同 140
5.2 ClojureScript初探 142
5.2.1 創建新的ClojureScript
項目 142
5.2.2 采用Figwheel實現
快速反饋 143
5.2.3 創建組件 144
5.2.4 數據建模 145
5.2.5 響應事件並處理狀態
變更 147
5.2.6 理解錯誤和警告信息 148
5.2.7 命名空間布局 151
5.2.8 樣式 152
5.2.9 錶單輸入與錶單處理 153
5.2.10 導航和路由 156
5.2.11 HTTP調用:與服務器
進行通信 157
5.2.12 拖放 160
5.2.13 發布 160
5.3 Reagent進階 162
5.3.1 形式1:返迴嚮量的
函數 162
5.3.2 形式2:返迴組件的
函數 163
5.3.3 形式3:返迴類的函數 164
5.3.4 序列與鍵 165
5.3.5 自定義標記 167
5.3.6 反應 168
5.3.7 對樣式的注釋 170
5.4 Devcards的測試組件 170
5.5 與JavaScript的互操作性 174
5.6 一種語言,一種慣用法,
多個平颱 176
5.7 Closure編譯器和Closure
庫淺析 176
5.8 采用DataScript處理
建模狀態 177
5.9 在瀏覽器中使用core.async 178
5.10 小結 179
第6章 Datomic數據庫 181
6.1 Datomic基礎 182
6.1.1 為何選擇Datomic? 182
6.1.2 Datomic數據模型 184
6.1.3 查詢 187
6.1.4 事務 192
6.1.5 索引:將數據切實綁定
在一起 195
6.1.6 Datomic的獨特架構 198
6.2 對應用數據建模 200
6.2.1 任務跟蹤器應用的
示例模式 200
6.2.2 實體id和分區 209
6.3 Datomic的Clojure API 209
6.3.1 基本設置 209
6.3.2 在REPL中小試牛刀 213
6.4 采用Datomic構建應用 219
6.4.1 用戶函數 219
6.4.2 賬戶函數 222
6.4.3 任務函數 223
6.4.4 部署 227
6.4.5 局限性 227
6.5 小結 228
第7章 性能 231
7.1 何為性能? 233
7.2 性能優化的前提:選擇
正確的數據結構 233
7.3 基準測試 235
7.3.1 測定低速模塊的時間 235
7.3.2 采用Criterium測定高速
模塊的時間 237
7.3.3 采用測試選擇器進行
性能測試 239
7.4 並行 239
7.5 記憶化 240
7.6 內聯 241
7.7 利用瞬態機製安全地
處理變動 243
7.8 性能分析 243
7.9 利用類型提示避免反射 244
7.10 Java標誌 246
7.11 數值計算 246
7.12 小結 247
· · · · · · (收起)

讀後感

評分

評分

評分

評分

評分

用戶評價

评分

评分

评分

评分

评分

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.quotespace.org All Rights Reserved. 小美書屋 版权所有