发布日期:2023-04-16 来源: 网络 阅读量()
小文初衷 自我介绍 你好! 我是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 知乎张佩工程师思维笔记 整体思维