- 邮箱:
- 广东省广州市天河区88号
- 电话:
- /public/upload/system/2018/07/26/f743a52e720d8579f61650d7ca7a63a0.jpg
- 传真:
- /public/upload/system/2018/07/26/fe272790a21a4d3e1e670f37534a3a7d.png
- 手机:
- 13800000000
- 地址:
- 1234567890
自我介绍
你好! 我是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
知乎张佩工程师思维笔记 整体思维