美文网首页
从复杂度的角度看项目设计

从复杂度的角度看项目设计

作者: 雪驹 | 来源:发表于2017-03-08 16:05 被阅读0次

设计项目的过程中,要考虑的一个关键点,就是项目的复杂度了。

那什么是复杂度呢?
复杂度顾名思义就是一个项目的复杂程度。

这个概念要解决一个什么问题呢?
现实中存在的情况是:因为人的大脑容量有限,心智能处理的信息有限。俗话说,做事不能三心二意。想想,如果你一边打游戏,一边和别人聊技术,还一边想着昨天和妹子聊天,这种情况下效率一定会非常低。
程序员软件开发过程中,也会遇到类似的问题。一边写代码,却要顾虑调用别人的接口是否可靠。查bug时,因为很难读懂别人的代码而浪费大量的时间。

因此软件设计中,如果能降低复杂度,那么我们开发设计的软件就能做到更容易维护,更稳定,更容易扩展。但是对于常用的软件设计中的一些方法论,比如DRY原则,正交性,分治迭代,单一职责在这篇文章中,我就不讲了。大家平时看文章,多少了解一些。但是如果想有个系统化的了解,还是推荐大家看《代码大全》。

在此,我说说如何降低软件的复杂度。如果没有办法测度软件的复杂度,那么降低复杂度到底有没有效果,就只能凭感觉了。如果软件复杂度的降低,对项目的实际效果没办法测度的话,那么就没办法展现自己的成绩了。(笑)关于软件复杂度的测试以及某个软件的复杂度的降低带来的效果,请看《代码大全》P458页(笑)

在项目设计中,对于软件复杂度的降低,我的经验如下:
1、通过命名规范,方法封装,单一功能,接口参数,分治,熟练数据库设计等等这种项目具体实现的技术和方法论来降低复杂度。
2、通过接口输入参数检查,提供测试用例以及文档,命名规范来降低接口的沟通成本。
3、设计项目中,通过对业务的深度理解,以及和产品更明确的沟通来降低与产品之间的沟通成本。
4、遇到问题,多找几个方案进行比较,和专业人士一起探讨下。
5、将不变的业务和变化的业务区分开来。将访问量大的业务和访问量小的业务区分开来,将经常增删改和不经常增删改的数据区分开来。

备注:之前因为不懂得度量,所以出现掌握的经验也大多是个人感受了。如果要对复杂度进行定量分析,还得先了解如何测度复杂度。然后再看看很多具体的方式,对复杂度产生的影响。

相关文章

  • 从复杂度的角度看项目设计

    设计项目的过程中,要考虑的一个关键点,就是项目的复杂度了。 那什么是复杂度呢?复杂度顾名思义就是一个项目的复杂程度...

  • 从用户角度看设计

    我是个PM,天天跟设计师在一起久了,耳濡目染,对设计也有些理解,最近接触的H5比较多,那今天就从H5这个点来说一说...

  • 算法-排序

    如何分析排序算法 从时间角度看1.1 需要考虑最好情况、最坏情况、平均情况的时间复杂度我们分析排序算法,从时间角度...

  • 从设计的角度看 Redux

    作者:来源 sf 的小智 你知道 Redux 真正的作用远不止状态管理吗? 你是否想要了解 Redux 的工作原理...

  • 从开发角度看项目流程

    项目流程通过软件工程这门课程,我们都知道是需求阶段->设计阶段->开发阶段->测试阶段->上线阶段->运维阶段。在...

  • 从运营角度看首页设计

    简述 最近进行的App端首页的改版项目,我在过程中参与了需求讨论和设计review。这里把我对首页改版的一些看法梳...

  • 【读书笔记】供应链管理 高成本、高库存、重资产的解决方案

    所谓“前端防杂”,说的是从供应链管理角度出发,从产品研发、设计开始,如何减少、预防产品本身的复杂度以及组织、流程的...

  • 【项目】从价值网角度看ICST项目

    最近听混沌大学的课程,还有得到老罗的音频,都提到了一个很重要的概念:价值网。 什么叫价值网?《创新者的窘境》里有这...

  • java 设计模式(1) - 策略模式

    设计模式 一.策略模式 1.从项目“记录自己的朋友行为”开始。 (1)我们先从面向对象的角度设计这个项目,朋友父类...

  • 从智能文娱角度看PAI 项目

    你想拥有一个跟你长得像、说话像、甚至思维方式和行为方式都跟你很像的智能虚拟形象吗?你会跟你的偶像的智能形象互动吗?...

网友评论

      本文标题:从复杂度的角度看项目设计

      本文链接:https://www.haomeiwen.com/subject/lmvbgttx.html