程序构建---标准是什么

前言

        当感觉对编程有一点理解以后,会想写一个软件,然而此时发现之前那些内容还仅是个基础,需要补充对程序整体的理解.

引入

        经常看到说什么什么标准,对此做个粗浅的分析

标准的概念

        从字面意思上理解,标准指的是行业内的规范.产品符合标准表示产品是遵守规范的合格品.程序的最终目的是满足需求,表现形式是硬件输出.硬件的制造商提供的接口可能不一致.那么怎么解决这个问题呢?答案是设定同一个标准,将各自接口封装进入一个新的接口,这个新接口遵循标准.

图片来源于某度

标准与各方关系         

        标准制定者---提出标准

         比如显卡方面,微软Microsoft制定Direct标准.而OpenGL标准由SGI公司制定,现由Khronos Group(音译:克罗纳斯集团)维护

         标准实现---各显卡厂家

        以下来源:百度AI回答---OpenGL通常通过显卡驱动程序提供支持,用户不需要单独安装OpenGL,因为它已经集成在显卡驱动中‌  

          标准支持---操作系统

         操作系统封装了OpenGL,并提供接口(API),以头文件形式提供给开发者.编译的时候需要链接对应的库.

         如果没有操作系统,是单片机嵌入式什么的,就由程序员自己操作标准函数,操控性更高

           标准使用---程序开发者

         程序员要想使用硬件,不再去找相应地址,而是通过接口函数来访问硬件

标准的意义

        以OpenGL为例,他是由几百个函数组成的程序包,被封装进显卡驱动中.

         标准的意义是巨大的.他屏蔽了实现细节,使得程序员专注于业务逻辑.从此以后程序员从"面向硬件"(因为程序最终的目的是控制硬件)开发转为"面向标准"开发.所以不管要在开发中使用哪一种硬件,都要对相关的标准熟知---假设每种硬件都有对应标准.

        常见的被写入数据的硬件,个人电脑用得最多的是显示器,音箱,U盘,对应显卡,声卡还有U盘.此外网络硬件有路由器,交换机等设备.

        顺带提一下,因为现在的应用层框架很多,常常也会把标准封装进去.但笔者认为只会使用框架不算"真正"的程序员.要有自己写框架的能力,就算自己不写,至少有一些功能可以自己实现,否则只能被"困于"框架中,水平得不到提高.

程序结构图

         

        在硬件和操作系统之间,有个硬件抽象层.站在软件设计的角度,如果不去访问操作系统做修改,可以不用去管他,专注于标准即可.      

 修正

        前面帖子里写了个“屏幕“的实现_程序中如何将数据映射到硬件_C++实战-优快云博客.想通过直接访问内存的形式,把数据映射到硬件.现在看来,在使用标准的环境中,应该使用接口提供的地址

//屏幕对象的实现
//此处的addr需要接口提供
Matrix& makeScreen(short length,short height,long addr)

        如果接口里不提供硬件地址,而是采用调用接口函数的形式---假设有个接口函数,给对应的屏幕点写入颜色.那么另外写一个函数例如showScreen()把"屏幕"对象写入,函数内部再调用接口函数,也就是使用当时被摒弃的方案一.

//伪代码
void showScreen(){
    //遍历"屏幕"对象
    //调用接口函数,写入硬件
}

        这个写法可能很抽象,将就看.

        由此再次看出,代码是可以很灵活的.

小结

        对计算机中"标准"概念的一点理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

重庆彭枫

你的鼓励是我创作的动力,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值