百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

产品思考(1):CMS系统一阶段复盘 cms的流程

yuyutoo 2024-10-12 01:58 8 浏览 0 评论

编辑导语:CMS系统即内容管理系统,结合CMS系统,运营人员可以更快速地完成网站搭建,减少开发资源的消耗。那么CMS系统应该如何搭建?本篇文章里,作者总结了CMS系统搭建所需的要素和相应的搭建策略,一起来看一下。

CMS系统(内容管理系统)是可以嵌入到不同系统体系中的一种产品形态,主要帮助运营人员或者建站者完成业务所需的网站搭建,利用CMS系统可以很好地降低定制频繁的网站所需的开发资源。

但是因为网站形态各异和不同类型网站的要求不同,目前没有特别统一的CMS系统业务逻辑,通过参考为数不多的产品设计稿和Empire CMS(帝国)的开源文档,我梳理出了CMS系统雏形所需的几个要素。

产品背景:内容管理——建站设计(门户网站为主),用于处理网站多渠道定制或者客制化要求较多的场景。

先看下Empire CMS提供的建站步骤。

EmpireCMS建站步骤:

(截图来自帝国CMS的开源平台手册)

狭义的CMS(实现用户自运营):

  1. 增加栏目【编辑栏目信息属性、页面基本属性-栏目类型】;
  2. 选择内容模型【选择预设的内容模型,确定内容展示形式】;
  3. 编辑内容【编辑内容详情】;
  4. 生成前台页面【保存并同步信息到前台】。

根据上述流程演化出来的两个主要页面功能模块:栏目管理、内容管理(又叫信息管理),以及根据系统类型所需的配置页面,比如门户类的网站、支持首页管理和相关导航栏设置等。

更灵活更高级的内容管理还存在另一个维度的表现形式:专题。

专题维度支持聚合不同栏目内的同一种类型的页面内容,成为专题,专题的使用可以在不改变栏目自身属性的情况下整合另一种规则的展示,使用上更灵活,运营起来更加自由。但对于常规的一些门户网站或者个人站点这类轻运营的网站来说,使用栏目配置页面规则已经足够。

一、栏目的使用

栏目是基础的作为内容集成的规则,通过栏目的定义,可以约束不同的页面之间的固有联系。通过子栏目的管理,配置不同内容之间的层级关系。

栏目支持建立多级,新建栏目时即可选择所需的内容模型,父子级栏目的内容模型可以是不一样的,因为栏目的关系仅为后台管理信息的集合关系,与前端展示逻辑没有太多关联,每一层栏目均可以独立成为一个独立展示的页面。

当然栏目的集合可以为部分自动化展示需求提供展示逻辑,在使用栏目管理相关内容时,对于需要列表展示同栏目内容的页面可以直接获取此栏目的下级子栏目,并进行展示,我们只需要后台维护号栏目的层级关系即可控制前端展示的列表内容。

栏目需要包含什么基础属性呢?

我认为栏目要满足可用性,至少需要包含:栏目标题、所属栏目、栏目类型与页面内容模型三种基本信息,而如果需要令栏目更加好用的话,则可以加上如栏目状态(显示/隐藏)、外部链接、栏目介绍、权重等属性内容,甚至还可以增加相关的标签系统来丰富栏目的属性内容,使用灵活度更高。

二、内容模型的使用

常规几种内容模型大类:产品模型、文章模型、单页模型。(各人命名可能会存在差异,理解内容即可)

1. 产品模型

自由度最高的页面展示模型,可以结合前端预设计的各种组件进行页面布局设计,并通过组件中含有链接的部分附上其他详情页面的入口,一般是建站所用到的主要内容模型。组件风格和功能决定了此模型的风格和能力。

2. 文章模型

此模型还可以细分为两类:一般类和即时类。

一般类的文章模型可以用于搭建网站的帮助中心,信息介绍等非即时展示类页面内容的文章展示;而即时类则多用于需要展示新闻或快讯这些文章,关注时效性而无层级要求的文章展示。

文章模型可以在实际设计中分为上述两种内容模型,也可以抽象成为一种。文章模型只需要在内容管理模块中编辑好文章,即可推送到对应的栏目页面中展示。

3. 单页模型

较为简单的内容展示模型,一般不含链接,仅作为内容展示的页面,搭建起来比较容易和快速,一般直接使用富文本编辑则可以完成。单页模型一般用于快速搭建类如关于我们、网站简介等这类图文为主的页面。

有了栏目类型与内容模型,就可以完成基本的网站页面的搭建工作了,为了更好地展示业务逻辑,可以参考下图:

三、编辑内容及形式

从易用性的角度看,好用的CMS系统最好可以实现所见所得的页面配置形式,使得用户不用前往前台就可以查看现有页面的配置效果。

例如shopify的个人站商店搭建时,使用的大纲加页面预览的形式,体验起来是比较舒服且易用的。学习成本越低,对于运营人员来说就越简单,因此在网站的搭建流程中,十分建议采用前端组件化的形式,进行可视化编辑。

如下截图源自shopify商店个人站的页面配置,个人感觉是目前了解到的较好的可视化配置模式:

