注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡軟件與程序設計GraphQL實戰(zhàn):寫給全棧工程師們

GraphQL實戰(zhàn):寫給全棧工程師們

GraphQL實戰(zhàn):寫給全棧工程師們

定 價:¥59.00

作 者: 王北南 著
出版社: 機械工業(yè)出版社
叢編項:
標 簽: 暫缺

ISBN: 9787111630937 出版時間: 2019-08-01 包裝: 平裝
開本: 16開 頁數(shù): 184 字數(shù):  

內(nèi)容簡介

  《GraphQL實戰(zhàn)——寫給全棧工程師們》以當下流行的移動互聯(lián)網(wǎng)應用開發(fā)為切入點,結(jié)合作者多年的前后端實際架構(gòu)經(jīng)驗,針對目前互聯(lián)網(wǎng)上程序員們對GraphQL的疑問和誤解,并輔以業(yè)界真實案例,對前后端設計中的難點要點分別加以介紹。在前端,本書重點講述了如何提升用戶體驗和響應速度;在后端,主要講解了在高并發(fā)海量數(shù)據(jù)環(huán)境下的設計與優(yōu)化;*后,還介紹了如何讓GraphQL與大數(shù)據(jù)平臺整合來訓練機器學習模型?!禛raphQL實戰(zhàn)——寫給全棧工程師們》內(nèi)容涵蓋前端、后端和大數(shù)據(jù)平臺開發(fā),非常適合全棧程序員閱讀,也可作為前端程序員、后端程序員、大數(shù)據(jù)工程師、算法工程師和技術(shù)型產(chǎn)品經(jīng)理提升知識儲備的參考書。

作者簡介

  Twitter核心服務組高級研發(fā)工程師,畢業(yè)于美國Syracuse大學計算機科學與工程學院,獲博士學位,曾任國內(nèi)多家公司CTO、技術(shù)總監(jiān)、首席架構(gòu)師。在前后端以及全棧研發(fā)一線奮斗十余載,專注于高并發(fā)、高可用微服務平臺以及大數(shù)據(jù)平臺架構(gòu),擁有重構(gòu)并優(yōu)化千億級日訪問量微服務以及數(shù)據(jù)采集經(jīng)驗。力求用淺顯的語言來講述親身的實戰(zhàn)經(jīng)驗和國內(nèi)外的先進理論,以滿足中國互聯(lián)網(wǎng)行業(yè)的實際需求。

圖書目錄

前言

導讀—本書為快速學習設計



第1章 GraphQL API設計和全棧開發(fā)1



1.1 什么是GraphQL2

1.2 分布式系統(tǒng)2

1.2.1 擴展性3

1.2.2 可靠性3

1.2.3 遠程資源共享4

1.2.4 更強的處理能力4

1.3 C/S架構(gòu)與API4

1.3.1 C/S架構(gòu)4

1.3.2 前端與后端5

1.3.3 全棧程序員5

1.3.4 應用程序接口6

1.4 RESTful API的起源與特點7

1.4.1 倉庫保管員的窘境7

1.4.2 REST無狀態(tài)的好處8

1.4.3 RESTful API是否真的無狀態(tài)8

1.4.4 RESTful API是否是數(shù)據(jù)傳輸協(xié)議9

1.4.5 RESTful API的好處是什么9

1.5 RESTful API的主要問題10

1.5.1 數(shù)據(jù)定制的問題10

1.5.2 多次請求的問題10

1.5.3 異常處理的問題10

1.5.4 返回數(shù)據(jù)格式未知的問題11

1.5.5 請求Endpoint和方式過多的

問題11

1.6 GraphQL如何解決RESTful API的

問題11

1.6.1 GraphQL可以自由定制數(shù)據(jù)11

1.6.2 GraphQL可以把多次請求合并為

一個12

1.6.3 GraphQL錯誤以及異常信息

明確12

1.6.4 GraphQL返回數(shù)據(jù)的形式和查詢

請求同構(gòu)13

1.6.5 GraphQL使用單一的Endpoint14

1.6.6 GraphQL替代了什么14

1.7 GraphQL引發(fā)的疑慮15

1.7.1 GraphQL是否還是RESTful15

1.7.2 GraphQL增大了后端系統(tǒng)設計的

難度15

1.7.3 GraphQL是否會帶來后端性能

問題15

1.7.4 遷移到GraphQL的代價16

1.7.5 GraphQL是該前端驅(qū)動還是后端

驅(qū)動16

1.8 GraphQL全??蚣艿倪x用16

1.8.1 Relay17

1.8.2 Apollo17



第2章 GraphQL初體驗—電商API設計18



