薦書(shū)小文-激發(fā)程序員整體思維能力《網(wǎng)絡(luò)是怎樣連接的》
小文初衷
自我介紹
你好! 我是Spider, ?一名五年級(jí)程序員。
讀書(shū)是人類(lèi)進(jìn)步的階梯,讀書(shū)更是程序員進(jìn)步的階梯。
可以說(shuō)在小主的程序員成長(zhǎng)生涯中,每一時(shí)間段都有重要的書(shū)籍相伴指導(dǎo)。所以希望通過(guò)《薦書(shū)小文》給大家分享開(kāi)發(fā)過(guò)程中遇到的問(wèn)題以及那些在書(shū)中找到的優(yōu)質(zhì)答案。
薦書(shū)小文主體內(nèi)容
一.描述選書(shū)的閱讀背景以及內(nèi)容概述
二.分享閱讀后解決的問(wèn)題,或者提升的能力
三.小主個(gè)人向的閱讀感悟
回顧&感謝
第一期的《Clean Code》教會(huì)二年級(jí)的小主認(rèn)真做事、提升代碼質(zhì)量。
衷心感謝姚哥在工作上的教導(dǎo),以及西顧老師簡(jiǎn)潔高效的建議。
本章感謝向小主推薦此書(shū)的某多多大佬,小悅悅以及扈老師。
背景
小文介紹的第二本書(shū)是《網(wǎng)絡(luò)是怎樣連接的》(日) 戶(hù)根勤

通過(guò)本書(shū)的網(wǎng)絡(luò)連接知識(shí)結(jié)構(gòu),訓(xùn)練 “整體思維” 意識(shí)是這本書(shū)帶來(lái)給我最大的幫助。
頭疼醫(yī)頭,腳痛醫(yī)腳。不追究病根,什么地方有問(wèn)題就在什么地方解決。
這樣的做事方法往往不能徹底、高效的解決問(wèn)題,同時(shí)也不方便后期的復(fù)盤(pán)與能力提升。
開(kāi)發(fā)的第二個(gè)年頭,每每遇到稍有難度的BUG 研判或設(shè)計(jì)復(fù)雜功能時(shí),總感覺(jué)力不從心。
既腦子那半畝一分地的知識(shí)儲(chǔ)備,每每往深想一點(diǎn),或者多問(wèn)自己幾個(gè)為什么,大腦立刻就陷入一片空白的宕機(jī)狀態(tài)
比如讓我當(dāng)時(shí)很頭疼的一些問(wèn)題&場(chǎng)景:
“數(shù)據(jù)庫(kù)服務(wù)不可用(運(yùn)行環(huán)境向)”
“頁(yè)面渲染速度超出預(yù)期(200ms)”
“OOM (Out Of Memory)”
“僅出現(xiàn)一次且無(wú) log 的 BUG 研判” ?等等。
閱讀《網(wǎng)絡(luò)是怎樣連接的》后,學(xué)習(xí)使用 "整體思維" 去看待這些問(wèn)題,往往可以根據(jù)連續(xù)性,立體性,系統(tǒng)性三個(gè)原則來(lái)有效分析問(wèn)題,從而找到頭緒。
王者榮耀出現(xiàn)460,有可能是遠(yuǎn)處網(wǎng)絡(luò)設(shè)備維修人員用手握了一下光纖,由于溫度變化導(dǎo)致光纖數(shù)據(jù)傳輸?shù)牟▌?dòng)。
網(wǎng)絡(luò)是怎樣連接的

