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

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

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

定 價(jià):¥59.00

作 者: 王北南 著
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787111630937 出版時(shí)間: 2019-08-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 184 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

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

圖書目錄

前言

導(dǎo)讀—本書為快速學(xué)習(xí)設(shè)計(jì)



第1章 GraphQL API設(shè)計(jì)和全棧開(kāi)發(fā)1



1.1 什么是GraphQL2

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

1.2.1 擴(kuò)展性3

1.2.2 可靠性3

1.2.3 遠(yuǎn)程資源共享4

1.2.4 更強(qiáng)的處理能力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 應(yīng)用程序接口6

1.4 RESTful API的起源與特點(diǎn)7

1.4.1 倉(cāng)庫(kù)保管員的窘境7

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

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

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

1.4.5 RESTful API的好處是什么9

1.5 RESTful API的主要問(wèn)題10

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

1.5.2 多次請(qǐng)求的問(wèn)題10

1.5.3 異常處理的問(wèn)題10

1.5.4 返回?cái)?shù)據(jù)格式未知的問(wèn)題11

1.5.5 請(qǐng)求Endpoint和方式過(guò)多的

問(wèn)題11

1.6 GraphQL如何解決RESTful API的

問(wèn)題11

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

1.6.2 GraphQL可以把多次請(qǐng)求合并為

一個(gè)12

1.6.3 GraphQL錯(cuò)誤以及異常信息

明確12

1.6.4 GraphQL返回?cái)?shù)據(jù)的形式和查詢

請(qǐng)求同構(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)設(shè)計(jì)的

難度15

1.7.3 GraphQL是否會(huì)帶來(lái)后端性能

問(wèn)題15

1.7.4 遷移到GraphQL的代價(jià)16

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

驅(qū)動(dòng)16

1.8 GraphQL全??蚣艿倪x用16

1.8.1 Relay17

1.8.2 Apollo17



第2章 GraphQL初體驗(yàn)—電商API設(shè)計(jì)18



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

2.2 和GraphQL互動(dòng)20

2.2.1 實(shí)時(shí)交互界面GraphiQL的使用20

2.2.2 通過(guò)curl發(fā)送請(qǐng)求21

2.2.3 使用第三方客戶端21

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

2.3.1 強(qiáng)類型的查詢語(yǔ)言22

2.3.2 服務(wù)器端的Schema23

2.3.3 標(biāo)量類型24

2.3.4 自定義復(fù)雜類型25

2.3.5 枚舉26

2.3.6 列表以及對(duì)象的列表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 簡(jiǎn)單數(shù)據(jù)驗(yàn)證41

2.7.1 必填值的驗(yàn)證42

2.7.2 標(biāo)量值的驗(yàn)證42



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



3.1 GraphQL前端開(kāi)發(fā)要點(diǎn)45

3.1.1 前端開(kāi)發(fā)的主要任務(wù)45

3.1.2 前端開(kāi)發(fā)的難點(diǎn)46

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

3.2 前端React項(xiàng)目初始化47

3.2.1 React特點(diǎn)簡(jiǎn)介47

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

設(shè)計(jì)48

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

3.2.4 安裝Apollo客戶端49

3.2.5 初始化GraphQL客戶端50

3.2.6 手動(dòng)發(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組件中接收一個(gè)參數(shù)55

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

3.3.8 手動(dòng)刷新57

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

3.4.1 定義一個(gè)帶有變量的Mutation

操作58

3.4.2 使用Mutation UI組件58

3.5 支持訂閱59

3.5.1 什么時(shí)候使用訂閱59

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

3.6 本地?cái)?shù)據(jù)60



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



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

4.1.1 “薄”層設(shè)計(jì)62

4.1.2 “門戶”設(shè)計(jì)64

4.1.3 面向業(yè)務(wù)設(shè)計(jì)64

4.2 GraphQL層的職責(zé)與實(shí)現(xiàn)65

4.2.1 GraphQL層的職責(zé)65

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

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

4.3 Apollo GraphQL后端框架68

4.3.1 依賴庫(kù)的安裝68

4.3.2 定義和解析Schema69

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

4.4 詳解Resolver函數(shù)72

4.4.1 Resolver的各種返回類型72

4.4.2 Resolve一個(gè)類型72

4.4.3 Resolve一個(gè)復(fù)雜類型字段73

4.4.4 Resolve一個(gè)標(biāo)量字段75

4.4.5 Resolve一個(gè)自定義標(biāo)量字段77

4.4.6 Resolve一個(gè)列表80

4.5 GraphQL后端驗(yàn)證以及錯(cuò)誤

處理81

4.5.1 簡(jiǎn)單方式81

4.5.2 使用自定義標(biāo)量類型進(jìn)行驗(yàn)證82

4.6 異步IO84

4.6.1 基于異步非阻塞IO的JavaScript

實(shí)現(xiàn)84

4.6.2 同步還是異步85

4.6.3 異步Resolver85

4.7 使用JavaScript開(kāi)發(fā)后端服務(wù)的

問(wèn)題86



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



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

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

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

5.1.3 上下文和作用域90

5.1.4 派生上下文91

5.2 Go語(yǔ)言的Web服務(wù)和中間件92

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

5.2.2 Web服務(wù)中間件93

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

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

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

......

本目錄推薦

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