诚信为本,市场在变,诚信永远不变...
  咨询电话:400-123-4567

公司新闻

荐书小文-激发程序员整体思维能力《网络是怎样连接的》

小文初衷

自我介绍

你好! 我是Spider, 一名五年级程序员。

读书是人类进步的阶梯,读书更是程序员进步的阶梯。

可以说在小主的程序员成长生涯中,每一时间段都有重要的书籍相伴指导。所以希望通过《荐书小文》给大家分享开发过程中遇到的问题以及那些在书中找到的优质答案。

荐书小文主体内容

一.描述选书的阅读背景以及内容概述

二.分享阅读后解决的问题,或者提升的能力

三.小主个人向的阅读感悟

回顾&感谢

第一期的《Clean Code》教会二年级的小主认真做事、提升代码质量。

衷心感谢姚哥在工作上的教导,以及西顾老师简洁高效的建议。

本章感谢向小主推荐此书的某多多大佬,小悦悦以及扈老师。

背景

小文介绍的第二本书是《网络是怎样连接的》(日) 户根勤

通过本书的网络连接知识结构,训练 “整体思维” 意识是这本书带来给我最大的帮助。

头疼医头,脚痛医脚。不追究病根,什么地方有问题就在什么地方解决。

这样的做事方法往往不能彻底、高效的解决问题,同时也不方便后期的复盘与能力提升。

开发的第二个年头,每每遇到稍有难度的BUG 研判或设计复杂功能时,总感觉力不从心。

既脑子那半亩一分地的知识储备,每每往深想一点,或者多问自己几个为什么,大脑立刻就陷入一片空白的宕机状态

比如让我当时很头疼的一些问题&场景:

  • “数据库服务不可用(运行环境向)”

  • “页面渲染速度超出预期(200ms)”

  • “OOM (Out Of Memory)”

  • “仅出现一次且无 log 的 BUG 研判” 等等。

阅读《网络是怎样连接的》后,学习使用 "整体思维" 去看待这些问题,往往可以根据连续性立体性系统性三个原则来有效分析问题,从而找到头绪。

王者荣耀出现460,有可能是远处网络设备维修人员用手握了一下光纤,由于温度变化导致光纤数据传输的波动。

《网络是怎样连接的》
  • 本书一共6章,15万字,篇幅不多,内容较有意思。作者像是讲故事一般,通俗且精准的介绍了 “网页” 是如何显示在我们终端上的原理。

  • 本书讲解了多种网络设备以及通讯协议。使读者了解常见的 TPC/IP、DNS、网卡、路由器、防火墙、交换机等名词。同时介绍了网络传输里有哪些软\硬件,以及说明了为什么如此设计。

  • 本书可以作为网络基础入门书籍以及科普知识类读物。


程序里的九连环

玩过九连环(益智玩具)的朋友知道,九个圈环,环环相扣。欲解二环,必松一环。

读完本书后,再遇到网络相关的问题,小主应该可以根据书中讲解的知识链路,提出猜想,小心验证,记录反馈来尝试找到答案。

同时经过认真思考,“如何将任意问题转化为 ‘网络问题’ 让自己有迹可循呢?” 想到的答案还是 “整体思维” 这一概念。

主动了解问题的上下游,将问题或现象本身放在全链路中进行思考,例如上面说到的几个例子:

“数据库服务不可用(运行环境向)”:转化为数据库服务依赖哪些运行环境,如何依赖运行环境,何时依赖运行环境。

“页面渲染速度超出预期(200ms)”:页面渲染=后端服务响应速度+前端渲染速度,影响前后端服务响应因素有什么。

“OOM (Out Of Memory)” : 转化为 “哪里用的多,为什么给的少了” 两个问题。

“仅出现一次且无 log 的 BUG 研判” : 实在无法研判起因,必须要思考后续。

分层思想

"所有软件设计问题都可以通过增加一层来解决。" -- leader

在本书所阐述网络连接实现方案中,无不体现着工业领域通用的准则 “分层思想” 。

读完本书,深切感受到分层思想是一种伟大的思想,通过分明的层次感让庞大复杂的系统(工程)变得井然有序。

在解决具体的问题时,将抽象的概念具体化,来保证每层组件的内聚性以及对外的松耦合。

读完整本书,网络连接的整套分层逻辑及设计实现,是让我第一次感受到工程设计那种精妙的艺术感。

https://github.com/TuTouPower/How-to-connect-internet (PDF)

知乎菜农曰-《网络是怎样连接的》阅读笔记:

整体思维-百度词条

https://baike.baidu.com/item/%E6%95%B4%E4%BD%93%E6%80%9D%E7%BB%B4/158060?fr=aladdin

知乎张佩工程师思维笔记 整体思维

平台注册入口