編程與類型系統 Programming with Types
Vlad Riscutia 趙利通譯
- 出版商: 機械工業
- 出版日期: 2021-01-01
- 定價: $714
- 售價: 8.5 折 $607
- 語言: 簡體中文
- 頁數: 316
- 裝訂: 平裝
- ISBN: 7111670515
- ISBN-13: 9787111670513
-
相關分類:
Functional-programming
- 此書翻譯自: Programming with Types
立即出貨 (庫存 < 3)
買這商品的人也買了...
-
無瑕的程式碼-敏捷完整篇-物件導向原則、設計模式與 C# 實踐 (Agile principles, patterns, and practices in C#)$790$616 -
$301JavaScript 函數式編程指南 -
$301JavaScript 函數式編程思想 -
$374全棧工程師Web開發指南 -
領域驅動設計:軟體核心複雜度的解決方法 (Domain-Driven Design: Tackling Complexity in the Heart of Software)$680$530 -
Working Effectively with Legacy Code : 管理、修改、重構遺留程式碼的藝術 (中文版)$720$562 -
$607Java 程序性能優化實戰 -
$774Android 自定義控件高級進階與精彩實例 -
深入理解 Java 模塊系統 (The Java Module System)$714$678 -
$374前端函數式演進 -
無卡無現金時代:網路支付業務規劃設計及實作$690$545 -
$607Netty 原理解析與開發實戰 -
Python 功力提升的樂趣|寫出乾淨程式碼的最佳實務 (Beyond the Basic Stuff with Python)$500$395 -
Windows APT Warfare:惡意程式前線戰術指南$600$468 -
$534面向對象的思考過程, 5/e (The Object-Oriented Thought Process, 5/e) -
設計重構:25個管理技術債的技巧消除軟體設計臭味 (Refactoring for Software Design Smells: Managing Technical Debt)$520$406 -
$407Python 代碼整潔之道 (Practices of the Python Pro) -
AWS CDK 完全學習手冊:打造雲端基礎架構程式碼 IaC(iT邦幫忙鐵人賽系列書)$600$468 -
全球最強雲端平台實作:用 AWS 完成安全穩定快速的系統 (特價書)$880$440 -
Martin Fowler 的企業級軟體架構模式:軟體重構教父傳授 51個模式,活用設計思考與架構決策 (Patterns of Enterprise Application Architecture)$800$624 -
大話 AWS 雲端架構:雲端應用架構圖解輕鬆學, 3/e$650$507 -
OAuth 2.0 從入門到實戰:利用驗證和授權守護 API 的安全$600$468 -
親密的駭人 – 堅固網路安全建設從內網開始$880$695 -
$359程序員的制勝技 -
實戰領域驅動設計:高效軟體開發的正確觀點、應用策略與實作指引 (Implementing Domain-Driven Design)$1,280$960
中文年末書展|繁簡參展書2書75折 詳見活動內容 »
-
75折
為你寫的 Vue Components:從原子到系統,一步步用設計思維打造面面俱到的元件實戰力 (iThome 鐵人賽系列書)$780$585 -
75折
BDD in Action, 2/e (中文版)$960$720 -
75折
看不見的戰場:社群、AI 與企業資安危機$750$563 -
79折
AI 精準提問 × 高效應用:DeepSeek、ChatGPT、Claude、Gemini、Copilot 一本搞定$390$308 -
7折
超實用!Word.Excel.PowerPoint 辦公室 Office 365 省時高手必備 50招, 4/e (暢銷回饋版)$420$294 -
75折
裂縫碎光:資安數位生存戰$550$412 -
85折
日本當代最強插畫 2025 : 150位當代最強畫師豪華作品集$640$544 -
79折
Google BI 解決方案:Looker Studio × AI 數據驅動行銷實作,完美整合 Google Analytics 4、Google Ads、ChatGPT、Gemini$630$498 -
79折
超有料 Plus!職場第一實用的 AI 工作術 - 用對 AI 工具、自動化 Agent, 讓生產力全面進化!$599$473 -
75折
從零開始學 Visual C# 2022 程式設計, 4/e (暢銷回饋版)$690$518 -
75折
Windows 11 制霸攻略:圖解 AI 與 Copilot 應用,輕鬆搞懂新手必學的 Windows 技巧$640$480 -
75折
精準駕馭 Word!論文寫作絕非難事 (好評回饋版)$480$360 -
Sam Yang 的插畫藝術:用 Procreate / PS 畫出最強男友視角 x 女孩美好日常$699$629 -
79折
AI 加持!Google Sheets 超級工作流$599$473 -
78折
想要 SSR? 快使用 Nuxt 吧!:Nuxt 讓 Vue.js 更好處理 SEO 搜尋引擎最佳化(iThome鐵人賽系列書)$780$608 -
75折
超實用!業務.總管.人資的辦公室 WORD 365 省時高手必備 50招 (第二版)$500$375 -
7折
Node-RED + YOLO + ESP32-CAM:AIoT 智慧物聯網與邊緣 AI 專題實戰$680$476 -
79折
「生成式⇄AI」:52 個零程式互動體驗,打造新世代人工智慧素養$599$473 -
7折
Windows APT Warfare:惡意程式前線戰術指南, 3/e$720$504 -
75折
我輩程式人:回顧從 Ada 到 AI 這條程式路,程式人如何改變世界的歷史與未來展望 (We, Programmers: A Chronicle of Coders from Ada to AI)$850$637 -
75折
不用自己寫!用 GitHub Copilot 搞定 LLM 應用開發$600$450 -
79折
Tensorflow 接班王者:Google JAX 深度學習又快又強大 (好評回饋版)$780$616 -
79折
GPT4 會你也會 - 共融機器人的多模態互動式情感分析 (好評回饋版)$700$553 -
79折
技術士技能檢定 電腦軟體應用丙級術科解題教本|Office 2021$460$363 -
75折
Notion 與 Notion AI 全能實戰手冊:生活、學習與職場的智慧策略 (暢銷回饋版)$560$420
相關主題
商品描述
本書全面介紹類型系統的特性,從基本類型開始,
一直介紹到函數類型和子類型、OOP、泛型編程和高階類型(如函子和單子)。
本書沒有關註這些特性背後的理論,而是通過實際應用的方式來解釋每種特性。
本書說明瞭如何以及何時使用每種特性來改進代碼。
作者簡介
弗拉德.裡斯庫迪亞(Vlad Riscutia)
Microsoft的首席軟件架構師,領導開發了幾個大型軟件項目,並指導了許多初級軟件工程師。
曾管理Office授權團隊,包括將Office授權棧重新設計為基於服務的模型,集成Windows開箱即用體驗,並發布Office 2019。
目錄大綱
前言
致謝
關於本書
類型及可能的取值
常用算法
第1章類型簡介1
1.1為什麼存在類型2
1.1.1 0和12
1.1.2類型和類型系統的定義3
1.2類型系統的優點4
1.2.1正確性5
1.2.2不可變性6
1.2.3封裝8
1.2.4可組合性9
1.2.5可讀性11
1.3類型系統的類型12
1.3.1動態類型和靜態類型12
1.3.2弱類型與強類型13
1.3.3類型推斷15
小結15
第2章基本類型17
2.1設計不返回值的函數17
2.1.1空類型18
2.1.2單元類型20
2.1.3習題21
2.2布爾邏輯和短路21
2.2.1布爾表達式22
2.2.2短路計算22
2.2.3習題24
2.3數值類型的常見陷阱24
2.3.1整數類型和溢出25
2.3.2浮點類型和圓整28
2.3.3任意大數30
2.3.4習題31
2.4編碼文本31
2.4.1拆分文本31
2.4.2編碼32
2.4.3編碼庫34
2.4.4習題36
2.5使用數組和引用構建數據結構36
2.5.1固定大小數組36
2.5.2引用37
2.5. 3高效列表38
2.5.4二叉樹40
2.5.5關聯數組43
2.5.6實現時的權衡44
2.5.7習題44
小結44
習題答案45
第3章組合46
3.1複合類型47
3.1.1元組47
3.1. 2賦予意義49
3.1.3維護不變量50
3.1.4習題53
3.2使用類型表達多選一53
3.2.1枚舉53
3.2.2可選類型55
3.2.3結果或錯誤57
3.2.4變體62
3.2.5習題65
3.3訪問者模式65
3.3.1簡單實現66
3.3.2使用訪問者模式67
3.3.3訪問變體69
3.3.4習題71
3.4代數數據類型71
3.4.1乘積類型71
3.4.2和類型72
3.4.3習題72
小結73
習題答案74
第4章類型安全75
4.1避免基本類型偏執來防止錯誤解釋76
4.1.1火星氣候探測者號77
4.1.2基本類型偏執反模式79
4.1.3習題79
4.2實施約束80
4.2.1使用構造函數實施約束80
4.2.2使用工廠實施約束81
4.2.3習題82
4.3添加類型信息82
4.3.1類型轉換82
4.3.2在類型系統之外跟蹤類型83
4.3.3常見類型轉換86
4.3.4習題89
4.4隱藏和恢復類型信息89
4.4.1異構集合90
4.4.2序列化92
4.4.3習題95
小結96
習題答案96
第5章函數類型98
5.1一個簡單的策略模式99
5.1.1函數式策略100
5.1.2函數的類型101
5.1.3策略實現102
5.1.4一等函數102
5.1.5習題103
5.2不使用switch語句的狀態機103
5.2.1類型編程小試牛刀104
5.2.2狀態機106
5.2.3回顧狀態機實現111
5.2.4習題112
5.3使用延遲值避免高開銷的計算112
5.3.1 lambda113
5.3.2習題115
5.4使用map 、filter和reduce115
5.4.1 map()115
5.4.2 filter()117
5.4.3 reduce()119
5.4.4庫支持122
5.4.5習題123
5.5函數式編程123
小結123
習題答案124
第6章函數類型的高級應用126
6.1一個簡單的裝飾器模式126
6.1.1函數裝飾器128
6.1.2裝飾器實現130
6.1.3閉包130
6.1.4習題131
6.2實現一個計數器131
6.2.1一個面向對象的計數器132
6.2.2函數式計數器133
6.2.3一個可恢復的計數器134
6.2.4回顧計數器實現135
6.2.5習題135
6.3異步執行運行時間長的操作135
6.3.1同步執行136
6.3.2異步執行:回調136
6.3.3異步執行模型137
6.3.4回顧異步函數141
6.3.5習題141
6.4簡化異步代碼142
6.4.1鏈接promise143
6.4.2創建promise144
6.4.3關於promise的更多信息146
6.4.4 async/await150
6.4.5回顧整潔的異步代碼152
6.4.6習題152
小結153
習題答案153
第7章子類型155
7.1在TypeScript中區分相似的類型156
7.1.1結構和名義子類型的優缺點158
7.1.2在TypeScript中模擬名義子類型159
7.1.3習題160
7.2子類型的極端情況160
7.2.1安全的反序列化160
7.2.2錯誤情況的值164
7.2.3回顧頂層和底層類型167
7.2.4習題168
7.3允許的替換168
7.3.1子類型與和類型169
7.3.2子類型和集合171
7.3.3子類型和函數的返回類型172
7.3.4子類型和函數實參類型174
7.3.5回顧可變性178
7.3.6習題178
小結179
習題答案179
第8章面向對象編程的元素181
8.1使用接口定義契約182
8.2繼承數據和行為185
8.2.1 “是一個”經驗準則185
8.2. 2建模層次186
8.2.3參數化表達式的行為187
8.2.4習題188
8.3組合數據和行為189
8.3.1 “有一個”經驗準則189
8.3.2複合類190
8.3.3實現適配器模式192
8.3 .4習題194
8.4擴展數據和行為194
8.4.1使用組合擴展行為195
8.4.2使用混入擴展行為197
8.4.3 TypeScript中的混入198
8.4.4習題199
8.5純粹面向對象代碼的替代方案199
8.5. 1和類型200
8.5.2函數式編程202
8.5.3泛型編程203
小結204
習題答案204
第9章泛型數據結構206
9.1解耦關註點207
9.1.1可重用的恆等函數208
9.1.2可選類型210
9.1.3泛型類型211
9.1.4習題211
9.2泛型數據佈局212
9.2.1泛型數據結構212
9.2.2什麼是數據結構213
9.2.3習題214
9.3遍歷數據結構214
9.3.1使用疊代器216
9.3.2流線化疊代代碼220
9.3.3回顧疊代器225
9.3.4習題226
9.4數據流226
9.4.1處理管道227
9.4.2習題228
小結228
習題答案229
第10章泛型算法和疊代器232
10.1更好的map()、filter()和reduce()233
10.1.1 map()233
10.1.2 filter()234
10.1.3 reduce()234
10.1.4 filter()/reduce()管道235
10.1.5習題236
10.2常用算法236
10.2.1使用算法代替循環237
10.2.2實現流暢管道237
10.2.3習題241
10.3約束類型參數241
10.3.1具有類型約束的泛型數據結構242
10.3.2具有類型約束的泛型算法243
10.3.3習題245
10.4高效reverse和其他使用疊代器的算法245
10.4.1疊代器的基礎模塊247
10.4.2有用的find()251
10.4.3高效的reverse()254
10.4.4高效地獲取元素257
10.4.5回顧疊代器259
10.4.6習題260
10.5自適應算法260
小結262
習題答案263
第11章高階類型及其他266
11.1更加通用的map267
11.1.1處理結果或傳播錯誤270
11.1.2混搭函數的應用272
11.1.3函子和高階類型273
11.1.4函數的函子276
11.1.5習題277
11.2單子277
11.2.1結果或錯誤277
11.2.2 map ()與bind()的區別282
11.2.3單子模式284
11.2.4 continuation單子285
11.2.5列表單子286
11.2.6其他單子288
11.2.7習題288
11.3繼續學習289
11.3.1函數式編程289
11.3.2泛型編程289
11.3.3高階類型和範疇論289
11.3.4從屬類型290
11.3.5線性類型290
小結290
習題答案291
附錄A TypeScript的安裝及本書的源代碼293
附錄B TypeScript速
