通过简单原理增强软件可靠性

简介: 通过简单原理增强软件可靠性

简单原理,就是字面的意思,系统越简单越好。复杂问题简单化,很难;简单问题复杂化,很容易。


简化问题至少有如下方法:借用、取舍、拆分、分类、分工、模式与学习、规范 。


借用是站在巨人的肩上。“欲穷千里目,更上一层楼”。遇到问题,先不急着动手,先思考、查阅记录,看以前是否遇到相同或接近的问题,直接复用或借鉴。以前,我和500年接到一个流程图的小项目,500年奋战几天没能解决,半年后发现BCG有现成的功能。如果没有可复用或借鉴,查阅团队文档和第三方文档。


取舍。抓住主要矛盾,忽略次要矛盾。常见反例:某程序员鏖战几周,让某个模块性能提升200%,但此模块不是瓶颈模块,所以整个系统的性能没有提升。


拆分。好处有二:部分拆分后的子任务,可以直接借鉴,这将大幅降低成本。二,复杂度大幅降低。忽略模块间的通信,1个500行的模块比5个100行的模块复杂得多。


分工。让每位员工遇到同类问题的几率大幅升高,多次遇到的问题简单得多。


模式和学习。通过学习可以降低问题的难度。有效学习的四个要素:一,明确的目标。“看1小时的书“不是明确的目标。“用C#完成最简单的同步事件”是明确的目标。二,专注与发散相结合。专注高效,但没有发散性。发散容易产生灵感、顿悟。三,有效、及时的反馈。比如:老师阅卷、AI阅卷、同行切磋。四,在拉伸区练习。如果感觉枯燥,提升难度;如果感觉焦虑,降低难度。


如果有合适的规范,可以避免许多前人踩过的坑。


不同阶段,主要目标不同:需求分析阶段重点在拆分需求,设计阶段重点在模块划分,编码阶段重点在可理解性。


相关文章
|
2月前
|
机器学习/深度学习 存储 Python
数据增强
【7月更文挑战第29天】
46 15
|
3月前
|
编解码 算法 计算机视觉
YOLOv8数据增强预处理方式详解:包括数据增强的作用,数据增强方式与方法
YOLOv8数据增强预处理方式详解:包括数据增强的作用,数据增强方式与方法
|
3月前
|
jenkins 测试技术 持续交付
利用C++增强框架的可测试性(Testability)
**C++框架可测试性提升策略**:通过模块化设计、依赖注入、使用Mock对象和Stub、编写清晰接口及文档、断言与异常处理、分离测试代码与生产代码、自动化测试,可以有效增强C++框架的可测试性。这些方法有助于确保代码正确性、健壮性,提高可维护性和可扩展性。示例包括使用类和接口实现模块化,通过构造函数进行依赖注入,以及利用Google Test和Google Mock进行断言和模拟测试。
58 1
|
4月前
简述几种常用数值方法的优势及适用性
这篇文章简要介绍了几种常见的数值计算方法在解决偏微分方程中的应用。偏微分方程被用来描述自然界的物理现象,而当它们难以直接求解时,数值方法如有限元法(FEM)、有限差分法(FDM)、有限体积法(FVM)和边界元法(BEM)成为常用工具。有限元法适用于复杂问题,但计算量大;有限差分法简单但对复杂几何形状处理困难;有限体积法对网格质量要求低,适合流体力学;边界元法则仅需处理边界,适合边界主导的问题。各种方法各有优劣,常结合实际问题组合使用。例如,云道智造的伏图仿真平台集成多种数值方法,支持多物理场耦合仿真。
116 0
|
4月前
|
JavaScript 小程序
ESCheck工具原理解析及增强实现(1)
前言 2022了,大家做的面向C端的产品(Web,小程序,其它跨端方案),涉及JS产物的还是避不开兼容性的话题(即使IE已官宣停止支持) 但就目前看来这个停止维护还是避免不了大家做开发还是要考虑兼容低端机,甚至IE11
|
4月前
|
前端开发 JavaScript
ESCheck工具原理解析及增强实现(3)
完整demo3代码 如有一些边界情况也是在 catch err部分根据 message做一下过滤即可 比如下代码
|
4月前
|
JavaScript
ESCheck工具原理解析及增强实现(2)
精简实现的运行结果如下,完整源码见Github
|
10月前
|
机器学习/深度学习 算法框架/工具 Python
pyton数据增强
pyton数据增强
65 0
|
10月前
|
安全 5G 网络安全
5 分钟搞懂 5G 安全增强
5 分钟搞懂 5G 安全增强
169 0
|
前端开发 JavaScript 程序员
使用 ViroReact 开发增强实现应用的一个具体例子
使用 ViroReact 开发增强实现应用的一个具体例子