zoukankan      html  css  js  c++  java
  • 通过简单原理增强软件可靠性

     

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

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

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

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

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

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

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

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

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

    2021年目标:完成新书《闻缺陷则喜》,本博客右上公告有下载、阅读链接。
  • 相关阅读:
    匿名函数
    内置函数
    基础函数--3
    基础函数(2)
    基础函数(1)
    文件的相关操作
    知识点补充,set集合,深浅copy
    is 和 ==的区别
    Django-form组件中过滤当前用户信息
    Django的常用模块引入整理
  • 原文地址:https://www.cnblogs.com/he-zhidan/p/15451380.html
Copyright © 2011-2022 走看看