zoukankan      html  css  js  c++  java
  • 《简约之美:软件设计之道》总结

    本书讨论了软件设计的一些规则,这些规则如下:

    1. 软件的目的是帮助他人

    2. 软件设计的方程公式:
      D = (Vn + Vf )/ (Ei + Em)
      其中:

      • D表示变化的何以程度(可行性);
      • Vn表示当前价值;
      • Vf表示未来价值;
      • Ei表示开发成本
      • Em描述维护成本

      这是软件设计的主要法则。随着时间的推移,这个方程式简化为:
      D = Vf / Vm
      也就是说,相比较降低开发成本,更重要的是降低维护成本。

    开发软件的目的不是为了赚钱,也不是为了炫技,是为了帮助他人。只有这样你才会全心全意的为用户着想,站在用户的角度考虑问题。为了能持续的帮助他人,需要降低软件的开发和维护成本。相比降低开发成本,降低维护成本更重要,维护成本随着时间的推移会逐渐的增加。

    变化规律:程序存在的时间越久,他的某个部分需要变化的可能性越大。

    缺陷定律:程序出现缺陷的可能性,正比于你对它修改的程度。

    简洁定律:软件的任何一部分的维护难度,正比于该本分的简洁程度。

    测试定律:你对软件行为的了解程度,等于你真正测试它的程度。

    没有经过严格测试的软件

    目前公司开发的所有项目,都是开发人员根据项目经理的需求,自己进行开发,有些项目甚至没有原型,开发人员只能根据自己的理解来编写代码。结果可想而知,完成的功能经常不完全是所需要完全的功能,这就造成开发人员频繁的去改动代码,一来公司的大部分的开发人员都是新手,编写的代码千奇百怪,有些甚至是直接从网上复制过来的,要排版没版本,代码写的一团糟。经过多次修改后,代码完全失控了,到处都是无用的代码。更可笑的是,公司研发编写的底层代码,也是一个尿性,代码极其臃肿,模块就有二三十个,每次开启一个新的项目,都是把研发部写的底座拿过去搭建环境,在这个的基础上进行开发,原来的底层都这么烂了,编写的代码还能好到哪里去去呀!!!

    而且不管是这些在建的项目,还是研发部的底层代码,都是没有经过严格测试的,没有单元测试。所谓的测试,也只是派人在界面上去点一点,测试的情况完全不理想。经常有些功能,在使用的时候发现,还有很多的问题。关键是这些人不是专业的测试,他们只是实施人员。。。

    说起来都是泪啊,最终苦的还是开发,都是开发的锅。。。

  • 相关阅读:
    leetcode 13. Roman to Integer
    python 判断是否为有效域名
    leetcode 169. Majority Element
    leetcode 733. Flood Fill
    最大信息系数——检测变量之间非线性相关性
    leetcode 453. Minimum Moves to Equal Array Elements
    leetcode 492. Construct the Rectangle
    leetcode 598. Range Addition II
    leetcode 349. Intersection of Two Arrays
    leetcode 171. Excel Sheet Column Number
  • 原文地址:https://www.cnblogs.com/zhangfengxian/p/10645287.html
Copyright © 2011-2022 走看看