中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網 請 | 注冊
> >>
人民郵電出版社JAVASCRIPT函數式編程指南

包郵 人民郵電出版社JAVASCRIPT函數式編程指南

出版社:人民郵電出版社出版時間:2017-06-01
開本: 其他 頁數: 210
中 圖 價:¥38.2(6.5折) 定價  ¥59.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>
買過本商品的人還買了

人民郵電出版社JAVASCRIPT函數式編程指南 版權信息

人民郵電出版社JAVASCRIPT函數式編程指南 本書特色

本書主要介紹如何通過ECMAScript 6將函數式編程技術應用于代碼,以降低代碼的復雜性。 本書共三部分內容。*部分“函數式思想”是為第二部分的學習作鋪墊的,這一部分引入了對函數式JavaScript的描述,從一些核心的函數式概念入手,介紹了純函數、副作用以及聲明式編程等函數式編程的主要支柱:第二部分“函數式基礎”重點介紹函數式編程的核心技術,如函數鏈、柯里化、組合、Monad等;第三部分“函數式技能提升”則是介紹使用函數式編程解決現實問題的方法。 本書循序漸進地將函數式編程的相關知識鋪陳開來,以理論作鋪墊,并鋪以實例,旨在幫助讀者更好地掌握這些內容。如果讀者是對面向對象軟件有一定的了解,且對現代Web應用程序挑戰有一定認識的JavaScript開發人員,那么可以從中提升函數式編程技能。如果讀者是函數式編程的初學者,那么可以將本書作為入門書籍仔細閱讀,為今后的學習夯實基礎。

人民郵電出版社JAVASCRIPT函數式編程指南 內容簡介

本書主要介紹如何通過ECMAScript 6將函數式編程技術應用于代碼,以降低代碼的復雜性。本書共三部分內容。靠前部分“函數式思想”是為第二部分的學習作鋪墊的,這一部分引入了對函數式JavaScript的描述,從一些核心的函數式概念入手,介紹了純函數、副作用以及聲明式編程等函數式編程的主要支柱:第二部分“函數式基礎”重點介紹函數式編程的核心技術,如函數鏈、柯里化、組合、Monad等;第三部分“函數式技能提升”則是介紹使用函數式編程解決現實問題的方法。本書循序漸進地將函數式編程的相關知識鋪陳開來,以理論作鋪墊,并鋪以實例,旨在幫助讀者更好地掌握這些內容。如果讀者是對面向對象軟件有一定的了解,且對現代Web應用程序挑戰有一定認識的JavaScript開發人員,那么可以從中提升函數式編程技能。如果讀者是函數式編程的初學者,那么可以將本書作為入門書籍仔細閱讀,為今后的學習夯實基礎。

人民郵電出版社JAVASCRIPT函數式編程指南 目錄

目錄

第 一部分 函數式思想



第 1章 走近函數式 3

1.1 函數式編程有用嗎? 4

1.2 什么是函數式編程? 5

1.2.1 函數式編程是聲明式

編程 7

1.2.2 副作用帶來的問題和

純函數 8

1.2.3 引用透明和可置換性 12

1.2.4 存儲不可變數據 13

1.3 函數式編程的優點 14

1.3.1 鼓勵復雜任務的分解 15

1.3.2 使用流式鏈來處理數據 16

1.3.3 復雜異步應用中的響應 18

1.4 總結 19

第 2章 高階JavaScript 21

2.1 為什么要使用

JavaScript? 22

2.2 函數式與面向對象的程序設計 22

2.2.1 管理JavaScript對象的

狀態 28

2.2.2 將對象視為數值 29

2.2.3 深凍結可變部分 31

2.2.4 使用Lenses定位并修改對象圖 33

2.3 函數 34

2.3.1 一等函數 35

2.3.2 高階函數 36

2.3.3 函數調用的類型 38

2.3.4 函數方法 39

2.4 閉包和作用域 40

2.4.1 全局作用域 42

2.4.2 函數作用域 43

2.4.3 偽塊作用域 44

2.4.4 閉包的實際應用 45

2.5 總結 48



第二部分 函數式基礎



第3章 輕數據結構,重操作 51

3.1 理解程序的控制流 52

3.2 鏈接方法 53

3.3 函數鏈 54

3.3.1 了解 lambda 表達式 54

3.3.2 用_.map做數據變換 56

3.3.3 用_.reduce 收集結果 57

3.3.4 用_.filter 刪除不需要的

元素 61

3.4 代碼推理 62

3.4.1 聲明式惰性計算函數鏈 63

3.4.2 類SQL的數據:函數即

數據 66

3.5 學會遞歸地思考 68

3.5.1 什么是遞歸? 68

3.5.2 學會遞歸地思考 68

3.5.3 遞歸定義的數據結構 70

3.6 總結 73

第4章 模塊化且可重用的

代碼 75

4.1 方法鏈與函數管道的

