本文作者通過分析微服務的常見優點能解決的問題,提出如何使用單體應用來緩解這些問題,最終指出採用微服務還是單體架構要根據團隊實際情況,而不是為了微服務而微服務。作者最後給出建議,中小團隊和新型團隊,建議採用單體架構,大中型團隊,可以採用微服務架構,但要充分權衡。 在 Web 軟體架構方面,微服務... ...
1. 基本信息
編程與類型系統 Programming With Types:Examples in TypeScript
[美] 弗拉德·裡斯庫迪亞(Vlad Riscutia) 著,趙利通 譯
機械工業出版社,2021年1月出版
1.1. 讀薄率
書籍【真實】字數17.5萬字,筆記總字數19299字。
讀薄率19299÷175000≈11.03%
較之C#代碼整潔之道高出不少,主要原因有兩方面:
- 統計口徑差異,版權頁上沒有書籍總字數,採用的是真實字數,這個數值較低。分母變小。
- 筆記數量翻倍,這是實打實地,從另一個側面也說明瞭這本書內容更扎實。分子變大。
結果,讀薄率陡增。
1.2. 讀厚方向
-
函數式編程思維
-
Java 8函數式編程
-
Functional C#
-
Functional Programming in C#
-
Learning Java Functional Programming
1.3. 筆記--章節對應關係
筆記和章節一一對應,沒有合併同類項,也沒有章節調序,僅僅是每個章節內部進行了部分調序,就不一一列舉了。
2. 亮點
2.1. 開拓視野
-
提供了觀察其他語言的視角,尤其是TypeScript語言。
-
引入了抽象代數、柯里–霍華德(Curry-Howard)對應、範疇論、函子、單子等數學概念。
-
對混入Mixin和可變性做了較詳細的介紹。
2.2. 豐富、細緻的類型介紹
不論類型是否常見,講其然,也講其所以然。
個人覺得比較重要的類型如下:
-
空類型
-
單元類型
-
可選類型
-
和類型
-
Either類型
-
變體類型
2.3. unicode構成
-
字元(character)
-
字形(glyph)
-
書寫位(grapheme)
3. 感想
3.1. 經典永流傳
好的電腦書籍是可以超脫語言和版本升級的影響而歷久彌新的。
3.2. 讓子彈飛一會也不是太好
做完讀書筆記,不會立刻寫總結和感想,而是讓子彈飛一會,沉澱一周左右才總結,此時留下的才是自己覺得重要的。
在《C#代碼整潔之道》和《編程與類型系統》之間還沒有什麼問題,也沒有衝突。
但是在《編程與類型系統》和《函數式編程思維》,也就是擴展閱讀的書籍之間,強關聯了,原來覺得重要的點,也就被沖淡了。
原來亮點的地方,現在看來也就是函數式編程的基本知識點了。
3.3. 作者選擇TypeScript作為示例語言是有考量的
高級章節中無法示例的代碼,Haskell可以,但是如果選擇Haskell作為示例語言,受眾受限。
Java、C#用戶眾多,但是類型系統沒有TypeScript豐富,而且TypeScript作為JavaScript的升級,用戶也可以說是眾多。
選擇TypeScript除了高級類型無法示例外,大部分都能示例,而且語法層面上也是能接受的。
3.4. 讀好書、好讀書、讀好多書
以一本書為原點,朝著一個方向去選擇、讀取經典書籍,收穫頗豐。
有些書,講得雲里霧裡的東西,能夠豁然開朗,敞亮了。
3.5. 如何讀原文
-
如果為了學習TypeScript語言,這本書不算太好。
-
如果是為了瞭解類型系統(不僅僅是TypeScript語言的),則推薦閱讀。
大部分編程語言的語法書都是簡要的介紹數據類型,知其然,不知其所以然;告訴你怎麼用,不告訴你為什麼這樣用,而這本書恰恰解答了為什麼。