对MSRA-USTC 2011的 meng-meng(萌萌) 的team project的学习和评价

Team Name:     meng-meng(萌萌)

Team Project:   豆酱

分为三个部分:对结果的评价、meng-meng(萌萌)怎么做的、我们会怎么做

(1)对结果的评价

因为正好有一部windows phone手机,所以去微软应用商店下载了“豆酱”这款APP,初步使用后又如下评价:

应用名称:

   豆酱

基本功能:

  1. 新鲜事:基本上与豆瓣的风格保持一致

  2. 豆邮:分别实现了收件箱,发件箱和写豆邮的功能

  3. 图书,电影,音乐:提供了详细页面和搜索功能,提供了最新的电影,图书,音乐列表。

  4. 活动:只能查看活动,用户并不能自己发布

  5. 允许维申请账号的用户使用 

不足之处:

  1. 界面比较简陋,可以加背景图片,采用metro风格的
  2. 写邮件时,如果没有联系人会弹出一个toast提醒,这时候按返回键会退回收件箱,但此后再按返回又会弹出那个提醒,然后就再也不能按返回退出了
  3. 无法看到自己之前的短评
  4. 电影没有短评,图片,相关影片
  5. 活动搜索的时候没有加入地理位置和时间的信息
  6. 没有记住账号密码,每次登陆的时候都要输入账号
  7. 当针对某一个话题的评论比较长的情况下,客户端无法加载完整的评论。
  8. 没有小组

使用截图:

2d194867-ba54-4e2f-bb52-5cd69149870b8b607616-564b-4276-9537-38ecebfe703e65c4ed30-5efa-42ad-a126-05addc64aa51fb8a6909-50a2-48f3-9ddb-e23dcb97f8a8

(2)meng-meng(萌萌)怎么做的

豆酱是一款基于豆瓣的第三方应用,实现的功能主要有:

1、 News feed:定期推送新鲜事,风格基本与豆瓣保持一致。

2、 豆邮:实现发件箱、收件箱和写豆邮的功能

3、 搜索:提供图书、电影、音乐的搜索

4、 推荐:提供最新的图书、电影、音乐列表

5、 活动:提供活动查看功能

6、 设置缓存:缓存好友头像等图片,减少流量耗费

其中,主要需要考虑的技术有:豆邮的实现需要OAuth认证,搜索、推荐和活动的实现需要通过实时分析豆瓣的html页面,设置缓存则是简单的文件存取即可。

下面是技术实现的具体方法:

1、 OAuth认证

针对豆瓣开发第三方应用,需要OAuth认证。通常,要进行一个网络请求,至少需要三个函数,其中包括两次异步请求(BeginGetRequestStream, BeginGetResponse)。而在作者的设计中,几乎每个动作都要对豆瓣服务器进行请求,如果每个请求都需要写三个函数,并且还要增加认证信息的话,实在是太麻烦,而且,代码将会变得非常冗长。于是,作者找了一个已经的把这些函数封装好的库“restsharp”,再经过适当修改,在httpheader中添加OAuth参数后,便可为后续的开发提供统一简单的接口。

2、 Html页面解析

豆瓣的api并不完善,所以作者决定在“搜索、推荐、活动”的功能上采用实时解析豆瓣html页面的方法获取数据。首先将作者的请求反映在url上,以此url去请求页面,得到页面后利用C#的附带xml解析库去获取需要的数据,最后把数据以适当的形式显示在手机上。

(3)我们会怎么做

如果我们去做这个项目,我们会从以下方面入手:

首先,我觉得计划之初的统筹工作与调查工作十分重要。

统筹包括对项目的最终目标,项目的分工,项目基本的设计,还有很必要的编程规范问题等等,这些都要有前期清晰的商讨与安排。初期目标不要定的太高,要通过查询足够的资料与相关信息合理安排设计目标,当初期目标完成后,再尽所能添加额外的功能。软件的框架与实现的方法都要在开始阶段充分考虑清楚。

通过用户调查工作,真是了解用户希望的App应该具有什么样的特点与功能。这样的话会避免后期不必要的麻烦和无用功,从而拖慢整个工程的进度。

对于这个项目,我觉得:开始,着手这个题目,最核心的内容应该是得到第三方应用访问数据的允许。拥有一个健壮的网络访问接口才能有利的推动工程的进展。然后,得到xml数据后下一步的工作就是如何分析数据。所以我觉的这两块的工作应该值得花更多的时间,更多的精力,为后面的工作打下坚实的基础。

其次,我觉的如果我做的话,我们会选择先把所实现的一个功能(比如说豆瓣读书),以熟悉整个工程的框架和脉络。所谓力气要用到刀刃上,当框架基本上都已经成熟之后,对于其他的功能会进展的更加快捷。甚至可以选择实现部分功能之后就先行发布,从而获得前期体验,比如说了解用户对于操作的习惯与否,用户对UI的体验,用户更希望添加的功能,以及用户觉得不太必要的功能。在前期了解用户需求会对整个工程方向的选择以及整个工程的目标都会有很大的帮助。

最后的话,合理安排时间,根据项目的进展合理调度时间,调整方向和目标也是很重要的。还有团队成员之间的合作,考虑到每个人的不同情况,取长补短,相互理解,相互配合,每个人各司其职也是必须的。

最后,十分感谢meng-meng(萌萌)的所有师兄师姐,你们都是萌萌哒~~~~~~~~~~~

原文地址:https://www.cnblogs.com/6-idiots/p/3949987.html