写点什么

优秀程序员的 30 种思维 -- 理解认知篇

作者:hackstoic
  • 2021 年 12 月 22 日
  • 本文字数:1469 字

    阅读完需:约 5 分钟

我会分五个部分来讲:理解认知, 设计思考, 行动准则, 分析总结, 技术执念。

理解认知篇

抽象思维

一句话解读:大处着眼,隐藏细节,抽象就是由实向虚,提取共性。

【举个栗子】如果分别问艺术家,生物学家和程序员,他们眼中的世界是什么,可能会得到三种不同的答案。艺术家: 蓝天,碧水, 绿草,白羊,美哉自然。生物学家: 雌雄一对,生生不息。程序员: 世界是 0 和 1 组成的。

如果是我们在用的 windows 系统, ios 手机系统,微信 app,最后都被编译成只有 0 和 1 构成的代码去运行。所以整个世界的 IT 系统都可以由 0 和 1 构成的,这个就是抽象。

分治思维

一句话解读:把大问题分解成若干小问题

【举个栗子】

如果我们要做一个会员系统,这个系统概念太大了,无从下手,我们可以将系统进一步分解成一个个模块,比如支付模块,账号模块,活动模块,商品模块等,每个模块再拆解成一个个功能,比如支付模块拆解开来有下单功能,查询支付结果功能,退款功能等等。

当然功能还可以进一步拆解为代码块,这样一层层拆解之后,我们就可以把大问题,变成一个个小问题来解决了。

分层思维

一句话解读: 应对和管理复杂性的思维武器

【举个栗子】

TCP/IP 协议的设计其实就是分层思维的一个很好的体现。

关于 TCP/IP 每层的作用和分层的好处,网络有篇文章(TCP/IP 协议族分层及其作用[1]),解释的很好,摘录如下:

TCP/IP 协议族按层次分别分为: 应用层、 传输层、 网络层和数据链路层。

  1. 分层好处:改动自由:比如, 如果互联网只由一个协议统筹, 某个地方需要改变设计时, 就必须把所有部分整体替换掉。 而分层之后只需把变动的层替换掉即可。 把各层之间的接口部分规划好之后, 每个层次内部的设计就能够自由改动了。设计简单:值得一提的是, 层次化之后, 设计也变得相对简单了。 处于应用层上的应用可以只考虑分派给自己的任务, 而不需要弄清对方在地球上哪个地方、 对方的传输路线是怎样的、 是否能确保传输送达等问题。

  2. 各层的作用应用层 –>(可以想象成是快递打包过程)应用层决定了向用户提供应用服务时通信的活动。TCP/IP 协议族内预存了各类通用的应用服务。比如,FTP(File Transfer Protocol,文件传输协议)DNS(Domain Name System,域名系统) 服务就是其中两类。HTTP 协议也处于该层。

传输层 –>(可以想象成选择什么快递,比如顺丰、圆通)传输层对上层应用层, 提供处于网络连接中的两台计算机之间的数据传输。在传输层有两个性质不同的协议:TCP(Transmission Control Protocol, 传输控制协议) 和 UDP(User Data Protocol,用户数据报协议)。

网络层(又名网络互连层) –>(可以想象成快递途中走什么路线)网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。

链路层(又名数据链路层, 网络接口层) –>(可以想象成快递运输的交通工具,飞机、火车等)用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动。NIC (Network Interface Card, 网络适配器, 即网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介)。硬件上的范畴均在链路层的作用范围之内。

版权声明:本文为 CSDN 博主「VisonYH」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/yihui1314/article/details/79896995

参考资料

[1]

TCP/IP 协议族分层及其作用: https://blog.csdn.net/yihui1314/article/details/79896995

发布于: 2 小时前阅读数: 9
用户头像

hackstoic

关注

还未添加个人签名 2017.11.24 加入

还未添加个人简介

评论

发布
暂无评论
优秀程序员的30种思维--理解认知篇