一两个星期前正在了解Linux内核,看得有点累,突然想趁着五一放假写个博客学学spring。

由于没有在一开始下定决心写这个博客系统,所以我又没记录一开始的分析过程。这都是写了一个星期之后的思路了。

写这个随笔就仅当作再次理清思路吧。

项目地址:https://github.com/TangliziGit/Oyster

开发目的

目的很简单,就是为了下面这几点:

  • 了解和实践web开发全过程,主要是架构设计和前后端实现
  • 一边写一边学,主要学设计规范、代码结构、具体框架,还有git操作
  • 方便之后写博客(吐槽一下cnblog的markdown支持是真不行啊)
  • 方便装b,刷github提交量

需求

我们直接对具体页面迭代的需求分析:

第一次分析:

- 首页
+ 显示部分文章,支持分页
+ 显示文章信息:名字、创建时间、分类和标签
- 文章页
+ 显示标签、分类
+ 具体文章,分页显示评论
- 档案(Archives)
+ 按月份显示文章,支持分页,详细信息同首页

第二次分析:

前台:
- 标签页 & 分类页
+ 显示每个标签,及对应前六篇文章
- 搜索页 例:
[Dxx](https://fuzhouxxdong.github.io/hexo-theme-dxx/)
[Hipaper](https://itimetraveler.github.io/hexo-theme-hipaper/)
[Minos](https://blog.zhangruipeng.me/hexo-theme-minos/)

架构

多模块开发:

  • oyster-common

    访问数据库、提供公共的功能类
  • oyster-api

    提供RESTful API
  • oyster-front

    前台展示模块
  • oyster-runner

    用于启动所有模块,无实际作用

开发架构图

技术要求

总结一下使用的框架

  • Thymeleaf
  • Spring MVC
  • Spring Boot
  • Spring Data JPA (可能与MyBatis混用)

具体开发细节

  • 公共模块

    • [x] AbstractQuery查询

      通过注解封装一部分JPA动态查询功能,提供方便使用的多重查询
  • 前台页面模块
    • [x] 灵活的文章查找

      支持文章标题和内容的多重模糊查询
    • [ ] 更多主题

      可能尝试调用hexo解析hexo主题模板
  • 后台管理模块
    • [ ] markdown支持插入图片
    • [ ] 实时编辑markdown
  • RESTful API模块
    • [ ] 复用api

      转发前后台url到api
    • [ ] RESTful API规范

      遵守状态码,安全与幂等等规范
    • [ ] 对提交评论和文章点击量的限制

      包括提交内容判误、提交频率、一段时间同ip不增加点击量、跨域提交
  • docker支持

最新文章

  1. 【转】TensorFlow练习20: 使用深度学习破解字符验证码
  2. 在现有的图像处理软件中融合dxf格式输出
  3. XML学习笔记7——XSD实例
  4. silverlight制作虚线的边框
  5. 众人口中的JAVASCRIPT
  6. css样式表 格式与布局
  7. Google搜索语法
  8. POJ1328——Radar Installation
  9. JavaScript Dispatch Event
  10. 浅谈JavaScript中的柯里化函数
  11. B树、B-树、B+树、B*树详解
  12. 04_关于元数据,ResultSetMetaData对象以及API方法介绍
  13. WinRAR存在严重的安全漏洞影响5亿用户
  14. Python变量命名规范
  15. rest_famework 增删改查初第三阶段(高级,此阶段是优化第二阶段的代码)的使用
  16. [转]调整 VirtualBox 虚拟机的磁盘大小
  17. Python mysql sql基本操作
  18. ExecuteNonQuery方法、ExecuteScalar方法、ExecuteReader方法的区别
  19. docker 安装 RabbitMQ
  20. design mode(php)

热门文章

  1. linux 7.2 下安装maven
  2. 【cl】工程导入
  3. u-boot学习(五):u-boot启动内核
  4. oc11---结构体作为属性
  5. androidstudio集成ijkplayer教程
  6. Max Sum--hdoj 1003 dp
  7. 3-3 第三天 Promise 如何使用
  8. [.Net] C# Excel操作类 ExcelHelper
  9. [CF1139 E] Maximize Mex 解题报告 (二分图匹配)
  10. if,elif,else的关系 input print int的用法