首页  >  问答  >  正文

javascript - 关于一个项目的设计方案探讨

最近在弄公司的一个活动页面可配置的项目,姑且叫cms吧
功能呢就是每次做促销活动比如双11的时候运营在管理后台配置相应的模块,最终生成页面

接口是类似这个样子的结构

{
    list:[
        {
            type: 1,  //这个模块的type,比如1对应商品组合模块
            cmsId: 1, //这个模块的唯一id
            data: {
                //具体的这个模块的数据
            }
        }
    ],
    code: 200,
    msg: ''
}    

目前我的思路是这样的:
通过简单的工厂模式定义一个通用接口

var factoryInterface = function(type,data){
    switch(type){
        case 1:
            return new BannerWithBroadcastTpl(data)
            break;
        case 2:
            return new PicDisplayTpl(data)
            break;
    }
}   

BannerWithBroadcastTpl和PicDisplayTpl都是定义好的组件,每个组件都有一个create方法来创造组件

用下面的代码来最终完成项目的初始化

for(var i=0,length=data.length;i<length;i++){
    !(function(i){
        factoryInterface(data[i].type,data[i]).create(_this.root)
    })(i)
}

现在想和各位大神讨论下这个方案还有没有其他的代码设计方案,欢迎大家来喷~~

迷茫迷茫2732 天前558

全部回复(1)我来回复

  • ringa_lee

    ringa_lee2017-05-19 10:43:26

    写在前面
    在项目设计之前,先问几个问题:

    1. 实际开发双11活动中,什么问题需要我们去解决?这些问题有哪些解决方案?

    2. 利用该系统,能否解决我们实际开发双11活动中遇到的问题?能解决百分之几十的问题?

    3. 做该项目的Cost有多大?利用该Cost去解决一定占比的问题,是否值得?

    项目核心

    1. 计划

    2. 设计

    3. 实施(分期)

    4. 遗留问题

    项目计划
    提出问题:
    每次双11活动有多少相同的设计点,可以抽象出来的点有多少? --> 要做一个简单的模板系统,还是功能点齐全的系统?全自动还是半自动? --> 哪些功能需要实现? --> 资源有哪些,是否足够?(人力、时间等等)
    想清楚了以上问题,给出一个完整的计划。

    项目设计
    在上面问题全部想清楚的基础上,举个例子说明:

    1. 功能点划分:模块、页面、PV/UV/Track、事件

    2. 可以公用的模块有哪些?一种木块有几种展示类型?因此至少需要两个以上的typeId才能区分。

    3. 页面与模块通过Id组合起来。

    4. 数据埋点与页面组合。

    5. 事件系统怎么处理。页面上的操作处理。

    6. 其他....

    项目实施
    考虑一下几个问题:

    1. 项目如何分期实现?

    2. 前面几个版本如何迭代?

    3. 如何快速验证我们的想法是否正确?

    4. 安排多少人开发,多少人继续维护这个项目?

    遗留问题

    1. 该项目只能覆盖部分活动,还有很多活动不通用,人们的需求总在不断变化。

    2. 越来越多的模块需要维护,维护难度也很大。

    3. 其他...

    总结
    我这里只是简单的举个例子,怎么去解决这个项目问题,希望有更多的方案。欢迎大家吐槽...

    回复
    0
  • 取消回复