2.1 基本開發(fā)環(huán)境的搭建19

2.2 和GraphQL互動20

2.2.1 實時交互界面GraphiQL的使用20

2.2.2 通過curl發(fā)送請求21

2.2.3 使用第三方客戶端21

2.3 Schema與定義數(shù)據(jù)類型22

2.3.1 強類型的查詢語言22

2.3.2 服務器端的Schema23

2.3.3 標量類型24

2.3.4 自定義復雜類型25

2.3.5 枚舉26

2.3.6 列表以及對象的列表27

2.4 定義操作28

2.4.1 只讀查詢操作28

2.4.2 可寫修改操作30

2.4.3 訂閱操作31

2.4.4 傳遞輸入類型31

2.4.5 操作也是字段33

2.5 精煉數(shù)據(jù)模型與操作33

2.5.1 接口和繼承33

2.5.2 聯(lián)合35

2.6 精煉查詢36

2.6.1 使用變量36

2.6.2 使用別名37

2.6.3 使用片段38

2.6.4 類型條件39

2.6.5 使用Directive40

2.6.6 后端工程師的福音41

2.7 簡單數(shù)據(jù)驗證41

2.7.1 必填值的驗證42

2.7.2 標量值的驗證42



第3章 電商網(wǎng)站前端開發(fā)44



3.1 GraphQL前端開發(fā)要點45

3.1.1 前端開發(fā)的主要任務45

3.1.2 前端開發(fā)的難點46

3.1.3 前端技術(shù)的選型46

3.2 前端React項目初始化47

3.2.1 React特點簡介47

3.2.2 React 整合GraphQL前端系統(tǒng)

設計48

3.2.3 創(chuàng)建React前端工程49

3.2.4 安裝Apollo客戶端49

3.2.5 初始化GraphQL客戶端50

3.2.6 手動發(fā)送查詢51

3.3 只讀數(shù)據(jù)的React UI組件51

3.3.1 構(gòu)建GraphQL Query查詢51

3.3.2 定義列表元素組件52

3.3.3 定義列表組件52

3.3.4 綁定靜態(tài)查詢和UI組件53

3.3.5 使用Query組件54

3.3.6 從Query組件中接收一個參數(shù)55

3.3.7 數(shù)據(jù)的接收以及出錯處理56

3.3.8 手動刷新57

3.4 修改數(shù)據(jù)的React UI組件57

3.4.1 定義一個帶有變量的Mutation

操作58

3.4.2 使用Mutation UI組件58

3.5 支持訂閱59

3.5.1 什么時候使用訂閱59

3.5.2 訂閱是如何實現(xiàn)的60

3.6 本地數(shù)據(jù)60



第4章 基于Node.js的GraphQL后端61



4.1 GraphQL后端架構(gòu)思想62

4.1.1 “薄”層設計62

4.1.2 “門戶”設計64

4.1.3 面向業(yè)務設計64

4.2 GraphQL層的職責與實現(xiàn)65

4.2.1 GraphQL層的職責65

4.2.2 GraphQL層的實現(xiàn)65

4.2.3 Resolver函數(shù)與分治策略67

4.3 Apollo GraphQL后端框架68

4.3.1 依賴庫的安裝68

4.3.2 定義和解析Schema69

4.3.3 綁定處理查詢操作函數(shù)69

4.4 詳解Resolver函數(shù)72

4.4.1 Resolver的各種返回類型72

4.4.2 Resolve一個類型72

4.4.3 Resolve一個復雜類型字段73

4.4.4 Resolve一個標量字段75

4.4.5 Resolve一個自定義標量字段77

4.4.6 Resolve一個列表80

4.5 GraphQL后端驗證以及錯誤

處理81

4.5.1 簡單方式81

4.5.2 使用自定義標量類型進行驗證82

4.6 異步IO84

4.6.1 基于異步非阻塞IO的JavaScript

實現(xiàn)84

4.6.2 同步還是異步85

4.6.3 異步Resolver85

4.7 使用JavaScript開發(fā)后端服務的

問題86



第5章 基于Go語言協(xié)程的GraphQL服務88



5.1 使用協(xié)程和上下文89

5.1.1 使用協(xié)程的原因89

5.1.2 協(xié)程和GraphQL服務90

5.1.3 上下文和作用域90

5.1.4 派生上下文91

5.2 Go語言的Web服務和中間件92

5.2.1 構(gòu)建Web服務92

5.2.2 Web服務中間件93

5.2.3 基于中間件的后端架構(gòu)94

5.2.4 數(shù)據(jù)收集中間件95

5.2.5 數(shù)據(jù)庫會話中間件95

......

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號