这一章咱们次要介绍文章零碎。毕竟博客零碎的外围就是文章的公布和浏览。闲话不多说,老规矩走起来。
工具
IDE 为 idea16
JDK 环境为 1.8
gradle 构建,版本:2.14.1
Mysql 版本为 5.5.27
Tomcat 版本为 7.0.52
流程图绘制(xmind)
建模剖析软件 PowerDesigner16.5
首先咱们须要先理解咱们这个文章零碎的整个功能模块组合,也就是咱们的思维导图,只有这样能力实现整体性能的架设。上面如图所示:
其实在下面的零碎中,我曾经把前端用户的文章查阅性能排除掉的。为什么我这里会独自排掉前端的查阅呢?前端的文章查阅性能根本在后端的所有文章中曾经有体现相应性能。大略性能如下:
前端文章查阅
文章列表
文章归档
文章分类
文章详情
在下面的流程图中,咱们能够看到咱们分明的把业务流程形容进去了。可能很多哥们会说咱们有其余不一样的形式,或者相似的形式然而实现比当初的强势,这个无可否认。然而我认为这个是他人我的项目中存在且我应用的很合乎集体习惯的货色。好的货色要学习,不敌对的货色咱们须要本人改良。
首先咱们拜访站点的形式只有拜访主页,而后才会有 web 利用的展现,也就是说咱们网站的首页是咱们 web 利用的总入口。
而咱们主页的性能也是须要围绕咱们的核心——博客来制作,这样能力达到咱们建设这个后端的目标。所以首页元素须要有以下方面:
文章列表
文章归类
作者介绍
热门文章
最高评论
最近动静
分割信息(二维码)
标签导航
等···
为什么咱们须要数据流图,咱们不是为了软件工程二成心做这个数据流图。而是数据流图能清晰的表明咱们这些流程中须要哪些要害的货色,能在肯定水平上反馈业务逻辑。所以咱们做这个还是有意义。在下面咱们能够看到在咱们程序流转的过程中,咱们须要晓得具体的文章 ID 能力进行详情查看操作,所以咱们在拿到列表的时候就须要把文章 ID 拿到,同时文章归档的根据信息,也须要拿到,大略须要哪些简略的货色,具体跟上面首页的 json 数据相干。具体的首页料想成果如下图:
依照通用接口标准来说,咱们首页数据须要 JSON 的规范数据。剖析可得,咱们的 json 格局大略如下:
可能一些敌人看到这里就会迷糊了,你的 json 数据的实体类型怎么来的呢?其实咱们一开始就提过咱们的数据库是 wordpress 的数据库,也就是数据内容是来自我的集体博客零碎下面的数据库。所以咱们须要看看 wrodpress 的博客零碎下面文章表的构造和内容能力揣测是表中字段及其散布各有什么意义。具体的数据库表构造如下:
从下面的文章信息表中咱们能够看到这一张表只是用来存储所有的文章的根本信息,然而文章的一些其余信息都是没有的,比如说:
评论
特色图片
文章归档
等···
一般来说,咱们的惯例思路是须要将这些信息关联在一起的,而且这个思路也是没错的。然而可能有的实现咱们并没有较好的设计思维,所以咱们能够简略的把数据库逆向到模型。所以闲话不多说,间接在有 wrodpress 环境的电脑下面链接数据库,关上 wordpress 数据库,抉择逆向到模型。那么,数据库逆向模型如下所示:
从下面的数据库模型中咱们能够看出维持 wordpress 核心的有几张表,如下:
wp_posts1 文章根底信息表
wp_postmeta 文章扩大数据表
wp_comments 评论根本表
wp_commentmeta 评论扩大表
wp_links 链接表
wp_options 设置信息表
wp_users 用户信息表
wp_usermeta 用户信息扩大表
为什么我说下面这几张表是外围表呢?首先咱们能够看到这几张表都是存储了博客零碎的一些根本的货色。接着咱们能够看到这些各个表中一些关联的表都是有彼此的键对应其余表的主键,所以看到这里大家可能也就心里有数。
所以下面咱们的 json 信息中的实体类型该怎么设定也就是很显著的,必须对应数据库字段嘛。既然都这样了,那咱们是不是也能够进一步猜测出其余的 json 内容呢?
文章依照日期归档置信很多人都看到过,大略样子就是一个下拉列表中显示年月日前面加上数量,大略样子如下
请抉择日期 ↓
所有
2016 年 11 月 12 日(2)
2016 年 11 月 15 日(1)
2016 年 10 月 28 日(3)
咱们要把这样的成果做进去,其实能够间接把文章信息传递给前台让前端实现。然而数据量过多的时候,网络传输也就绝对吃力,所以咱们还是间接后端解决,将网络传输的数据最精简。
那么咱们简略的首页汇合的数据应该如下所示了:
这里应该有敌人可能会问,为啥你的 date(依据日期归档)的 json 数据这么奇怪呢?
其实咱们最间接的能够看到,在下面的日期归档的 json 中,日期能够很直观的看进去,同时 idList 中把文章 ID 也是展现进去的,所以咱们依据 ID 和日期都还是能够相互参考的,同时 ID 的数量能够让咱们明确每个日期有多少篇文章。
既然咱们在下面把根本的首页框架数据归类,写出的 json 接口,同时通过逆向开发的思路等把我的项目咱们须要应用的一些模型图实现了,这样接下来就是具体编码的事件。具体的编码问题,且听下回分解。
外围算法:SHA-256
步骤:
注册用户
客户端进行 16 位 MD5 小写加密
生成随机的 salt
将明码和 salt 进行 SHA-256 加密
数据库存入用户信息和对应的 salt
这一期,咱们把文章零碎一些做了根底的剖析,下一期咱们须要实现 wordpress 数据库内容分析和文章零碎模块开发,和文章的撰写相干的货色。我的项目开发中的一些根本思维,然而可能咱们最终目标是倚赖 wordpress 的博客。所以在理论开发中,咱们能够参考他人的实现并加以列用。