新闻详情

新闻详情

首页 / 资讯中心 / 详情

编程思想的庖丁解牛

发布时间:2026/9/25 21:09:30来源:尧图网络
编程思想的庖丁解牛
总纲编程思想不是语法不是API而是看待问题、拆分问题、组织代码的思维方式。语法是工具思想是使用工具的方法论。底层划分两大主线面向过程、面向对象在此基础上衍生出函数式、模块化、分层、事件驱动等工程思想。C语言本身没有原生面向对象语法只能落地面向过程编程但我们可以用C手动模拟面向对象的封装思路。类比盖房子。语法是锤子、水泥、砖块编程思想是施工方案。面向过程是按工序一步步施工面向对象是预先制作预制构件再组装。不同方案适配不同规模、不同类型工程。一、面向过程思想Procedure OrientedPOP核心本质关注“怎么做”。把整个业务拆解成一串连续步骤按顺序完成任务。以流程、动作、函数为核心数据是被动的载体。程序就是一系列动作数据供各个函数读写。一句话概括先做A再做B接着C最后D。落地特征程序由一个个函数过程构成函数代表一个动作。数据和函数相互独立数据单独存放函数读取、修改数据。执行流程是线性的顺序、分支、循环串联所有步骤。适合问题逻辑清晰、流程固定、规模不大的场景。C语言最原生的编程思想。举例计算学生成绩面向过程思路定义数组存放分数写函数计算总分写函数计算平均分写函数打印结果。主函数依次调用读取成绩→计算总分→计算平均分→打印。整个思路是按步骤完成任务学生只是一堆数据函数是处理这些数据的动作。优势简单直观贴近人的直觉执行效率高开销极小非常适合嵌入式、单片机底层开发。短板业务一旦变更、项目规模变大代码耦合严重。需求改动时要修改多处函数和全局数据牵一发而动全身维护难度上升。数据没有保护任何函数都可以随意修改全局变量。二、面向对象思想Object OrientedOOP核心本质关注“是谁”。把数据操作数据的行为打包成一个整体也就是对象。不再优先考虑执行步骤而是识别现实世界里的实体实体拥有属性数据和方法行为。三大核心支柱封装、继承、多态。重点C语言没有class关键字C无法原生OOP但可以通过结构体函数指针手动模拟封装。四大基础概念封装把实体的属性和操作打包对外只暴露必要接口隐藏内部实现细节。外部不能直接随意修改内部数据只能通过提供的函数操作。继承已有类作为父类派生出子类。子类复用父类代码还可以扩展新属性、新行为减少代码冗余。多态同一个接口不同对象有不同实现。调用同一个方法实际执行逻辑由对象类型决定。类与对象类是模板对象是模板实例。类定义属性和行为对象是实实在在的实例拥有独立的数据。举例学生成绩面向对象思路识别实体学生类。属性姓名、学号、各科分数行为计算总分、计算平均分、打印个人信息。创建学生对象调用对象自身方法完成计算。数据属于学生对象只允许自身方法修改。优势高内聚低耦合代码更容易复用业务模型和现实世界实体一一对应大型项目更容易维护、扩展。短板有额外抽象开销运行效率低于面向过程抽象有学习成本小型简单程序写OOP会过度设计。三、模块化编程思想工程必备C语言高频使用模块化思想按功能拆分代码拆成独立模块模块之间通过接口通信减少互相依赖。C语言落地方式一个.c作为功能模块配套.h头文件对外暴露接口模块内部细节隐藏。规则一个模块只负责一类功能单一职责。例如串口模块、LCD屏幕模块、传感器模块。模块内部变量尽量static私有化外部不能直接访问。模块之间只调用头文件声明的函数不直接访问内部变量。优势多人并行开发模块可单独测试某模块修改只要对外接口不变其他代码不受影响。嵌入式C开发最核心工程思想。四、函数式编程思想简要理解核心把函数当成一等公民尽量避免可变数据减少副作用。不依赖外部全局变量相同输入永远产出相同输出纯函数。C语言可以使用函数指针来简单实现回调但是C不是函数式语言。适用场景数据转换、算法处理。五、事件驱动思想程序不按固定顺序执行等待事件触发事件来了再执行对应的处理函数。事件按键按下、串口收到数据、定时器中断。单片机、GUI、服务器网络程序大量使用。主循环持续检测一旦捕获事件调用对应的回调函数。特点流程不是预先写死由外部事件决定代码执行顺序。六、分层思想把软件分成多层下层提供基础能力上层调用下层禁止跨层调用。底层硬件驱动层中层业务逻辑层上层应用交互层。比如单片机项目硬件驱动层读写寄存器业务层读取传感器数据应用层处理逻辑、显示。好处硬件更换只修改底层驱动上层业务代码几乎不动。七、通用编程底层原则跨所有思想单一职责原则一个函数/模块只做一件事。函数功能不要混杂避免一个函数既读数据又写屏幕还存文件。高内聚、低耦合同一模块内部相关代码尽量聚合模块和模块之间依赖尽量少。最小暴露原则只对外暴露必须的接口内部实现隐藏。DRY原则不要重复写代码重复逻辑封装成函数。误区澄清误区1面向对象比面向过程高级写代码一定要用OOP。纠正没有绝对优劣。底层操作系统、单片机驱动首选面向过程大型业务软件适合面向对象。适合场景才最重要。C写内核、驱动全部使用面向过程。误区2模块化就是新建多个.c文件。纠正单纯拆分文件不等于模块化。真正模块化需要隔离内部数据、定义清晰接口否则只是文件拆分耦合依然很高。误区3编程思想只在写大项目才需要考虑。纠正小代码一样需要。哪怕几十行单片机代码用单一职责思路写函数调试难度会大幅降低。速记面向过程关注步骤先做啥后做啥面向对象关注实体属性行为打包一体模块化功能拆分接口隔离事件驱动等待触发事件来了再处理分层思想上下分层上层依赖下层所有思想的共同目标代码可读、易调试、方便扩展。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Atlas 300V 24G实战部署YOLO:从环境配置到推理跑通 2026/9/25 21:44:37

