cms系统的研发需求分析
现在的cms系统有多种多样,我的公司(北京云山迅捷科技有限公司)最近经常接到建站的单子,为了达到
减少成本,快速搭建网站的目的,我们最近也做了一个cms系统
首先在做cms系统的时候,我们需要分析业务诉求。
我认为现在的cms系统的使用用户主要分成三类:
1. 程序员 希望cms系统能够快速的满足用户的业务需求,如果cms系统不满足用户的条件下能够通过简单的修改即可达到用户的需求,并且希望可以照顾到seo优化等潜在的业务需求,cms系统的操作学习成本尽量小
2. 编辑 希望cms系统功能较为强大,接受通过修改html的方式来达到满意的效果,甚至可以同意可以修改少量的简单的脚本,希望cms可以管理一切客户能够看到的页面的文字或其他格式的显示信息。
3. 普通用户 希望cms系统越不需要改代码越好,越操作简单越好,尽量少的概念越好,越可视化的效果越好。不是非常在意学习成本,非常抵触代码的编写
以上只是典型的三类用户,他们的诉求并非一成不变,毕竟程序员的目标客户很可能也是普通用户。
介绍完用户,咱们再来说一下具体的业务需求
我们接触的单子具体有下面几种
1. 企业级建站,主要是首页 新闻 成功案例 等等,首页非常简单,通常来说常年不变,只有一些新闻的添加,最极端的情况是有客户要求一定是静态的,要进行seo的优化
2. 垂直门户网站,主要是要求cms系统跟具体的业务挂钩,比如说内容需要跟车挂钩,或者是内容需要跟ic产品,电脑产品挂钩等。
3. 商城,主要是商品要跟cms系统挂钩
根据以上的需求特点我考虑了一下我们的cms系统如何进行产品设计
主要的页面分成了三种类别
第一种 称之为普通页,即首页这样的页面,不需要重复,只有一个页面
第二种 称之为列表页,即像新闻列表这样的页面,需要重复,以某种内容类别的内容集做循环,一般需要进行分页
第三种 称之为内容页,即像新闻内容页这样的页面,根据某种内容类别,需要大量的生成页面
根据以上特点我们主要有
网站的栏目管理、网站的页面管理、页面块管理、模板管理、网站的内容类别管理、网站的内容管理
其中栏目管理就是一个网站可能有多个栏目,比如说新闻、成功案例、关于我们这样的栏目
而页面管理就是相对于栏目来说,栏目下可能有多个页面 比如说关于我们下可能有公司介绍 联系方式等页面
页面块管理就是一个像门户网站这样的首页,不可能所有地方都要统一修改,而是每个编辑负责一块儿内容,而分成了多个块就能解决这样的需求,另外块应该是经常需要维护的
模板管理就是一个页面总要有一个主体的结构,而且不需要经常有人维护
网站的内容,就想新闻信息一样,需要经常有人去添加修改或者删除,但是信息不能直接成为页,必须通过类别和页关联,两者进行匹配才能最终生成页
虽然我们的产品设计保证了大部分的功能的实现,但是在一些自动化处理又显得不够好,比如说首页中有些
部分需要从新闻中取最新的5条记录怎么办,这一定需要自动化的方法推荐上来,那怎么才能做到这点呢?
我们使用了自建的脚本引擎,来解决这个问题。通过内置函数来进行处理来解决需求问题。
这里我介绍一下为什么要使用脚本引擎:
前面已经说了程序员和编辑在不在意简单的脚本的。
另外因为之前说我们的业务要求我们的cms 可以和具体的业务进行关联
而脚本引擎就正好解决了这部分的问题。
理由如下:脚本本身仅仅是控制逻辑,有简单的语法规则,而实际解决业务诉求是靠着具体的函数或者有意义的对象来解决具体的业务
这样我内置的脚本引擎只要在不同的业务场景下有不同的宿主(host)函数即可解决多种业务的问题。
举个例子,比如说{@foreach GetCarList(5)@} 比如说这样的代码就是循环 carlist 的代码,这样我们的脚本引擎在不同的业务场景下主体代码都不变,唯一需要做的就是为宿主(host)写实现函数代码
-----------------------------------------------------------------------
综上所述我们的cms也只是能够解决特定需求的特定产品,如果有什么说的不对的 欢迎拍砖