浅谈如何作业务项目通用性、扩展性设计

前言

总结下如何设计项目方案。本文从通用、扩展两个角度去考虑项目该怎么设计,有哪些经常使用的手段。水平有限,望你们留言指正。mysql

必要前提

  • 充分的业务分析
  1. 充分了解业务细节:需求分析或者prd阶段,要充分掌握需求的细节。细节可能会决定:数据从哪获取(多处数据源如何统一接入),如何流转(流程插拔),存储选型(那种存储方便扩展:好比nosql存储异构数据)。
  2. 考虑不一样业务线的差别:业务线的差别可能会致使:数据源不一样、指标口径不一样、规则差别。
  • 将来3-5年的规划
  1. 给将来留扩展空间:这个主要考虑业务的发展趋势,这个能够多和业务同窗了解,或者看友商作法,
    系统要为这些将来的变化提早留好口子。
  2. 不要过分设计:这个无需多说了,设计过分增长了过多的复杂度,后面的变化也是难以捕捉的,不要作无用功。

经常使用手段

  1. Nosql的强大之处就在于存储的灵活性,好比Hbase或者Mongo能够灵活存储业务数据,不care字段增减的变化。
  2. 结构化的数据作非结构化功能。举个例子:mysql当成nosql使用,定义一个宽表,各类类型若干,定义一段文本,好比json,json里面维护业务字段与mysql字段的关系。
  • 数据打平:面对业务的差别,好比指标,不一样业务指标口径大多不一样,要想架构通用,数据须要打平。数据打平能够在存储层、内存层、展示层。
  1. 存储层:按照业务差别的公式,计算完成后存储,这样查询是就能保证数据同构,确保不一样业务通用。
  2. 内存层:说白了就是业务公式前置到内存层。而后经过计算公式计算结果,而后展示到上层。
  3. 展示层:同2的思想。
  • 规则引擎:能够说是屏蔽业务差别之银弹
  1. 业务的差别彻底可使用规则引擎解决,经过配置化来解决业务差别。
相关文章
相关标签/搜索