作者:mindwind
最近一个月,生产环境上的程序偶发性的出现故障,而每次发生时现象都颇为诡异,神奇的是最后自己还能恢复。
这有点像是癫痫病人,小心翼翼的生怕发作,弄的人神经紧张。
程序一旦上了生产环境,基本就进入了隔离屋,这种偶然性的运行时问题,对程序开发者提出了更高的分析与诊断要求。
一直以来我们习惯性的把完成客户需求作为程序设计开发的主要任务,当需求实现了便认为程序开发完成。
而对于运行时分析诊断类的非客户类需求,在程序代码比例中占据的很小。
事实上,软件程序基本上应该包括三类代码:
1. 功能性代码
2. 诊断性代码
3. 预防性代码
一个程序软件,功能性代码是基本要求。
诊断性代码,在大部分程序软件中可能只有日志输出算的上。
日志作为诊断的缺点是无法很好的评估到底应该输出多少日志,在什么位置输出日志。
而对于一些动态的运行时程序诊断工具,又很难在生产环境去实施。
所以设计之初就需将诊断性的需求包含进去,但一个具备自诊断能力的软件程序是成本很高的。
退而求其次,至少我们可以让其具备运行状态的自汇报能力,然后由开发者根据状态来做诊断。
每类程序的『状态』都与其功能和业务密切相关,但它们也有其共性,那就是来自系统的状态。
操作系统在这方面做了很好的示例,提供了很多报告其自身运行状态的接口和工具,应该善加利用。
预防性代码的最基本表现是对异常进行设计处理,基本上所有程序都会包含这个部分,但大部分也仅有这个部分。
异常的设计处理基本都包含在现代的高级编程语言中了,所以很多时候我们没意识到这其实是一种预防性编程。
预防性编程的一种升级形式是灾备切换和容灾设计,由于实施的难度和成本效益大部分的非关键应用都不会做到这个层次。
很多应用面对成本收益做了一种折衷的选择:降级。非核心功能或服务在必要情况下可以降级来保障核心功能稳定。
综上,软件开发中三类程序代码所占的比例和实施策略,是效率和成本的平衡点,值得我们在设计时去考量。
分享到:
相关推荐
总的来说,"轴承故障诊断程序"是工业4.0背景下智能维护的重要工具,结合了现代计算技术与机械工程专业知识,为确保设备稳定运行、减少停机时间和维护成本提供了有力支持。随着物联网和大数据技术的发展,这类程序将...
《EOBD程序(最终程序)v1.6_CAN诊断_车载OBD、诊断程序_K._诊断协议_balloonafo_》是一款专为车辆诊断设计的强大工具,适用于汽车维修人员和爱好者。该程序支持两种主要的车载通信协议:CAN(Controller Area Network...
《C语言程序设计》PPT课件是一套全面讲解C语言编程基础的教育资源,旨在帮助学习者掌握C语言的核心概念,熟悉Visual C++ 6.0的编程环境,并提升读、编、调C程序的能力。以下将详细阐述相关知识点: 1. **C语言基本...
程序设计与调试阶段,程序结构设计是关键,通常会采用结构化编程,使程序清晰、易读。现场调试包括信号模拟、查找/替换与换线、变量监控与修改、输入/输出强制等步骤,以确保程序与实际操作一致。 故障诊断是保证...
电脑硬件诊断工具是一种重要的软件应用,它主要用于检测和分析个人...总之,电脑硬件诊断工具是保持系统健康、预防故障的重要手段,定期使用这类工具可以帮助用户提前发现潜在问题,避免数据丢失和昂贵的维修费用。
【遗传程序设计在旋转机械故障分类中的应用】 遗传程序设计是一种优化算法,灵感来源于生物进化过程,用于解决复杂的问题,包括函数优化、模式识别、数据分类等。在本文中,遗传程序设计被应用于旋转机械故障的分类...
数控机床的智能控制、监控与诊断技术是现代制造业中至关重要的组成部分,它们为提升生产效率、确保产品质量和降低维护成本提供了先进的解决方案。 1. **数控机床概述** 数控机床,全称为数字控制机床,是一种自动...
本文主要探讨了一种基于JavaServer Faces (JSF) 框架技术和Matlab的机械故障监测与诊断系统的设计与实现。JSF是一种用于构建企业级Web应用程序的Java框架,它提供了一种组件化的开发方式,简化了用户界面的构建。...
2. **推理机制**:设计高效可靠的推理机制对于提高诊断准确性至关重要。常用的推理方法包括正向链推理、反向链推理等。 3. **不确定性处理**:在实际应用中,往往存在大量的不确定性因素。因此,如何有效地处理不...
《数控机床故障诊断与维修》是一份专门针对高职高专教育的教材,旨在教授学生如何对数控机床进行有效的故障诊断和维修。数控机床是现代制造业中的核心设备,由多个组件协同工作,包括数控装置、伺服驱动装置、检测...
此外,考虑到实时性,小程序还可以集成故障代码查询,与车辆的车载诊断系统(OBD)接口,直接读取并解析故障码,提供即时的诊断建议。 为了提升服务手册的价值,可以增设互动功能,如故障案例分享、用户反馈和专家...
3 程序设计与实现 程序设计遵循模块化原则,每个功能模块都有独立的子程序,如血压计算、数据显示、报警判断等。采用IAR集成开发环境,为MSP430F149单片机编写C51程序,优化算法,确保程序运行的稳定性和效率。 4 ...
标题中的“系统工具内存诊断”是指一类专门设计用于检查和分析计算机内存状况的软件工具。这些工具可以帮助用户发现内存错误,提升系统稳定性,并预防由于内存问题导致的系统崩溃或性能下降。 在描述中提到,“一键...
5. **相关流程**:规定了测试与诊断过程中需要遵循的步骤和程序,确保操作的一致性和有效性。 6. **质量控制**:强调了在测试与诊断过程中质量控制的重要性,并提出相应的管理要求。 #### 三、应用场景 1. **产品...
总的来说,基因表达式程序设计在变压器故障诊断的应用,通过自适应和并行优化策略,提升了故障识别的精度和效率,对于保障电力系统的稳定运行和预防性维护具有重要意义。随着技术的不断发展,未来GEP可能会在更多...
SSM项目小程序“医笙小程序设计与前端开发_0d26l.zip”是一个基于Spring、Spring MVC和MyBatis(SSM)框架开发的微信小程序,专为医疗健康服务行业设计。该项目结合了微信小程序的便利性和SSM框架的技术优势,提供一...
汽车监测与诊断终端的设计和开发是当前智能交通系统研究领域的一个重要方向,通过实时监测汽车的运行状态和故障诊断,可以有效地预防交通事故,提高汽车维修的效率,从而保障道路运输的安全和顺畅。本论文探讨了基于...
本文提出了一种基于STM32微控制器的车载信息采集与诊断预警系统的设计方案,该系统能够通过特定的硬件接口和软件程序,采集汽车运行中的各种信息,并通过网络与远程维修中心进行数据通信,以实现对车辆状况的实时...
当计算机出现运行缓慢、程序崩溃或蓝屏等问题时,可能与内存故障有关。这时,内存诊断工具就显得尤为重要,它们可以帮助我们检测和定位内存问题。 “内存诊断工具.rar”是一个专门用于检查和诊断内存问题的实用程序...