zoukankan      html  css  js  c++  java
  • 对世界的理解

    抓住三个点:根,生命周期,以及结构化;

    所谓根,就是根本,底层;对于需求分析而言,这个根就是这个项目的基本概念,比如对于机务维修系统而言,基本概念就是定期检修检,预提,预算,直接成本,间接成本;至于和海波龙系统交互等等,都是基于这些大的概念进行的;做到架构设计,这个根本,很大程度上就是对业务流程的抽象化理解,比如在中广核项目中,是一个订单,发货,运输,到货检验最后库存的过程;感觉上中间的环节非常多,但是其实他的根就是两个,商品(UP)和库存;商品是根中之根,几乎所有的流程节点都是围绕这个来进行的,只不过商品被不断的封装而已,早起订单的生成UP,到供货商发货,把UP进行打包(package)/封箱,到了目的地开箱,最后入库存,还有后来的出库,调拨,其实所有的操作无不是围绕着商品创建,打包,以及商品的打包检验,以及仓库见转移,还有后来的返运,也是对于仓库商品的增加,不过需要另外增加对于返运商品的管理和跟踪而已;所以在业务层其实可以划分为三层:上层是功能,比如创建订单,CCC之类,中层对"根"的抽象,商品的处理以及仓库增减,仓库的状态改变以及仓库间操作;可以理解是原子操作的封装;底层是字典表,基本表维护;有了中间层的抽象,上层的压力减轻了很多,代码也有很多重用;

    生命周期,是基于根生长出来的,相当于树干,还是拿中广核那个项目为例,生命周期概念就是一个能够把一个项目穿起来的概念,订单,供应商接单,发货,运输,开箱,CCC,ECC,入库,出库,调拨等等;分析生命周期对于项目本身全局的理解有很大;

    结构化,就是树的枝干,很多时候业务复杂了,当几个业务同时发生会有干扰,要看清楚,再复杂,关键要一根一根捋清楚,结构化有很多方法,麦肯锡推荐的树状分析法,还有温玉在《一下架构师》中讲述的需求分析的二维表法以及目标-场景-解决方案法;对于接单可能就需要再进行细化:分场景,是正常的接单,还是返运创建订单,不同的类型都有哪些处理,这样的话将会画出一个很大的分支来,这是有好处的,一旦调拨,出库入库混杂在一起的时候,就是用这个大分支进行捋清;做架构设计就是对鲁棒图以及分层进行细化,细化的角度就是逻辑视图,数据视图,物理视图以及开发视图进行结构化。

  • 相关阅读:
    并发编程bug的源头
    lambda表达式
    如何学习并发编程
    开篇词
    试述软件的概念和特点?软件复用的含义?构件包括哪些?
    软件生存周期及其模型是什么?
    一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别?
    在搜索引擎中输入汉字就可以解析到对应的域名,请问如何用LoadRunner进行测试。
    给你一个网站,你如何测试?
    你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决?
  • 原文地址:https://www.cnblogs.com/xiashiwendao/p/5196102.html
Copyright © 2011-2022 走看看