• 微信:WANCOME
  • 扫码加微信,提供专业咨询
  • 服务热线
  • 0769-23063100
    13027920428

  • 微信扫码访问本页

程序员三大基础思维简谈:协议、接口和分层

旺道.商弈 -> 正文


文章图片1

不管是硬件设备、软件概念或者是网络通讯中,协议、接口无处不在,软件系统离不开分层模型。我认为它们应该是计算机类专业中基础的基础,是必学的课程或概念。协议和分层,各种课程都有涉及,但可惜的是,很多计算机类专业都没有设立接口技术这一项。

我当年上大学,接口技术只是一门不受重视的选修课,老师不讲,学生不用看。接口技术的书籍里面,大都是艰涩难懂的硬件概念,罗列了各种各样天书般的技术参数,让人望而生畏。但是,接口技术不是硬件或嵌入式的专利。接口思维是计算机类专业人员要必备的思维能力。它与协议思维、分层思维,并称为三大程序员基础思维。

文章图片2

计算机接口技术可以根据不同的标准和协议进行分类。最常见的是按照物理接口、逻辑接口和网络通讯来进行的分类。

  • 硬件接口:包括串行接口、并行接口、USB接口、HDMI接口等,它们用于连接计算机和其他外部设备之间的通信和数据传输。当然,还有些ISA、PCI、I2C、SPI、CAN等硬件内部总线接口。
  • 软件接口:包括应用程序接口(API)、驱动接口、类库、中间件、操作系统接口等,它们用于不同软件模块之间的通信和数据交换。
  • 网络接口:包括网络协议栈、网络API等,它们用于实现计算机与网络之间的通信和数据传输。

接口技术的基本原理是,通过定义遵循相同的协议标准和规范,传递和转换不同的数据和信号,来实现设备之间、软件之间和网络之间的通信和进行交互操作。

例如,USB接口可以通过传输数字信号来连接计算机和外部设备,HDMI接口可以通过传输视频和音频信号来连接计算机和显示器,TCP/IP协议帮助我们传输数据包,HTML/CSS帮我们显现网页,操作系统API可以让我们创建新的应用进程。诸如此类的例子,多不胜数,举不胜举。

文章图片3

接口与协议是密切相关的,协议描述或暗含了接口,接口呈现了协议。协议与接口,有硬件的,有软件的,更多的是两者的结合。协议与接口,可以使用不同的和编程语言来实现,例如TCP/IP协议、XML协义,你可以用不同语言来描述、实现和使用它。

接口不是一个随性而为的东西,它具备以下特点:

  • 可重用性,意味着接口可以在不同的系统和设备上被重复使用。
  • 互换性,意味着不同的设备和系统可以使用相同的接口进行通信和交互。
  • 可扩展性,意味着接口可以通过添加新的功能来扩展其能力。
  • 可配置性,意味着接口可以根据需要进行配置和调整。

不仅硬件之间需要物理接口,不同软件之间,甚至同一软件内部各模块之间也需要接口。其实,软件的每个模块函数就是接口广义来说,接口无处不在。无处不在的接口背后,都有相关的协议,比如我们打印A4、A4、A5等,它的尺寸也是协议定制的。再如,你实现的软件函数,其调用参数与返回值,内含了协议,外展露了调用接口。

文章图片4

一个互联网项目的API模型

如果只谈软件接口,包括应用程序接口API、驱动接口、类库、中间件、操作系统接口等,它们可以帮助不同的软件模块在运行时相互通信和协作。

  • 应用程序接口(API):它定义了不同软件模块之间的通信方式和协议。API通常包括函数库、类库、命令行接口、Web服务接口等,这些接口可以让软件开发人员使用标准化的方式与其他软件组件进行交互。
  • 类库:是一组已编写好的代码,用于封装特定功能的操作,例如文件输入输出、网络通信、图形界面等。类库可以被其他软件模块调用,从而实现代码的复用和模块化设计。
  • 中间件:是一种软件接口技术,它用于连接不同的软件组件和系统。中间件通常包括消息队列、远程过程调用、对象请求代理、分布式事务处理等,它们可以让不同的软件模块在分布式系统中协同工作。
  • 操作系统API接口:是操作系统提供给应用程序的一组接口,它们用于实现应用程序和硬件之间的交互,例如文件系统接口、进程管理接口、网络接口等。
  • 驱动接口:设备的驱动指令是常人难以理解的。驱动程序封装这些细节抽象,提供的外部接口函数,供上层调用。

在编程中,接口是非常重要,因为它可以帮助程序员实现模块化和抽象化的编程方法。接口可以定义不同模块之间的通信和交互方式,从而使程序更加灵活、可扩展和可维护。此外,接口还可以使程序更加可测试和可靠。

文章图片5

而分层结构则是纯的软件思维。分层思维模型是一种将软件系统划分为不同层次的方法,每个层次有不同的职责和功能。每个层次之间都有明确的接口和约束条件不同层次之间的通信通过接口进行。这种分层的思想可以使得系统的不同部分相对独立,从而更加容易维护和修改。此外,分层思想还可以促进团队协作,因为每个团队可以专注于自己的层次,而不必担心其他层次的细节。

