首页 > 其他分享 >平台化设计产品存在的问题

平台化设计产品存在的问题

时间:2023-04-01 18:34:14浏览次数:38  
标签:存在 需要 组合 闭环 平台 业务 产品 组件 设计

关于产品的一些思考

产品:在将业务抽象成产品或组件时,需要考虑多个因素,包括闭环条款、持久性、可重用性等。只有当业务具备这些关键特征时,才能适合抽象成产品。否则,应该考虑将其作为组件的形式存在,或者使用规则引擎来可视化出来,使用条件积木和行为积木来表达其控制逻辑和操作步骤。

例如,限购、阻断和实名校验等业务没有明确的闭环条款,因此不太适合作为产品存在。相反,这些业务更适合作为可重用的组件存在,供其他产品调用。此外,使用规则引擎可视化这些业务可以帮助更好地管理其输入和输出,并使用条件积木和行为积木来表达其控制逻辑和操作步骤。

在考虑将业务抽象成产品或组件时,还需要考虑其持久性和可重用性。业务应该是非临时的,即它需要在相对长的时间内存在,并且在此期间不会发生根本性变化。如果一个业务存在较高的变动性和不确定性,那么将其抽象成组件可能会增加额外的复杂度和风险。

总之,将业务抽象成产品或组件需要综合考虑多个因素,包括闭环条款、持久性、可重用性等。通过合理地设计产品和组件,可以提高开发效率和业务灵活性,从而更好地满足用户的需求和期望。

TMF产品的定义

其实在毗卢的文章中没有对产品有名气的定义,在上面我按我之前对平台设计的理解给了产品定义,就是需要考虑是否有闭环、可持久性和可重构的业务场景。我们来看下TMF提供的例子,例子内容来自https://www.ryu.xin/2022/09/24/lattice-overlay-product/

我的理解是一个团购的产品,可能是团购返现、也可能是普通的团购,他在下单的过程中的不同步骤有自己的业务场景,能够形成闭环

定义团购场景 “GroupBuyProduct” 产品

@Product(code = GroupBuyProduct.GROUP_BUY_PRODUCT_CODE, name = "Group Buy Trade Product")
public class GroupBuyProduct extends ProductTemplate {

    public static final String GROUP_BUY_PRODUCT_CODE = "lattice.productGroupBuyProduct";

    @Override
    public boolean isEffect(ScenarioRequest request) {
        if (request instanceof BuyScenarioRequest) {
            boolean effect = StringUtils.equals("groupBuy", ((BuyScenarioRequest) request).getSource());
            System.out.println("GroupBuyProduct effect status:" + effect);
            return effect;
        }
        return false;
    }
}

笛卡尔积问题

在构建一个实物商品下单的产品时,需要组合多个产品,包括储值卡产品、实物商品产品、支付产品、优惠计算产品、快递产品和风控产品。同时,需要注意到同城配送产品在此场景下不适用,因此应该被剔除。这个过程需要考虑到各个产品之间的关联和依赖关系,并且需要进行笛卡尔积操作来确定最终组合的可能性和组合数目。

然而,如果构建一个虚拟商品下单的产品,组合的产品就会有所不同。在这种情况下,储值卡产品、虚拟商品产品、支付产品、优惠计算产品、快递产品和风控产品都是需要的。这种场景下的产品组合与实物商品下单的产品组合有所不同,因此需要重新组装一个新的产品组合,以便满足需求。

这样的组合产品不仅需要在构建时进行考虑,同时也需要在后续的维护和更新中进行相应的操作。这可能会导致大量的重复性工作,而且容易出现错误。为了解决这个问题,可以采用组件化和模块化的设计方法来简化产品的组装和维护。在这种方法中,每个产品都可以作为一个独立的组件,可以与其他组件相互连接和组合,形成一个完整的产品。这样可以有效降低组合产品的复杂度和维护成本,提高产品的开发效率和质量。

总之,产品组合和维护是一个复杂的过程,需要考虑到各个产品之间的关联和依赖关系,并进行合理的组合和剔除。采用组件化和模块化的设计方法可以有效简化产品的组装和维护,提高产品的开发效率和质量。如果设计不好的话,后期会有很多的叠加的笛卡尔积,导致产品、组合产品不断的膨胀,变成一个难以维护的系统。

