前言###
看完总理的寒假任务“博客引擎”拆分里程碑文章后,结合自己的情况,稍稍改动了下文章,找到了适合我的里程碑。
拆分里程碑的意义
拆分里程碑就像是在分卡,分的每张卡遵循MVP原则——指“最简可行产品”(Minimum Viable Product) ,也就是用最敏捷快速、最简明的方式建立一个可用的产品原型。这样便可以明确功能需求,细化目标。
划分里程碑
第1个里程碑:搭架子###
第一个里程碑主要是把项目的架子搭起来,方便后面的开发。
我打算采用JavaScript的技术栈,具体的库用到MongoDB,框架用到了Bootstrap,React+Redux,并且JavaScript的话支持ES6,然后使用npm构建工具。代码将小步提交到自己的github上,在README中向别人说明拿到你的代码之后,如何能在自己的电脑上快速把代码运行起来,看到效果
验收条件:
其他人可以方便的获取你的代码
其他人可以通过说明文件,在本地将服务器快速的运行起来,看到页面
通过简单的页面可以证明使用的技术栈和主要的库等已经配置正确
若干篇博客用来记录学习收获和疑问
第2个里程碑:写好的博客可在主页看到###
这个里程碑不需要用户登录,任何人可以创建博客,编写好博客内容,便可以发表在主页上
验收条件:
任何人都可以创建、发表任何博客
创建博客时,只需要填写“标题”、“内容”、“创建人”并记录“创建时间”即可
发表博客时,只需要点击发表按钮,便可以在主页查看已发表的博客
代码以“小步”方式提交到github上,并且每个commit都有清楚的描述
若干篇博客用来记录你的学习收获和疑问
注意:
暂不用提供用户相关功能(如注册、登录等),以及评论、标签等功能
由于没有用户功能,所以在创建博客时,需要手动提供“创建人”姓名
这一步不需要使用真实数据库,可以把数据直接保存在内存中某个变量,或者一个JSON文件里
第3个里程碑:博客的增删改查###
不需要用户系统,不需要权限控制,每个人都可以直接在这个系统上进行博客的增删改查
验收条件:
任何人都可以删除、修改、查看任何博客
修改博客时,只需要填写“修改人”,“修改时间”即可
删除博客时,要向用户发出确认,防止误操作
可以以列表形式查看当前所有博客
代码以“小步”方式提交到github上,并且每个commit都有清楚的描述
若干篇博客用来记录你的学习收获和疑问
注意:
暂不用提供用户相关功能(如注册、登录等),以及评论、标签等功能
由于没有用户功能,所以在创建和修改博客时,需要手动提供“创建人”和“修改人”姓名
如果一篇博客多次修改,“修改人”和“修改时间”记录的是最后一次
不需要记录每次修改的内容,直接保存最后的修改即可
删除博客时,直接从系统中删除
这一步不需要使用真实数据库,可以把数据直接保存在内存中某个变量,或者一个JSON文件里
第4个里程碑:使用真实数据库###
使用真实的数据库(比如mongodb或者mysql等)来替换前一个里程碑中的模拟数据库。之所以把它单独拿出来,是因为从技术角度上讲,还是有一定的难度,比如数据初始化、异常处理等
验收条件:
前一个里程碑的功能没有被破坏
可以通过某种方式来初始化数据库结构和预置数据,并在README中说明步骤
代码以“小步”方式提交到github上,并且每个commit都有清楚的描述
若干篇博客用来记录你的学习收获和疑问
第5个里程碑:用户登录###
在这个里程碑,我们将增加一个重要的功能:用户的注册、登录、退出。这个功能几乎在每个网站中都会用到,非常重要,所以我们尽快实现它。
在这个里程碑中,我们只考虑一种用户“普通用户”(“管理员”放在后面的里程碑)。
验收条件
查看博客时不需要登录
只有注册成用户并登录后,才能创建、修改、删除自己的博客
用户不能修改或删除别人的博客
如果没有登录,则不允许访问“创建、修改、删除”等页面
注册用户时,需要提供以下数据 “用户名”,“密码”。其ID由数据库或代码自动生成,每个用户的ID都是唯一并且不变的
用户登录时,需要输入“用户名”和“密码”
用户登录后,可以退出
用户可以修改自己的用户名和密码
创建或修改博客时,不需要再手动输入“创建人”和“修改人”,而是由系统自动拿到当前用户的ID并使用该ID
注意
这个里程碑只有一种用户“普通用户”,没有“管理员”,所以没有人可以修改或删除别人的博客
原有的数据库结构需要修改。之前保存的是手动输入的“创建人”或“修改人”姓名,而现在应该使用登录者的ID。当需要显示其用户名时,可以通过ID拿到其用户名
第6个里程碑:博客评论###
对于每一篇博客,每个人都可以增加评论。为了简化需求,在评论时,不论用户是否登录,都要求输入用户名,一视同仁。
验收条件
查看每一篇博客时,都可以看到已有的评论,并按某种时间顺序排列
查看每一篇博客时,都可以看到一个输入框输入新的评论,包括“姓名”和“内容”,可以提交新的评论
评论一旦添加,则不可以修改或删除(在后面可以添加该功能)
第7个里程碑:管理员###
现在我们可以添加一个新的用户角色“管理员”。它跟“普通用户”的区别在于,它可以对所有的注册用户、所有博客、评论进行增删改查等操作,还可以把别的用户设置为管理员。
验收条件
管理员登录后与普通用户看到的界面有所不同,多了“所有用户”、“所有博客”、“所有评论”的管理功能
管理员可以对“所有用户”、“所有博客”、“所有评论”进行增删改查
管理员可以将某个用户设置为“管理员”,也可以将某个“管理员”设置为“普通用户”
管理员不能删除自己,或者把自己降为“普通用户”
注意
第一个管理员直接在数据库中预先提供
第8个里程碑:管理员增加搜索功能###
当管理员管理用户、博客和评论时,可以搜索,以方便管理
验收条件
管理员在管理用户时,可以使用输入的关键字模糊搜索“用户名”,并只显示符合条件的用户
对于博客,只搜索“标题”
对于评论,只搜索评论“内容”
每天都努力一点
谢谢你看完