配置页面的丰富度取决于我们开发的前端组件的丰富度,并且可以不断拓展,适应不同页面风格和业务要求。

四、其他必要的非功能性需求

一个合格的CMS系统出了支持配置出符合要求的网站,还需要补充或者考虑一些必须的非功能需求,配合使用,可以提高网站的“好评度”。

1. 页面响应

页面响应是影响页面留存的首当其冲,尤其是C端的网站。以下是一个关于页面打开时间与放弃率的统计数据,在没有特殊强调的页面,个人建议是3S内打开为宜(注意弱网络环境的测试)。

2. 渐进增强

渐进增强是目前主流的设计思路,包含跨平台与终端的访问、不同版本浏览器的访问等。在系统设计开始时最好就考虑渐进增强的设计思路,如确认好需要兼容的终端类型、浏览器版本。不妨和前端同学多沟通,让产品体验最优化。

3. SEO优化

有SEO需求的产品还需要在产品前期就提出,因为会影响前端设计的整体思路,目前大部分前端都是单页面应用的形式,不提前考虑SEO的话,很容易导致后续有对应要求的时候无法满足搜索要求,导致需要进行技术重构。

满足上述几点,基本可以推出第一版的CMS系统(或者模块)了,至于后面更多的比如关键词、标签、专题、自定义内容模板等等,emmm,再说吧~

本文由 @大飞Eric 原创发布于人人都是产品经理。未经许可,禁止转载

题图来自Unsplash,基于CC0协议

相关推荐

.NET 奇葩问题调试经历之3——使用了grpc通讯类库后,内存一直增长......

...

全局和隐式 using 指令详解(全局命令)

1.什么是全局和隐式using?在.NET6及更高版本中,Microsoft引入了...

请停止微服务,做好单体的模块化才是王道:Spring Modulith介绍

1、介绍模块化单体是一种架构风格,代码是根据模块的概念构成的。对于许多组织而言,模块化单体可能是一个很好的选择。它有助于保持一定程度的独立性,这有助于我们在需要的时候轻松过渡到微服务架构。Spri...

ASP.NET程序集引用之痛:版本冲突、依赖地狱等解析与实战

我是一位多年后端经验的工程师,其中前几年用ASP.NET...

.NET AOT 详解(.net 6 aot)

简介AOT(Ahead-Of-TimeCompilation)是一种将代码直接编译为机器码的技术,与传统的...

一款基于Yii2开发的免费商城系统(一款基于yii2开发的免费商城系统是什么)

哈喽,我是老鱼,一名致力于在技术道路上的终身学习者、实践者、分享者!...

asar归档解包(游戏arc文件解包)

要学习Electron逆向,首先要有一个Electron开发的程序的发布的包,这里就以其官方的electron-quick-start作为例子来进行一下逆向的过程。...

在PyCharm 中免费集成Amazon CodeWhisperer

CodeWhisperer是Amazon发布的一款免费的AI编程辅助小工具,可在你的集成开发环境(IDE)中生成实时单行或全函数代码建议,帮助你快速构建软件。简单来说,AmazonCodeWhi...

2014年最优秀JavaScript编辑器大盘点

1.WebstormWebStorm是一种轻量级的、功能强大的IDE,为Node.js复杂的客户端开发和服务器端开发提供完美的解决方案。WebStorm的智能代码编辑器支持JavaScript,...

基于springboot、tio、oauth2.0前端vuede 超轻量级聊天软件分享

项目简介:基于JS的超轻量级聊天软件。前端:vue、iview、electron实现的PC桌面版聊天程序,主要适用于私有云项目内部聊天,企业内部管理通讯等功能,主要通讯协议websocket。支持...

JetBrains Toolbox推出全新产品订阅授权模式

捷克知名软件开发公司JetBrains最为人所熟知的产品是Java编程语言开发撰写时所用的集成开发环境IntelliJIDEA,相信很多开发者都有所了解。而近期自2015年11月2日起,JetBr...

idea最新激活jetbrains-agent.jar包,亲测有效

这里分享一个2019.3.3版本的jetbrains-agent.jar,亲测有效,在网上找了很多都不能使用,终于找到一个可以使用的了,这里分享一下具体激活步骤,此方法适用于Jebrains家所有产品...

CountDownTimer的理解(countdowntomars)

CountDownTimer是android开发常用的计时类,按照注释中的说明使用方法如下:kotlin:object:CountDownTimer(30000,1000){...

反射为什么性能会很慢?(反射时为什么会越来越长)

1.背景前段时间维护一个5、6年前的项目,项目总是在某些功能使用上不尽人意,性能上总是差一些,仔细过了一下代码发现使用了不少封装好的工具类,工具类里面用了好多的反射,反射会影响到执行效率吗?盲猜了一...

btrace 开源!基于 Systrace 高性能 Trace 工具

介绍btrace(又名RheaTrace)是抖音基础技术团队自研的一款高性能AndroidTrace工具,它基于Systrace实现,并针对Systrace不足之处加以改进,核心改进...

取消回复欢迎 发表评论: