功能模块划分和技术点
从前面的几篇文章,我们已经知道了一个需求经过怎么样的产品跟技术之间的沟通或者PK之后,才能确定下来。当我们有了完整的需求之后,再接下来的一步就是做功能分析和技术选型,以及架构设计。
但是,很重要的一点是,需要再次提醒一下。一定要问清楚后期产品上的计划,因为这影响到技术的选型,以及架构的设计。
好了,让我们开始来抽取实体和划分模块。
实体及关系
文章:
- id
- 标题
- 作者
- 分类(多对一)
- 标签(多对多)
- 摘要
- 正文
- 状态
- 发布时间
分类:
- id
- 名称
- 状态
- 作者
- 创建时间
- 是否置顶导航
标签:
- id
- 名称
- 状态
- 作者
- 创建时间
友链:
- id
- 网站名称
- 链接
- 作者
- 状态
- 创建时间
- 权重
评论:
- id
- 文章(多对一)
- 用户名
- 邮箱
- 网站地址
- 内容
- 创建时间
- 作者
侧栏:
- id
- 标题
- 类型(最新文章/最热文章/最近评论/内容)
- 内容
- 创建时间
- 作者
到此,实体及关系就梳理清楚了,可以看到文章是所有实体的中心。我们可以通过在线的ER图工具,把结构画出来。
在线ER图工具:https://editor.ponyorm.com/user/pony/PhotoSharing
模块划分
上面我们已经建立好实体了,接着就需要多功能进行模块划分,划分的好处是让系统结构更加清晰,模块和模块之前相互解耦。同时对于多人协作的项目来说,可以独立分配一个模块进行开发。
首先网站功能整体来说,分为用户端和管理后台。这算是一个大的分类。
用户端的功能又可以分为:内容模块,评论模块,侧栏模块,功能模块。内容模块是指首页,分类列表页,标签列表页,友链页;评论模块是指用户添加评论,展示评论的部分;侧栏模块是指博客侧边栏展示的内容;功能页是指sitemap页面,rss页面。
管理后台可以纵向和横向分割,横向的话就是按照模型层,业务层,操作页面。纵向的话就是指比如文章的模型、业务层,操作页面(展示层)作为一个部分,另外的模型,业务,展示划分为另一部分。
我们通过思维导图来看下最终的结果。
博客需求分析思维导图 密码: GTDL
总结
到此为止,我们通过对需求的评审和整理,最终得到了明确要开发的功能。然后对功能进行了实体抽取以及模块划分。后面我们需要做的就是,在已经清楚知道要开发什么功能之后,如何进行技术选型。一个好的技术选型不仅能够提高开发效率,也能降低维护成本。
下节课我们将会选几个常见的Python Web开发框架进行分析对比。