我们的分层结构设计,都可以从OSI七层模型中得到营养。这方面的细节网上太多,不便详述。

文章图片6

因为协议、接口、分层,牵扯很广,不可能在一个短文里面说的透彻。但其中的本质、要点和原理,不会超出我的简谈。作为一个合格的码农,一定会在不知不觉的情况下,把这几项基本思维融入到了工作中。

以是上我这个老码农一时的兴起之作。这些思维看上去很简单明了,可能我很愚钝吧,这些居然是我工作多年之后才会有的感悟!

这些内容,可能对行外人来说是枯燥无味世界观、方法论,读起来一定是味同嚼蜡。如果你能看到这里,说明你恐怕是深有同感、或有不同见解的专业人士了,欢迎关注、留言或吐槽。

陈春花:营销的根本在于理解消费者

巨变时代,企业曾经行之有效的经验和方法也许不再有效,营销需要做合适的事情,其根本在于理解消费者,在创造顾客价值上的有所作为。春暖花开市场经济环境

生意有术(NO.24):像素级模仿顶尖高手

所以,很多人会热衷于报这个班,报那个班,各种的认识人,这一定程度上是急性“学习狂热症”,很容易造成迷失,迷失在各种方法体系里,有的东西却彼此相悖

穷人变富需要具备的四大能力,你有吗?1 抗拒诱惑游戏、视频、麻将-今日头条

穷人变富需要具备的四大能力,你有吗?1 抗拒诱惑游戏、视频、麻将、小说等等这些东西无时不刻诱惑着我们。穷人若想变富,必须要把精力和时间用在学习知

程序员三大基础思维简谈:协议、接口和分层

不管是硬件设备、软件概念或者是网络通讯中,协议、接口无处不在,软件系统离不开分层模型。协议和分层,各种课程都有涉及,但可惜的是,很多计算机类专业

老实人做生意做不好是有原因的:人家给你钱,你都不敢收!

这里面底层的差别在哪里,你有两个问题需要及时去解决:第一:你不会收钱;要做到这点,咱们必须得找到自己的价值,同时,还得让客户认识到你的价值。

Google 在中国大陆上线官方镜像资源站,为开发者提供访问和支持

摘要: Google 中国近日在其运营的公众号「谷歌开发者」中发布公告:目前国内开发者可通过 google.cn 直接访问 web.dev 以及... ...

生意之道:想赚大钱,就要学会与人分钱

只要你得到了好处 ,你就一定要分给别人,你只要每次都给了别人好处,你就会有源源不断的生意,就会源源不断地赚到许多莫名其妙的钱财,哈哈,这个莫名其... ...

2024流量共生,公域做规模,私域要复利

公域和私域是共生关系,在单独探讨一方时候总不自觉地思考与另一方的关系和联动。有很多企业两者之间会有所侧重,比如重公域销售,跑通投产比就持续放大,... ...

Nginx 常用配置汇总!从入门到干活足矣

众所周知,Nginx 是 Apache服务不错的替代品。其特点是占有内存少,并发能力强,事实上 Nginx 的并发能力在同类型的网页服务器中表现... ...

分布式架构和微服务架构的区别

1、含义不同微服务架构是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中。分布式系统是若干独立计算机的集合,这些计算机... ...

大屏可视化综合展示平台解决方案

概述建立大屏可视化综合展示平台,构建各业务板块统一的大数据分析平台,构建数据驾驶舱与智慧调度平台。深入探索挖掘企业的客户信息数据,以“大数据”理... ...

Ideogram:一款秒杀Midjourney,免费无限生成的AI绘画神器

导读:Ideogram AI是一个文本生成图片的平台,它最大的优点就是好用、免费又没有生成限制,因此可以秒杀MJ和SD。AI绘画是人工智能领域的... ...

陈春花:营销的根本在于理解消费者

巨变时代,企业曾经行之有效的经验和方法也许不再有效,营销需要做合适的事情,其根本在于理解消费者,在创造顾客价值上的有所作为。春暖花开市场经济环境... ...

穷人变富需要具备的四大能力,你有吗?1 抗拒诱惑游戏、视频、麻将-今日头条

穷人变富需要具备的四大能力,你有吗?1 抗拒诱惑游戏、视频、麻将、小说等等这些东西无时不刻诱惑着我们。穷人若想变富,必须要把精力和时间用在学习知... ...

ChatGPT时代,重新定义官网

ChatGPT时代已来,人机之间用自然语言交流成为现实,用户表达需求的方式可以更自然、更直接。那么,各大网站上复杂的导航栏设计、重复性极高的筛选... ...

小红书高时效推荐系统背后的技术升级

在小红书 APP 中,推荐系统的实效性对推荐效果有着特别重要的影响,特别是作为 UGC 平台,小红书的推荐系统如果能更快地捕捉用户与笔记之间的变... ...

你的店铺真的盈利了吗?万能「烘焙运营公式」奉上!

面包王子说:做好一个店铺,并不只是运营店铺,而是在做一家企业,门店需要一家企业所要拥有的一切。包括:组织能力、战略能力和营销能力的三大方向。我们... ...