本書(shū)一共6章,15萬(wàn)字,篇幅不多,內(nèi)容較有意思。作者像是講故事一般,通俗且精準(zhǔn)的介紹了 “網(wǎng)頁(yè)” 是如何顯示在我們終端上的原理。
本書(shū)講解了多種網(wǎng)絡(luò)設(shè)備以及通訊協(xié)議。使讀者了解常見(jiàn)的 TPC/IP、DNS、網(wǎng)卡、路由器、防火墻、交換機(jī)等名詞。同時(shí)介紹了網(wǎng)絡(luò)傳輸里有哪些軟\硬件,以及說(shuō)明了為什么如此設(shè)計(jì)。
本書(shū)可以作為網(wǎng)絡(luò)基礎(chǔ)入門(mén)書(shū)籍以及科普知識(shí)類(lèi)讀物。
讀后感
程序里的九連環(huán)
玩過(guò)九連環(huán)(益智玩具)的朋友知道,九個(gè)圈環(huán),環(huán)環(huán)相扣。欲解二環(huán),必松一環(huán)。
讀完本書(shū)后,再遇到網(wǎng)絡(luò)相關(guān)的問(wèn)題,小主應(yīng)該可以根據(jù)書(shū)中講解的知識(shí)鏈路,提出猜想,小心驗(yàn)證,記錄反饋來(lái)嘗試找到答案。
同時(shí)經(jīng)過(guò)認(rèn)真思考,“如何將任意問(wèn)題轉(zhuǎn)化為 ‘網(wǎng)絡(luò)問(wèn)題’ 讓自己有跡可循呢?” ?想到的答案還是 ?“整體思維” 這一概念。
主動(dòng)了解問(wèn)題的上下游,將問(wèn)題或現(xiàn)象本身放在全鏈路中進(jìn)行思考,例如上面說(shuō)到的幾個(gè)例子:
“數(shù)據(jù)庫(kù)服務(wù)不可用(運(yùn)行環(huán)境向)”:轉(zhuǎn)化為數(shù)據(jù)庫(kù)服務(wù)依賴(lài)哪些運(yùn)行環(huán)境,如何依賴(lài)運(yùn)行環(huán)境,何時(shí)依賴(lài)運(yùn)行環(huán)境。
“頁(yè)面渲染速度超出預(yù)期(200ms)”:頁(yè)面渲染 = 后端服務(wù)響應(yīng)速度+前端渲染速度,影響前后端服務(wù)響應(yīng)因素有什么。
“OOM (Out Of Memory)” : ?轉(zhuǎn)化為 “哪里用的多,為什么給的少了” 兩個(gè)問(wèn)題。
“僅出現(xiàn)一次且無(wú) log 的 BUG 研判” : 實(shí)在無(wú)法研判起因,必須要思考后續(xù)。
分層思想
"所有軟件設(shè)計(jì)問(wèn)題都可以通過(guò)增加一層來(lái)解決。"? -- leader
在本書(shū)所闡述網(wǎng)絡(luò)連接實(shí)現(xiàn)方案中,無(wú)不體現(xiàn)著工業(yè)領(lǐng)域通用的準(zhǔn)則 “分層思想” 。
讀完本書(shū),深切感受到分層思想是一種偉大的思想,通過(guò)分明的層次感讓龐大復(fù)雜的系統(tǒng)(工程)變得井然有序。
在解決具體的問(wèn)題時(shí),將抽象的概念具體化,來(lái)保證每層組件的內(nèi)聚性以及對(duì)外的松耦合。
讀完整本書(shū),網(wǎng)絡(luò)連接的整套分層邏輯及設(shè)計(jì)實(shí)現(xiàn),是讓我第一次感受到工程設(shè)計(jì)那種精妙的藝術(shù)感。
Reference
https://github.com/TuTouPower/How-to-connect-internet (PDF)
知乎菜農(nóng)曰-《網(wǎng)絡(luò)是怎樣連接的》閱讀筆記:
https://zhuanlan.zhihu.com/p/530958889
整體思維-百度詞條
https://baike.baidu.com/item/%E6%95%B4%E4%BD%93%E6%80%9D%E7%BB%B4/158060?fr=aladdin
知乎張佩工程師思維筆記 整體思維
https://zhuanlan.zhihu.com/p/266601416