`
BradyZhu
  • 浏览: 248295 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

程序设计的预防与诊断

 
阅读更多

作者:mindwind

最近一个月,生产环境上的程序偶发性的出现故障,而每次发生时现象都颇为诡异,神奇的是最后自己还能恢复。
这有点像是癫痫病人,小心翼翼的生怕发作,弄的人神经紧张。
程序一旦上了生产环境,基本就进入了隔离屋,这种偶然性的运行时问题,对程序开发者提出了更高的分析与诊断要求。

一直以来我们习惯性的把完成客户需求作为程序设计开发的主要任务,当需求实现了便认为程序开发完成。
而对于运行时分析诊断类的非客户类需求,在程序代码比例中占据的很小。
事实上,软件程序基本上应该包括三类代码:

1. 功能性代码
2. 诊断性代码
3. 预防性代码

一个程序软件,功能性代码是基本要求。
诊断性代码,在大部分程序软件中可能只有日志输出算的上。
日志作为诊断的缺点是无法很好的评估到底应该输出多少日志,在什么位置输出日志。
而对于一些动态的运行时程序诊断工具,又很难在生产环境去实施。
所以设计之初就需将诊断性的需求包含进去,但一个具备自诊断能力的软件程序是成本很高的。
退而求其次,至少我们可以让其具备运行状态的自汇报能力,然后由开发者根据状态来做诊断。
每类程序的『状态』都与其功能和业务密切相关,但它们也有其共性,那就是来自系统的状态。
操作系统在这方面做了很好的示例,提供了很多报告其自身运行状态的接口和工具,应该善加利用。

预防性代码的最基本表现是对异常进行设计处理,基本上所有程序都会包含这个部分,但大部分也仅有这个部分。
异常的设计处理基本都包含在现代的高级编程语言中了,所以很多时候我们没意识到这其实是一种预防性编程。
预防性编程的一种升级形式是灾备切换和容灾设计,由于实施的难度和成本效益大部分的非关键应用都不会做到这个层次。
很多应用面对成本收益做了一种折衷的选择:降级。非核心功能或服务在必要情况下可以降级来保障核心功能稳定。

综上,软件开发中三类程序代码所占的比例和实施策略,是效率和成本的平衡点,值得我们在设计时去考量。

分享到:
评论

相关推荐

    ssm项目小程序医笙小程序设计与前端开发_0d26l.zip

    SSM项目小程序“医笙小程序设计与前端开发_0d26l.zip”是一个基于Spring、Spring MVC和MyBatis(SSM)框架开发的微信小程序,专为医疗健康服务行业设计。该项目结合了微信小程序的便利性和SSM框架的技术优势,提供一...

    计算机毕业设计-微信小程序“口腔助手”小程序的设计与实现_u--+论文+项目源代码.rar

    1. **口腔知识库**:提供丰富的口腔健康知识和实用技巧,帮助用户了解口腔疾病预防、日常护理及治疗方法。 2. **智能自诊**:通过用户输入的症状,智能分析可能的口腔问题,并提供初步的诊断建议,引导用户及时就医...

    基于微信小程序的失眠咨询治疗辅助系统的设计与实现.rar(论文+程序源+数据库文件)

    本课题主要借助微信小程序失眠咨询辅助系统的开发来实现线上预防测试失眠的赋值工具。 本系统主要采用springboot开发框架制。使用的技术有mysql数据库、mybatis驱动框架以及tomcat服务端部署,用到的集成开发工具...

    软件工程知识点

    在基于软件工程的软件开发过程中,编码往往只是一项语言转译工作,即把详细设计中的算法描述语言转译成某种适当的高级程序设计语言或汇编语言。 为了方便程序调试,针对基本模块的单元测试也往往和编码结合在一起...

    基于微信小程序的老年人健康管理平台(java)hsg.zip

    基于微信小程序的老年人健康管理平台是一款专为老年人设计的智能健康管理应用。该平台利用Java编程语言和微信小程序技术,旨在帮助老年人更好地关注和管理自己的健康状况。通过这个平台,用户可以轻松地记录日常活动...

    基于嵌入式Linux框架下的的智能仪器触摸屏接口设计过程详解

    在现代化生产中, 为了确保机械设备...设计了四线电阻式触摸屏与PXA255 处理器的接口电路, 分析了Linux框架下的字符设备驱动程序设计原理, 完成了触摸屏的接口驱动程序开发, 并设计了用触摸屏作为输入设备的MiniG

    基于Java与SSM技术的社区医疗平台的设计与开发300030(附源码+数据库)

    整合HIS系统、病理诊断系统、远程医疗、挂号管理、医疗保险接口、居民健康档案管理、疾病管理、药品管理、财务核算管理等子系统 包括居民健康档案、预防免疫、就诊记录、健康检查记录等多方面信息

    显示/光电技术中的基于嵌入式技术的智能仪器触摸屏接口设计

    设计了触摸屏与微处理器的接口电路; 开发了嵌入式L inux框架下的触摸屏设备驱动程序; 阐述了采用触摸屏作为输入的MiniGU I应用程序的编写方法。  设计的触摸屏接口已成功应用在故障诊断仪器产品上, 增强了仪器...

    基于嵌入式技术的智能仪器触摸屏接口设计

    设计了触摸屏与微处理器的接口电路; 开发了嵌入式L inux框架下的触摸屏设备驱动程序; 阐述了采用触摸屏作为输入的MiniGU I应用程序的编写方法。  设计的触摸屏接口已成功应用在故障诊断仪器产品上, 增强了仪器...

    Java Bug模式详解

    1.1 软件设计、实现和维护的趋势 1.1.1 对于稳定、安全 系统的需求增加 1.1.2 传统软件工程技 术的局限性 1.1.3 开放源代码的软 件项目的可利用性 1.1.4 对于跨平台语言 的需求 1.2 在快节奏的社会中学习 ...

    基于安卓的奶牛管理.zip

    “基于安卓的奶牛管理”是一款专为牧场主和奶牛养殖者设计的移动应用程序。这款应用的主要目标是帮助用户更有效地管理他们的奶牛,提高奶牛的生产效率,同时也使得日常的奶牛管理工作变得更加轻松和便捷。该应用具有...

    设备智能运维系统介绍.pptx

    让维修更高效,让决策更简单 工业互联网建设路径 传统TPM (全员自主维护) 数字运维 (****) 智能物联 (SCADA) 预测性维护 (PHM) 被动维护 (RM) 预防性维护 (PM) 基于状态的维 护(CBM) 故障预测与 健康管理 ...

    mWellness-crx插件

    MicroHealth Wellness专为MicroHealth员工设计,可帮助他们确定应与健康提供者讨论的健康检查。 数据由AHRQ ePSS提供支持,可根据年龄,性别和风险识别合适的临床预防服务。 非常欢迎您使用此应用程序,但是它是为...

    医院服务优化设计方案页.docx

    医疗服务包括伴随疾病的预防、诊断、治疗、康复、预后等医疗活动过程中,医护人员、其他员工以及医院以实物和非实物的形式满足患者需要的一系列行为。 医疗服务具有两重性: 一方面,医疗服务包含疾病诊断、治疗等...

    mRecalls-crx插件

    语言:English (United States) 使用此Chrome扩展程序搜索产品召回。 mRecall是专为MicroHealth员工设计的,旨在帮助他们在Recalls....本内容无意替代专业医疗建议,安全建议,安全预防措施,制造商警告,诊断或治疗。

    低资源环境下老年人无创健康监测的电子健康生物传感器平台-研究论文

    传感器位移误差对医疗诊断有直接影响,尤其是在诊断程序是自动化的情况下。 该研究导致了电子健康传感器平台方法论的制定,在软件架构方面,允许使用系统生物传感器来适应用户特定的自我保健环境。

    SWE2_CaC:软件工程2项目-命令和控制实现

    该系统在设计时就考虑了风电场的预防性维护,并具有一个在线仪表板,该仪表板将充当该中央API所提供/存储的所有信息的枢纽。 该存储库包含主要的CaC API,该API允许从共享数据库中存储和检索数据。 当前,所涉及的...

    心音信号处理的数字滤波器设计研究,matlab源码+word论文。

    心音信号是人体最重要的信号之一,能反映心脏的变时性和变力性,可应用于心血管疾病的诊断和心肌收缩能力的评估;同时心音信号检测方便、无创、花费极少,可作为心脏疾病检测、预防的有效手段。因此,研制一种能...

Global site tag (gtag.js) - Google Analytics