Review
对于之前的spec请,所以就不赘述了。
接下来的三周内我们将对M1已经实现的Grow A Search Result进行M2的开发工作(M = Milestone)。当然这里面有对旧feature的改进和修缮,也有全新feature的加入。不管怎么说,压力还是很大的。
在M1中我们最终实现的是对单个关键词的搜索,用户在输入一个关键词之后软件会持续地从Bing上获取关于关键词的News,按照时间先后的顺序且去掉重复之后,以一棵树的形式展现给用户。
M1的最终形态是这样:
当然这里面有很多很多的问题,比如:
- 树很容易就长飞了,超出屏幕之外,虽然能够用左下角的方向键卷动,但毕竟不舒服。
- 搜索结果其实细看的话都不怎么相关,原因是从Bing获取信息的时候按时间排序而不是按照默认的相关度ranking排序。
- 只能有一棵树,重新输入关键字的话,树就重新生长了。
- 树干不太好看,也不直,也不弯。
- 不能对树进行一些操作,比如“修剪”之类。
- 根节点看起来很不自然。
- 使用BingAPI有每月5000次query的限制。
- …
所以在M2我们要改进M1不好的地方。
M2 Persona & Scenario
在M1的基础上我们认为对于用户A,在他输入一个关键词后,他希望能够从树中获得有益的信息,并且树不能太大太长(否则不易观看),他会想要好几棵树,这样他就可以将不同的树组织为一个“树林”或者“花园”。当看到他认为没有用的信息时,他会想要将这一个branch手动剪掉,以保证树上的节点都是他喜欢的或者是他想要的。
当然在M1中没有实现的history功能也会在M2中实现。因为有了多棵树的加入所以history功能能够make sense。
Updated Feature list
在M1的基础上我们决定增加一下feature,包括其退出条件:
Feature | Priority | Exit Condition |
Folding Nodes | Must Have | 对于超过限制(可以是时间或者节点数目)的节点能够自动归为一个特殊节点,同时当点击特殊节点的时候被收入的节点能够作为一个分支显示出来 |
Move Trees | Must Have | 用户能够拖动一棵树到其他位置 |
Prune Trees | Must Have | 用户能够通过点击某一个分支而将这个分支从树上删除 |
Get Information | Must Have | 用户能够从树上获取信息,包括点击树干获得树干的关键词,点击节点获取搜索结果的标题和摘要,并且能够跳转浏览器 |
History | Must Have | 在用户关闭软件再重新打开时,上次输入的关键词以及生长结果不应该消失,而应该和上次保持一样的状态 |
Modifications
有一些feature是我们在M1中加入但是现在觉得并没有必要需要在M2中修改或者去掉的:
- 不再主要使用BingAPI,而改用BingRSS,当然并非完全不使用,我们也有将BingAPI搜索作为后备资源的想法,只是现在还不成熟。
- 去掉根节点,整棵树中的keyword信息需要在点击树干之后进行显示,初步的想法是弹出一个label现实keyword信息。
- 树干不使用多条贝塞尔曲线拼接而成,而改为整条平滑曲线,这样会让树更好看一些。
- M1中一棵树的节点并没有限制,M2中我们决定不允许一棵树长得过大,但是具体的限制数量可能还要经测试决定。