标签:存在,需要,组合,闭环,平台,业务,产品,组件,设计
From: https://www.cnblogs.com/huaizuo/p/17266657.html

相关文章

  • 响应式网页设计
    学习响应式网页设计需要以下几个步骤:学习基本的HTML和CSS知识,了解网页布局和样式设置。熟悉CSS媒体查询语法和使用方法,媒体查询是响应式网页设计的核心,通过媒体查询可以根据屏幕尺寸、分辨率等不同因素来设置不同的CSS样式,从而实现响应式效果。学习响应式网格系......
  • 8086汇编计算次方,模块化设计
    就是把dw那一行的每个字的数据,求三次方,然后存到dd那一行assumecs:code,ds:datadatasegment dw1,2,3,4,5,6,7,8 dd0,0,0,0,0,0,0,0;;双字,32位dataendscodesegmentmain: movax,data movds,ax callcul;;放到子程序里计算 movax,4c00h int21hcul:......
  • 装饰设计模式-java
      packagecn.shuishandt.opp;publicclassDecorateTest2{publicstaticvoidmain(String[]args){ Coffecoffe=newCoffe(); System.out.println(coffe.cost()+"=============>"+coffe.info()); Milkmilk=newMilk(coffe);......
  • 程序设计应用2023-04-01
    数据库配置#Database#https://docs.djangoproject.com/en/4.1/ref/settings/#databasesDATABASES={  'default':{    'ENGINE':'django.db.backends.sqlite3',    'NAME':BASE_DIR/'db.sqlite3',  ......
  • 【小白晋级大师】如何设计一个支持10万人用的ChatGPT对接系统
    不停地书写,方能不失在人海茫茫。1.前言之前给大家写了ChatGPT对接企业微信的教程,具体可看知乎链接:【奶奶看了都会】ChatGPT3.5接入企业微信,可连续对话文章结尾说了教程只能适用于小规模使用,网上能找到的其他ChatGPT对接钉钉、飞书、自定义网页等等教程,原理都是一样的,写个中......
  • 订单设计步骤
    本文由简悦SimpRead转码,原文地址chat8.io场景:假设你是Java架构师使用设计模式实现一个订单下单过程好的,假设我是一名Java架构师,使用设计模式实现一个订单下单过程,可以使用工厂模式和模板方法模式进行设计。下面是一个可能的实现:首先,我们需要定义一个订单类Orde......
  • 软件构造规约设计知识点总结
    已经开始做软件构造实验二了,但做了几天还是感觉不太对,有种无从下手的感觉,我还是来复习一下本次实验所要用到的知识点吧,至于前面的知识呢,先别急,虽然也用的上,但在本次实验不是重点,之后再进行复习。知识点概要:规约设计测试用例ADT的泛化型ADT的抽象函数(AF)、......
  • 基于国产车规级处理器T507-H开发平台,如何用50行Python代码实现图传和人脸识别?
    我们在米尔国产T507-H车规级处理器的开发板上尝试无线图传功能,并且叠加人脸识别检测视频中是否存在人脸。这次使用的是USB摄像头,可以直接接在开发板的接口上。1.连接摄像头连接好摄像头后使用指令dmesg,看到能读取到摄像头。显示为HIK720pCamera接下来使用v4l来检测相机的详细参......
  • SpringBoot微服务集成keycloak实现跨平台统一认证授权
    //项目架构微服务划分://auth认证微服务实现登录认证拦截,获取token//gateway网关微服务//user用户微服务用户权限管理//system系统微服务核心逻辑处理//xxx其他微服务//common模块//1、common模块引入keycloak认证相关依赖<properties><keyc......
  • 避免在PCB设计中出现电磁问题的7个技巧
    在PCB设计中,经常出现电磁问题,如何有效避免呢,有以下七个小技巧。技巧1:将PCB接地,这样可以减少发射、串扰和噪声。技巧2:区分EMI,由于EMI不同,一个很好的EMC设计规则是将模拟电路和数字电路分开。技巧3:串扰和走线是重点,走线对确保电流的正常流动特别重要,返回路径走线的长度应与发送走......