Atlas 300V 24G实战部署YOLO:从环境配置到推理跑通

最近后台好几个朋友都在问同一个词:atlas。有的是搜“atlas部署yolo”进来的,问昇腾的推理卡怎么把YOLOv5跑起来;有的更直接——“atlas 300v 24g 是运算加速卡吗”,一看就是采购清单里出现这型号,想确认自己到底买了块…

阅读更多 →
Atlas 300V 24G昇腾AI推理卡部署YOLO完整实战指南 2026/9/25 21:44:30

Atlas 300V 24G昇腾AI推理卡部署YOLO完整实战指南

手里同时插着A100和Atlas 300V Pro 24G的人,大概都听过这个灵魂拷问:Atlas 300V 24G到底算不算运算加速卡?答案是:算,而且很能算。这块卡虽然经常被归类到“视频解析”产品线里,但内核是华为昇腾310P AI处理…

阅读更多 →
学Simulink——基于Simulink的硬件在环(HIL)电机控制器测试平台 2026/9/25 21:44:24

学Simulink——基于Simulink的硬件在环(HIL)电机控制器测试平台

目录 手把手教你学Simulink ——基于Simulink的硬件在环(HIL)电机控制器测试平台 一、引言:为什么“纯仿真”不够?真实控制器必须经受HIL考验! 二、什么是电机HIL?核心架构解析 HIL基本原理 三大核心优势: 三、应用场景:伺服驱动器量产前的全面验证 四、建模与实…

阅读更多 →
显卡 显存 硬盘 内存 算力 CPU GPU名词区分 2026/9/25 21:44:10

显卡 显存 硬盘 内存 算力 CPU GPU名词区分

数据流向:硬盘>-内存>-显存一、核心名词定义 相互关系(面向模型训练 / 本地部署)先一句话总览:CPU:通用计算总管(适用于复杂的逻辑运算);GPU:并行计算加速器&…

阅读更多 →
23 种设计模式的通俗解释,虽然有点污 2026/9/25 21:43:37

23 种设计模式的通俗解释,虽然有点污

一、写在前面:设计模式到底在解决什么很多初学者第一次听说“设计模式”时,脑子里冒出的画面是厚厚的《GoF 设计模式》原书、满纸的 UML 类图和永远记不住的名字。但说实话,设计模式并不是什么高深莫测的咒语,它更像是程序员在长期…

阅读更多 →
GUI-Owl-1.5实测:多模态GUI智能体如何突破自动化脚本脆弱性 2026/9/25 21:43:37

GUI-Owl-1.5实测:多模态GUI智能体如何突破自动化脚本脆弱性

用了两周把 GUI-Owl-1.5 拉下来跑通,又把几个真实项目里的任务喂进去试了一遍,有些话想写出来。做 GUI 自动化这行当久了,最大的感受就是:脚本不脆弱才叫新闻。换台显示器分辨率,坐标全偏;UI 改个版式&…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