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

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

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


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


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


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


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


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


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


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


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


相关文章
|
4月前
|
机器学习/深度学习 存储 Python
数据增强
【7月更文挑战第29天】
59 15
|
5月前
|
编解码 算法 计算机视觉
YOLOv8数据增强预处理方式详解:包括数据增强的作用,数据增强方式与方法
YOLOv8数据增强预处理方式详解:包括数据增强的作用,数据增强方式与方法
|
5月前
|
jenkins 测试技术 持续交付
利用C++增强框架的可测试性(Testability)
**C++框架可测试性提升策略**:通过模块化设计、依赖注入、使用Mock对象和Stub、编写清晰接口及文档、断言与异常处理、分离测试代码与生产代码、自动化测试,可以有效增强C++框架的可测试性。这些方法有助于确保代码正确性、健壮性,提高可维护性和可扩展性。示例包括使用类和接口实现模块化,通过构造函数进行依赖注入,以及利用Google Test和Google Mock进行断言和模拟测试。
82 1
|
6月前
|
存储 算法 Python
算法的特性及其实现
算法是计算机科学中的核心概念,它代表了解决问题的步骤和过程。一个有效的算法不仅应当能够解决问题,还应当具有一些重要的特性,如正确性、可读性、健壮性、效率等。本文将详细讨论这些特性,并通过代码示例进行说明。
102 1
|
6月前
|
JavaScript
ESCheck工具原理解析及增强实现(2)
精简实现的运行结果如下,完整源码见Github
|
6月前
|
JavaScript 小程序
ESCheck工具原理解析及增强实现(1)
前言 2022了,大家做的面向C端的产品(Web,小程序,其它跨端方案),涉及JS产物的还是避不开兼容性的话题(即使IE已官宣停止支持) 但就目前看来这个停止维护还是避免不了大家做开发还是要考虑兼容低端机,甚至IE11
|
6月前
|
前端开发 JavaScript
ESCheck工具原理解析及增强实现(3)
完整demo3代码 如有一些边界情况也是在 catch err部分根据 message做一下过滤即可 比如下代码
|
机器学习/深度学习 算法框架/工具 Python
pyton数据增强
pyton数据增强
81 0
|
安全 5G 网络安全
5 分钟搞懂 5G 安全增强
5 分钟搞懂 5G 安全增强
193 0
|
算法 程序员
认识算法的特性
努力是为了不平庸~ 算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法!欢迎记录下你的那些努力时刻(算法学习知识点/算法题解/遇到的算法bug/等等),在分享的同时加深对于算法的理解,同时吸收他人的奇思妙想,一起见证技术er的成长~
131 1
下一篇
无影云桌面