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

简介:

前言

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

必要前提

  • 充分的业务分析

    1. 充分了解业务细节:需求分析或者prd阶段,要充分掌握需求的细节。细节可能会决定:数据从哪获取(多处数据源如何统一接入),如何流转(流程插拔),存储选型(那种存储方便扩展:比如nosql存储异构数据)。
    2. 考虑不同业务线的差异:业务线的差异可能会导致:数据源不同、指标口径不同、规则差异。
  • 未来3-5年的规划

    1. 给未来留扩展空间:这个主要考虑业务的发展趋势,这个可以多和业务同学了解,或者看友商做法,
      系统要为这些未来的变化提前留好口子。
    2. 不要过度设计:这个无需多说了,设计过度增加了过多的复杂度,后面的变化也是难以捕捉的,不要做无用功。

常用手段

  • 设计模式、原则:设计模式本身就是提高软件的通用、扩展。遵循设计模式原则项目设计必要条件。具体参见:http://baijiahao.baidu.com/s?id=1589208155817565299&wfr=spider&for=pc
  • 异构存储:

    1. Nosql的强大之处就在于存储的灵活性,比如Hbase或者Mongo可以灵活存储业务数据,不care字段增减的变化。
    2. 结构化的数据做非结构化功能。举个例子:mysql当成nosql使用,定义一个宽表,各种类型若干,定义一段文本,比如json,json里面维护业务字段与mysql字段的关系。
  • 数据打平:面对业务的差异,比如指标,不同业务指标口径大多不同,要想架构通用,数据需要打平。数据打平可以在存储层、内存层、展现层。

    1. 存储层:按照业务差异的公式,计算完成后存储,这样查询是就能保证数据同构,确保不同业务通用。
    2. 内存层:说白了就是业务公式前置到内存层。然后通过计算公式计算结果,然后展现到上层。
    3. 展现层:同2的思想。
  • 规则引擎:可以说是屏蔽业务差异之银弹

    1. 业务的差异完全可以使用规则引擎解决,通过配置化来解决业务差异。
相关文章
|
11月前
|
人工智能 编解码 搜索推荐
深度测评-主动式智能导购 AI 助手构建的实现与优化
本文深度测评某平台提供的函数计算应用模板,用于快速搭建集成智能导购的电商网站。通过简洁直观的创建与部署流程,用户只需填写API Key等基本信息,即可完成配置。智能导购AI助手能通过多轮对话引导顾客明确需求,精准推荐商品,提升购物体验和转化率。系统支持自定义设置,具备高效、个性化、灵活扩展的特点。未来可引入更多维度推荐、机器学习及语音识别技术,进一步优化导购效果。
720 15
深度测评-主动式智能导购 AI 助手构建的实现与优化
|
存储 NoSQL Redis
详解布隆过滤器的原理、使用场景和注意事项
详解布隆过滤器的原理、使用场景和注意事项
505 0
|
11月前
|
存储 弹性计算 架构师
老板点赞!技术人如何用架构优化打赢降本增效战?
大家好,我是小米,一个喜欢分享技术的小架构师。通过亲身经历,我将介绍如何通过架构优化帮助公司降本增效。两年前,我加入一家初创公司,面对成本高企的问题,通过弹性伸缩、微服务化和数据治理等手段,成功降低了40%的技术成本,提升了60%的系统响应速度。希望我的经验能给你启发!关注我的微信公众号“软件求生”,获取更多技术干货。
216 5
|
Java 开发工具 Android开发
搭建大型源码阅读环境——使用 OpenGrok
RTFSC 是程序员成长的必修课,营造舒适的环境至关重要。本文介绍了阅读大型源码(如 AOSP)的工具选择,重点推荐了免费开源的 OpenGrok。OpenGrok 提供快速搜索、版本历史查看、语法高亮等功能,适用于特大型项目。文章还详细讲解了 OpenGrok 的安装和配置步骤,帮助读者高效阅读源码。
2532 6
|
存储 算法 安全
深入详解ThreadLocal
在我们日常的并发编程中,有一种神奇的机制在静悄悄地为我们解决着各种看似棘手的问题,它就是 ThreadLocal 。
21759 9
深入详解ThreadLocal
|
运维 负载均衡 监控
slb学习教程
【9月更文挑战第1天】
393 1
|
设计模式 Java 微服务
你一定要知道业务开发最常用的两种设计模式
文章介绍了业务开发中最常用的两种设计模式:策略模式和异步形式的责任链模式,通过具体案例展示了它们在代码解耦、扩展性增强以及提升响应速度方面的应用,并强调了设计模式在提升代码质量和开发效率中的重要性。
|
机器学习/深度学习 存储 人工智能
另一种替代Transformer架构将得到有意义的采用
【1月更文挑战第15天】另一种替代Transformer架构将得到有意义的采用
962 2
另一种替代Transformer架构将得到有意义的采用
|
机器学习/深度学习 存储 数据可视化
手把手教你绘制和解读实用R列线图(Nomogram):从入门到精通
手把手教你绘制和解读实用R列线图(Nomogram):从入门到精通
3254 1