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

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

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


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


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


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


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


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


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


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


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


相关文章
|
Java Linux Shell
Gradle下载和配置教程:Windows、Mac和Linux系统安装指南
Gradle下载和配置教程:Windows、Mac和Linux系统安装指南
2278 0
|
数据采集 人工智能 物联网
【大模型】如何诊断和解决LLM 开始生成令人反感或与事实不符的输出?
【5月更文挑战第7天】【大模型】如何诊断和解决LLM 开始生成令人反感或与事实不符的输出?
最新研究揭示,工程学位是毕业生最高薪选择,计算机工程专业年薪中位数达8万美元
【2月更文挑战第26天】最新研究揭示,工程学位是毕业生最高薪选择,计算机工程专业年薪中位数达8万美元
175 4
最新研究揭示,工程学位是毕业生最高薪选择,计算机工程专业年薪中位数达8万美元
|
Java
【随手记】idea常用快捷键(持续更新)
【随手记】idea常用快捷键(持续更新)
107 0
|
SQL 安全 算法
网络安全与信息安全:防范之道,加密之术与安全意识的觉醒
【5月更文挑战第30天】 在数字化时代的浪潮中,网络和信息安全已成为全球关注的焦点。本文将深入探讨网络安全漏洞的概念、成因及其对个人和组织构成的威胁。同时,我们还将剖析加密技术的种类和工作原理,以及它们如何为数据提供坚固的防护墙。最后,文章着重强调了提升个人和企业的安全意识的重要性,并分享了培养这种意识的策略。通过这三个维度的讨论,旨在为读者提供一个全面的网络安全与信息保护的知识框架。
|
存储 数据库 双11
数据库的三大范式及其重要性,详细易懂
数据库的三大范式及其重要性,详细易懂
2294 0
|
前端开发 JavaScript
从0搭建Vue3组件库之Icon组件
从0搭建Vue3组件库之Icon组件
971 0
|
JSON 移动开发 小程序
【知识】Uni-app-学习笔记 04
【知识】Uni-app-学习笔记 04
546 0
【知识】Uni-app-学习笔记 04
|
Kubernetes Cloud Native API
带你读《云原生应用开发:Operator原理与实践》——2.3.3 鉴权
带你读《云原生应用开发:Operator原理与实践》——2.3.3 鉴权