比較 76

4.1.1 方法鏈接 77

4.1.2 函數的管道化 78

4.2 管道函數的兼容條件 78

4.2.1 函數的類型兼容條件 78

4.2.2 函數與元數:元組的

應用 79

4.3 柯里化的函數求值 82

4.3.1 仿真函數工廠 85

4.3.2 創建可重用的函數模板 86

4.4 部分應用和函數綁定 87

4.4.1 核心語言擴展 89

4.4.2 延遲函數綁定 89

4.5 組合函數管道 90

4.5.1 HTML部件的組合 91

4.5.2 函數組合:描述與求值

分離 92

4.5.3 函數式庫的組合 95

4.5.4 應對純的代碼和不純的

代碼 96

4.5.5 point-free編程 98

4.6 使用函數組合子來管理

程序的控制流 99

4.6.1 identity(I-combinator) 99

4.6.2 tap(K-組合子) 99

4.6.3 alt(OR-組合子) 100

4.6.4 seq(S-組合子) 101

4.6.5 fork(join)組合子 101

4.7 總結 102

第5章 針對復雜應用的設計

模式 103

5.1 命令式錯誤處理的

不足 104

5.1.1 用try-catch處理錯誤 104

5.1.2 函數式程序不應拋出

異常 105

5.1.3 空值(null)檢查問題 106

5.2 一種更好的解決方案

——Functor 106

5.2.1 包裹不安全的值 107

5.2.2 Functor定義 108

5.3 使用Monad函數式地處理錯誤 111

5.3.1 Monad:從控制流到

數據流 111

5.3.2 使用Maybe Monad和Either Monad來處理異常 115

5.3.3 使用IO Monad與外部資源交互 123

5.4 Monadic鏈式調用及

組合 126

5.5 總結 131



第三部分 函數式技能提升



第6章 堅不可摧的代碼 135

6.1 函數式編程對單元測試的影響 136

6.2 測試命令式代碼的

困難 137

6.2.1 難以識別和分解任務 137

6.2.2 對共享資源的依賴會導致結果不一致 138

6.2.3 按預定義順序執行 139

6.3 測試函數式代碼 140

6.3.1 把函數當作黑盒子 140

6.3.2 專注于業務邏輯,而不是控制流 141

6.3.3 使用Monadic式從不純的代碼中分離出純函數 142

6.3.4 mock外部依賴 144

6.4 通過屬性測試制定規格

說明 146

6.5 通過代碼覆蓋率衡量有

效性 152

6.5.1 衡量函數式代碼測試的

有效性 152

6.5.2 衡量函數式代碼的

復雜性 155

6.6 總結 158

第7章 函數式優化 159

7.1 函數執行機制 160

7.1.1 柯里化與函數上下文

堆棧 161

7.1.2 遞歸的弱點 164

7.2 使用惰性求值推遲

執行 165

7.2.1 使用函數式組合子避免重復計算 167

7.2.2 利用shortcut fusion 167

7.3 實現需要時調用的

策略 168

7.3.1 理解記憶化 169

7.3.2 記憶化計算密集型

函數 169

7.3.3 有效利用柯里化與

記憶化 172

7.3.4 通過分解來實現更大程度

的記憶化 173

7.3.5 記憶化遞歸調用 173

7.4 遞歸和尾遞歸優化 175

7.5 總結 178

第8章 管理異步事件以及

數據 181

8.1 異步代碼的挑戰 182

8.1.1 在函數之間創建時間依賴

關系 182

8.1.2 陷入回調金字塔 183

8.1.3 使用持續傳遞式樣 186

8.2 一等公民Promise 188

8.2.1 鏈接將來的方法 190

8.2.2 組合同步和異步行為 195

8.3 生成惰性數據 197

8.3.1 生成器與遞歸 199

8.3.2 迭代器協議 200

8.4 使用RxJS進行函數式和響應式編程 202

8.4.1 數據作為Observable

序列 202

8.4.2 函數式編程與響應式

編程 203

8.4.3 RxJS和Promise 205

8.5 總結 206

附錄 本書中使用的

JavaScript庫 207

函數式JavaScript庫 207

使用的其他庫 208







展開全部

人民郵電出版社JAVASCRIPT函數式編程指南 作者簡介

Luis Atencio(@luijar)是美國佛羅里達州勞德代爾堡的Citrix Systems公司的一名軟件工程師。他擁有計算機科學學士學位和碩士學位,現在使用JavaScript、Java和PHP平臺進行全職開發和構建應用程序。Luis積極參與社區活動,并經常在當地的聚會和會議中發表演講。他在luisatencio.net上發布關于軟件工程的博客,并為雜志和DZone撰寫文章,同時還是《RxJS in Action》的共同作者。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 东莞猎头公司_深圳猎头公司_广州猎头公司-广东万诚猎头提供企业中高端人才招聘服务 | 英思科GTD-3000EX(美国英思科气体检测仪MX4MX6)百科-北京嘉华众信科技有限公司 | 贵阳用友软件,贵州财务软件,贵阳ERP软件_贵州优智信息技术有限公司 | 杭州实验室尾气处理_实验台_实验室家具_杭州秋叶实验设备有限公司 | 成都热收缩包装机_袖口式膜包机_高速塑封机价格_全自动封切机器_大型套膜机厂家 | 非小号行情 - 专业的区块链、数字藏品行情APP、金色财经官网 | 全自动固相萃取仪_高通量真空平行浓缩仪-勤业永为 | 青州开防盗门锁-配汽车芯片钥匙-保险箱钥匙-吉祥修锁店 | 杭州营业执照代办-公司变更价格-许可证办理流程_杭州福道财务管理咨询有限公司 | 合肥网带炉_安徽箱式炉_钟罩炉-合肥品炙装备科技有限公司 | Dataforth隔离信号调理模块-信号放大模块-加速度振动传感器-北京康泰电子有限公司 | 杭州代理记账费用-公司注销需要多久-公司变更监事_杭州福道财务管理咨询有限公司 | 水稻烘干机,小麦烘干机,大豆烘干机,玉米烘干机,粮食烘干机_巩义市锦华粮食烘干机械制造有限公司 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 同学聚会纪念册制作_毕业相册制作-成都顺时针宣传画册设计公司 | 数年网路-免费在线工具您的在线工具箱-shuyear.com | 东莞爱加真空科技有限公司-进口真空镀膜机|真空镀膜设备|Polycold维修厂家 | 深圳美安可自动化设备有限公司,喷码机,定制喷码机,二维码喷码机,深圳喷码机,纸箱喷码机,东莞喷码机 UV喷码机,日期喷码机,鸡蛋喷码机,管芯喷码机,管内壁喷码机,喷码机厂家 | vr安全体验馆|交通安全|工地安全|禁毒|消防|安全教育体验馆|安全体验教室-贝森德(深圳)科技 | 阿尔法-MDR2000无转子硫化仪-STM566 SATRA拉力试验机-青岛阿尔法仪器有限公司 | 储能预警-储能消防系统-电池舱自动灭火装置-四川千页科技股份有限公司官网 | MTK核心板|MTK开发板|MTK模块|4G核心板|4G模块|5G核心板|5G模块|安卓核心板|安卓模块|高通核心板-深圳市新移科技有限公司 | 济南网站建设_济南网站制作_济南网站设计_济南网站建设公司_富库网络旗下模易宝_模板建站 | 桌上式超净工作台-水平送风超净工作台-上海康路仪器设备有限公司 | 国际线缆连接网 - 连接器_线缆线束加工行业门户网站 | 干粉砂浆设备_干混砂浆生产线_腻子粉加工设备_石膏抹灰砂浆生产成套设备厂家_干粉混合设备_砂子烘干机--郑州铭将机械设备有限公司 | 耐磨焊丝,堆焊焊丝,耐磨药芯焊丝,碳化钨焊丝-北京耐默公司 | 硅胶布|电磁炉垫片|特氟龙胶带-江苏浩天复合材料有限公司 | 泰国试管婴儿_泰国第三代试管婴儿_泰国试管婴儿费用/多少钱_孕泰来 | 净化工程_无尘车间_无尘车间装修-广州科凌净化工程有限公司 | 999范文网_优质范文下载写作帮手| 400电话_400电话申请_888元包年_400电话办理服务中心_400VIP网 | 防伪溯源|防窜货|微信二维码营销|兆信_行业内领先的防伪防窜货数字化营销解决方案供应商 | PVC地板|PVC塑胶地板|PVC地板厂家|地板胶|防静电地板-无锡腾方装饰材料有限公司-咨询热线:4008-798-128 | 杭州可当科技有限公司—流量卡_随身WiFi_AI摄像头一站式解决方案 | 冲锋衣滑雪服厂家-冲锋衣定制工厂-滑雪服加工厂-广东睿牛户外(S-GERT) | 岩棉板|岩棉复合板|聚氨酯夹芯板|岩棉夹芯板|彩钢夹芯板-江苏恒海钢结构 | 依维柯自动挡房车,自行式国产改装房车,小型房车价格,中国十大房车品牌_南京拓锐斯特房车 - 南京拓锐斯特房车 | 工业洗衣机_工业洗涤设备_上海力净工业洗衣机厂家-洗涤设备首页 bkzzy在职研究生网 - 在职研究生招生信息咨询平台 | 交通气象站_能见度检测仪_路面状况监测站- 天合环境科技 | 深圳富泰鑫五金_五金冲压件加工_五金配件加工_精密零件加工厂 | 不锈钢螺丝 - 六角螺丝厂家 - 不锈钢紧固件 - 万千紧固件--紧固件一站式采购 |