前端函数式演进

邵丁丁

  • 出版商: 機械工業
  • 出版日期: 2020-12-25
  • 定價: $474
  • 售價: 7.9$374
  • 貴賓價: 7.5$356
  • 語言: 簡體中文
  • 頁數: 196
  • 裝訂: 平裝
  • ISBN: 7111671007
  • ISBN-13: 9787111671008
  • 相關分類: JavaScript
  • 立即出貨

買這商品的人也買了...

商品描述

文章的內容先是介紹函數式所屬的技能樹位置:編程範式,也介紹了各種範式在前端的體現。
隨後會過一批函數式的常見概念,給對函數式思想了解較少的同學一些基礎內容。
這兩章節我理解對於基礎較好的同學可能是老生常談,但因為加入了一些前端示例和我的理解,也應該能算是老壇新酒。
了解完編程範式和基礎概念後,我會直接進入“函數式思維”的內容。
這章內容主要是幫助大家在依賴函數式框架工具設計時,從傳統命令式編程的思考方式,向更契合函數式前端開發的方式改變。
比如對循環的實現、數據結構的差別、對異常態和類型的處理等。
到七章,分別是前端函數式的幾種重要的形態。章是Monadic編程,它是函數式的一種經典工程實現,也在前端衍生了一些工具。
我將在這章把前端函數式的幾個基礎理論單元如函子、么半的介紹,用它們實現複雜工具Promise的推導,
以及少量有必要介紹給大家的範疇論知識都詳盡敘述。
五章則是“從jQuery而來,看函數式工具形態演進”。
很多其他領域工程師對前端的理解都停留在了jQuery的經典時代。
我會從函數式的“形”的角度出發,帶來jQuery開始的前端函數式工具論述。
六章和七章我將介紹前端函數式發展到一定成熟度後,這兩年的兩個熱門框架工具:RJS和React Hook。
介紹他們的基本原理和他們基於什麼樣的需求和過程演進出來的。
所以文章基本是兩大部分,前三章的偏理論內容,和後章的偏熱門工具內容。也都是大家希望付出一定時間了解的熱點內容。
後一章,我想在總結的同時,回歸初心,和大家探討一些當前前端開發的核心複雜度,以及函數式在當前前端開發中的貢獻。
然後我們還要釐定方向,像多藉鑑函數式思想一樣,多藉“他山之石”,幫助大家在前端和其他研發領域成為更出色的研發工程師。

作者簡介

邵丁丁

具備豐富工程經驗的資深前端研發者,目前是阿里本地生活企業訂餐技術部的前端負責人。
他擁有十多年傳統軟件和互聯網軟件的開發經驗,曾參與大型企業內部控制類軟件(ERP系統、OA系統)、
檢測類工程軟件,以及餓了麼外賣十多條業務線的Web前端項目,對軟件工程和架構有深刻的理解。

目錄大綱

前言
1章編程範式和前端體現1
1.1編程範式2
1.2命令式編程2
1.3面向對象3
1.4元編程4
1.5聲明式編程5
1.6邏輯式編程6
1.7函數式編程8
1.8案例和代碼9
1.8.1案例總覽9
1.8.2命令式編程示例11
1.8.3聲明式編程示例11
1.8.4面向對象、元編程和函數式編程示例13
1.9本章小結15

2章前端函數式基礎概念16
2.1多範式中的函數式16
2.1.1閉包17
2.1.2高階函數18
2.1.3 Lambda表達式19
2.1.4 Array數組集合和函數組合子20
2.2持續補全21
2.2.1基於高階函數的編碼優化21
2.2 .2基於工具和標準的再加工24
2.3函數式的抽象單元26
2.3.1副作用27
2.3.2引用透明和純函數27
2.4案例和代碼28
2.4.1閉包和單例28
2.4.2數組方法和鍊式調用31
2.4.3惰性加載32
2.5本章小結33

3章函數式思維和前端特徵35
3.1狀態和副作用36
3.2過程和高階抽象38
3.2.1便捷地對過程反复包裝39
3.2.2另一種編程世界觀:流過系統的信息流40
3.3運行環境承擔更多的職責41
3.3.1循環、映和遞歸42
3.3.2函數式過程抽象忽略的細節作43
3.4類型和數據結構44
3.4.1面向能力的數據結構44
3.4.2對場景下類型的作用進行替換46
3.5設計模式和語言特徵48
3.6異常態49
3.7前端的其他特徵50
3.7.1弱類型和動態類型51
3.7.2 Array的組合運算51
3.8案例和代碼52
3.8.1狀態和副作用示例52
3.8.2過程和高階抽象示例55
3.8.3循環和遞歸示例56
3.8.4類型檢測和動態類型60
3.8.5異常態和容錯處理61
3.9本章小結63

4章Monadic編程和它的範疇理論64
4.1 Monadic編程簡介64
4.2函子和它的基礎實例65
4.3應用函子66
4.4 Maybe實現類68
4.5 Either函子71
4.6么半73
4.7單子:自函子範疇上的么半75
4.8函數響應式編程77
4.9案例和代碼78
4.9.1函子示例78
4.9.2響應式編程的簡單示例80
4.10本章小結81

5章函數式工具形態演進82
5.1 jQuery和鍊式調用82
5.2管道和組合84
5.3 Promise編碼87
5.4 Async/Await函數89
5.5 MobX、RJS和響應式編程90
5.6函數式的並發保障92
5.7案例和代碼94
5.7 .1鍊式調用和開發中調試94
5.7.2 Pipeline和切面編程95
5.7.3 Async/Await異步和異常96
5.8本章小結97

6章從RJS看事件流和函數響應式編程99
6.1 RJS的產生和事件流編程演進99
6.1.1 RJS的產生100
6.1.2事件流響應演變100
6.2核心類103
6.3 “紅包雨掉落”代碼改造106
6.4事件流相關主要方法舉例110
6.5案例和代碼114
6.6本章小結118

7章React Hooks和它的函數式考量120
7.1無狀態組件和狀態管理120
7.1.1現代前端框架和無狀態組件121
7.1.2狀態管理125
7.2 React Hooks的原理和目的128
7.3 React Hooks的實踐和方向130
7.4案例和代碼133
7.5本章小結137

8章函數式和前端複雜度總結138
8.1前端開發的複雜度138
8.1.1前端開發者可以介入的時機139
8.1.2純粹的運算複雜度142
8.1.3前端和相鄰領域複雜度的區別142
8.2函數式在前端的積極作用144
8.2.1釐清運行時的狀態變化145
8.2.2加強編程的工程指標145
8.2.3簡化編碼146
8.3編碼之上的工作146
8.3.1軟件完整度和現實的工作狀態146
8.3.2前端迭代的呼應147
8.3.3編碼外的更多規劃148
8.4他山之石148
8.4.1前端即是客戶端148
8.4.2更充分地利用前端能力149
8.4.3工程研發149
8.5案例和代碼151
8.5.1前端開發複雜度151
8.5.2運行時監控和整體工程特性155
8.6本章小結158

9章簡易關卡引擎項目補充159
9.1需求清單159
9.2項目和文件結構161
9.3開發者和用戶交互162
9.4整體服務和引擎生命週期162
9.5代碼清單163
9.5.1主頁需求實現163
9.5. 2關卡頁需求實現167
9.5.3統計分數等數據服務邏輯176
9.5.4體力模式等前端業務邏輯178
9.5.5自定義關卡詳情頁181
9.5.6廣告頁和活動頁183
9.6更多擴展186
9.7本章小結186