【闻缺陷则喜】避错设计

简介: 【闻缺陷则喜】避错设计

同型原理

同型原理指保持形式统一。统一不同人风格很难,同一个人急躁的时候和轻松的时候风格都不一样,何况不同的人。统一的内容包括但不限于:


统一的命名规则。

利用接口和适配器统一诸多类似算法。CDC系统的算法主要有:瑕疵检测、寻找极耳、寻找Mark孔,宽幅测量等,每种算法因为要检测的材料不同,有细微区别。可以统一成接口:输入图像,输出json串。

统一的文件格式,如:日志文件。

简化问题,问题有多个解。选择一个较优解。比如:命名管道,可以多个进程有同名管道的服务端和客户端,但限制每个管道只有一个进程有服务端,就可以满足实际需要。

出参在前,入参在后。

三种编程命名规则


一、匈牙利命名:开头字母用变量类型的缩写,其余部分用变量的英文或英文的缩写,要求单词第一个字母大写。


二、骆驼式命名法。变量一般用小驼峰法标识。驼峰法的意思是:除第一个单词之外,其他单词首字母大写。


三、大驼峰法(即帕斯卡命名法)把第一个单词的首字母也大写了。常用于类名,命名空间等。


对称原理

对称原理指的是保持形式的对称。包括但不限于:


分析时:输入有范围要求时,不仅要写出合法输入的处理流程,也要写出非法输入的流程。


设计时:切勿忽视异常设计,正确区分“客户、用户”。


控制逻辑的“真/假”,执行路径“通/不通”,控制条件“满足/不满足”,系统工作状态的“正常/异常”,处理结果的“异常/成功/失败”,线程、进程的“空闲、阻塞”,通信系统的“服务端、客户端”,文件、内存文件、命名管道的“读、写”,消息的“收/发”。


编程时:如果if else没有成对出现要,要考虑是否缺少else。switch语句每个分支是否需要、且有break,最后不要忘记default。


层次原理

指的是系统可以分为子系统,子系统可以分为孙系统,孙系统可以拆分成模块,模块可以拆分子模块,子模块可以拆分成语句。


线性原理

指某个系统、组件、模块可以用线性描叙,最多用矩阵描述。主要包括三点:一,禁用GoTo。二,尽量减少使用分支,比如用注册接口的方式代替分支。三,复杂部分拆分到一个函数中。


清晰原理

能清晰证明自身的正确性。包括:一,尽量使用清晰的方式,不用为了性能或炫耀而用一些不常规的方式。二,尽量使用规范、标准、习惯等团队大家都知道的东西。三,对于核心部分,使用形式化证明。


安全原理

防止意外和恶意破坏。包括如下四个措施:一,调用底层功能时,获取异常或错误信息。二,尽量少分配权限,只分配必要的权限。三,完善的日志系统。四,如果使用C语言,不会修改的对象和变量可以使用const。


相关文章
|
XML 数据格式
[闻缺陷则喜]关于boost的想法
[闻缺陷则喜]关于boost的想法
|
消息中间件 测试技术 语音技术
架构模式 节选自《闻缺陷则喜》(此书可免费下载)
架构模式 节选自《闻缺陷则喜》(此书可免费下载)
|
测试技术 C# C++
[闻缺陷则喜]编码与实现方式
[闻缺陷则喜]编码与实现方式
|
SQL 设计模式 JSON
开发期质量 节选自《闻缺陷则喜》(此书可免费下载)
开发期质量 节选自《闻缺陷则喜》(此书可免费下载)
|
XML 存储 设计模式
概要设计 其它 节选自《闻缺陷则喜》(此书可免费下载)
概要设计 其它 节选自《闻缺陷则喜》(此书可免费下载)
沟通 节选自《闻缺陷则喜》(此书可免费下载)
沟通 节选自《闻缺陷则喜》(此书可免费下载)
|
设计模式 开发者
设计模式 选自《闻缺陷则喜》此书可免费下载
设计模式 选自《闻缺陷则喜》此书可免费下载
|
消息中间件 运维 测试技术
单元测试 节选自《闻缺陷则喜》(此书可免费下载)
单元测试 节选自《闻缺陷则喜》(此书可免费下载)
|
NoSQL 前端开发 数据库
架构内容 节选自《闻缺陷则喜》(此书可免费下载)
架构内容 节选自《闻缺陷则喜》(此书可免费下载)

相关实验场景

更多