谈从publicCms项目里的收获

近期一个项目用到了cms,各种因素考虑最后决定使用 publicCms V2019免费版,因为之前没真正接触过cms类系统,这次还是收获比较大。

  1. 引导创建数据库设计, 这个项目第一次启动,会引导你创建数据库, 一般应用里是没有这种设计的。 这种模式在开源项目里,更加符合二次开发人员的需求,二次开发人员不用再去找初始化脚本,执行数据库,修改数据库配置 再启动应用 这套流程了。
    ​ 技术层面查看了它的实现,是用了 ScriptRunner 连接数据库后执行指定目录的sql文件

  2. 对外接口的设计,它做了一层抽象,类似这种AbstractTemplateDirective,抽象的目的我猜测是 为了规范接口拓展 和 方便用户二次开发。这种设计正是 面向接口 面向抽象 编程的体现。

  3. 对外接口的设计,它还贴心的提供了 接口列表 接口, 调用后可以之间看到 系统有哪些接口。 假如系统新增接口,也不用再告诉三方 新的地址了,三方可以自己查。
    技术层面是用 Map保存起来的 Map<String, AbstractTemplateDirective>

  4. appToken 设计, 对外接口一般都要求传 appToken。 它是这样设计的, 首先在网站后台 创建一个三方应用,创建后自动生成appKey appSecurity,还可以设置该应用 可以调用哪些接口, token超时时间。 把 appKey appSecurity 告诉三方应用后,三方应用可以调用获取appToken
    的接口,获取到appToken后, 可以再利用该值 调用其他接口(比如发布文章接口)。
    这样设计的好处,我想可以对三方应用进行管理,更大层面讲 隔离应用,隔离接口,Token超时校验 保证了系统的安全性。

  5. 扩展字段的设计, 它允许用户自己定义有哪些扩展字段,然后对应的新增文章 和 查看文章 里 就会自动列出扩展字段,同时对外接口里也满足这种设计。 技术层面 我查看了它的表结构设计,有扩展表, 扩展字段表, 然后实际值是存了一个json到原表。
    这种设计是第一次遇到,它提供了一个思路,之前维护系统经常要加字段, 一般的方式 都是修改表结构, 有个这个方式后或许可以改变之前的方式。

  6. 大字段分表设计, 文章涉及的大字段(文章内容, 扩展json) 它是单独建表的,并没有在主表里. 这种设计倒是比较常见,我虽然之前也知道这种方式的好处,但是自己开发系统真正实际执行的时候为了省事 都直接在一个表里了。执行力还是不够,应该改正。

  7. 多语言设计, 它可以自由切换语言版本,实际对应的值是存到了properties。

  8. 大批量的静态化, 基本上它所有的界面 都可以静态化, 当访问网站时,你看到的数据 并不是临时从数据库读取的,而是之前就用freeMarker静态化好的,这样就减小了数据库的访问压力。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值