84、面向对象和解释器 对比(2022年)
应该选择解释器架构风格。
折扣规则的可修改性:解释器风格比面向对象方式实现强。因为解释器风格折扣规则是独立的语法规则,由解释器可对变化的规则进行解析,修改更容易。而面向对象相对固定,有变化需要修改具体的类。
个性化折扣定义灵活性:解释器强于面向对象,解释器可以根据用户灵活解释执行规则,做到千人千面。
系统性能:面向对象优于解释器。面向对象的实现相对固定,而解释器是运行期动态绑定执行
85、数据平衡原则(2022年)
分层细化的数据平衡原则:
1、子图与父图之间的平衡:
(1)父图与子图之间平衡是指任何一张DFD子图边界的输入输出数据流必须与其父图对应加工的输入输出数据流保持一致。
2)如果父图中某个加工的一条数据流对应于子图中的几条数据流,而子图中组成这些数据流的数据项全体正好等于父图中的这条数据流,那么它们仍然是平衡的。
2、子图内部:加工的输入和输出需要平衡。
86、数据流图和数据字典在软件需求分析和设计阶段的作用(2022年)
数据流图在分析阶段:建立系统的功能模型,从而完成需求分析。
数据流图在设计阶段:为模块划分与模块之间接口设计提供依据
数据字典在分析与设计阶段的作用为:
是所有人员工作的依据,统一的标准。它可以确保数据在系统中的完整性和一致性。
具体作用包括:按各种要求列表、相互参照、由描述内容检索名称、一致性检验和完整性检验。
87、心跳检测和超时探测(2022年)
心跳检测和超时探测是分布式系统中用于监控和管理节点健康状态的重要机制。
心跳检测是一种定期发送信号的方法,用于确认系统中各个节点是否处于正常工作状态。这种机制通过固定频率的信号发送来确保节点之间的通信链路是畅通的。如果某个节点在一段时间内没有收到心跳信号,就可以判断该节点可能已经失效,从而采取相应的处理措施。心跳检测不仅包括简单的信号发送和接收,还会携带节点的负载情况、运行状态等信息,以便管理系统更好地了解整个分布式系统的健康状况。
超时探测是在心跳检测中的一个重要概念,它涉及到在规定时间内未收到响应的情况。如果一个节点在规定时间内(例如3秒钟)没有收到任何心跳回应,就会触发超时处理机制。这种机制的核心在于设定一个合理的超时时间,这个时间需要根据网络延迟和节点处理能力进行调整,以避免误判正常节点为失效节点或影响故障检测的及时性。
在心跳检测过程中,当节点检测到心跳信号超时未返回时,可以采取的处理措施包括重试机制、报警机制和自动修复等。这些措施旨在确保系统的稳定运行,及时发现并处理潜在的问题。
88、基于解析模型的方法、数据驱动、领域驱动、模型驱动、事件驱动、元数据驱动(2022年)
基于解析模型的方法
基于解析模型的方法是一种利用数学模型描述和预测系统行为的方法,依赖于数学模型的精确性。
领域驱动:
利用确定的业务模型来指导业务与应用的设计和实现。主张开发人员与业务人员持续地沟通和模型的持续迭代式演化,以保证业务模型与代码实现的一致性,从而实现有效管理业务复杂度,优化软件设计的目的。
领域驱动,就是业务驱动,实现就是:业务建模。
本质逻辑是:识别边界,分而治之
以领域专家的角度设计软件实体
模型驱动:
让开发中心从编程转移到高级别抽象中去,通过模型转成代码或其他构件来驱动部分或全部的自动化开发。
模型驱动软件开发,也可以成为MDA开发,就是基于UML进行软件开发的分析设计建模,然后通过所建模型生成开发代码框架,或者可运行代码。
对比传统的软件开发过程,不是一上来就是编码,而是要先完成分析设计建模。
MDA提倡以模型为中心,设计模型驱动代码开发,理论、方法、工具都已经有支持的。
模型驱动VS领域驱动
- 焦点差异:
- DDD关注于深入理解业务领域并将业务模型贯穿于软件设计及开发的全过程;
- MDD关注于通过高层次的抽象模型简化软件设计和自动化软件生产。
- 方法论和工具:
- DDD是一套方法论,提供了一系列实践和模式帮助开发者构建响应复杂业务需求的软件系统;
- MDD则更多依赖于工具和技术,通过模型和自动化工具来提高软件开发的效率和质量。
- 实现方式:
- DDD通过团队成员之间的深入沟通、领域模