对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. 没有小组

使用截图:

(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(萌萌)的所有师兄师姐,你们都是萌萌哒~~~~~~~~~~~

时间: 2024-08-08 18:43:18

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

A Simple Actions Recognition System

1. Problem Definition There's no doubt that researches and applications on the foundation of videos has become a popular field including intelligence surveillance, interactions between human and machines, content-based video retrieval and so on. Howe

LinQ—基本查询操作符 Select/Where语句

LinQ中的基本查询操作和SQL中的功能是一样的,对于其异同点,我们来了解了解: 1)Select 语法: <span style="font-family:SimHei;font-size:18px;"> public static IEnumerable<TResult> Select<TSource,TResult>( this IEnumerable<TSource>source,Func<TSource,TResult&g

[爆笑吐槽]2014年10大网络流行语Top 10 online buzzwords of 2014

[爆笑吐槽]2014年10大网络流行语Top 10 online buzzwords of 2014 2014年10大网络流行语 1.且行且珍惜(Cherish what you have at the moment) 出处:2014年3月底,文章回应“出轨门”承认了“劈腿”传闻.3分钟后,马伊琍在微博写了句“恋爱虽易,婚姻不易,且行且珍惜”回应.于是“且行且珍惜”开始流行. Origin: At the end of March in 2014, Wen Zhang responded to

教你几招修改王者荣耀的荣耀战区

王者荣耀相信大家都不陌生,王者荣耀排位里面荣耀战区战力是一个实力的象征,如果当前战区竞争比较大,有没有办法更新到其它战区增加排行榜呢?下面小编就来给大家讲解一下. 为什么要修改战区,修改战区的好处?在一些召唤师少的省市,修改荣耀战区,将荣耀战区定位修改到别的省市,就可以获得新的排名了.低战力也可以上金牌榜,佩戴金牌(这是一件).荣耀战区需要周一才能更改,并且更改以后要下个星期才会显示你的新排名 修改战区之后需要每周修改吗?不用,只要一次,永久有效. 那么如何修改战区呢?需要借助一款虚拟定位修改器

【转】各位都是怎么进行单元测试的?

原文:https://www.zhihu.com/question/27313846/answer/130954707 工作中写C++,不敢自称大神,也来斗胆分享(安利)一下经常使用的单元测试框架. 大家都对Google的C++ Style很熟悉了,但除了Coding Style之外,Google还有自己的单元测试框架:gtest (Google Test)和gmock (Google Mock). 简介gtest的英文Unit Testing C++ with Google Test - Re

基于 Android NDK 的学习之旅----- C调用Java

http://www.cnblogs.com/luxiaofeng54/archive/2011/08/17/2142000.html 基于 Android NDK 的学习之旅----- C调用Java许多成熟的C引擎要移植到Android 平台上使用 , 一般都会 提供 一些接口, 让Android sdk 和 jdk 实现. 下文将会介绍 C 如何 通过 JNI 层调用 Java 的静态和非静态方法. 1.主要流程 1.  新建一个测试类TestProvider.java a)       

Json.Net学习笔记

http://www.cnblogs.com/xiaojinhe2/archive/2011/10/28/2227789.html Newtonsoft.Json(Json.Net)学习笔记 http://www.cnblogs.com/freshman0216/p/4161800.html http://www.cnblogs.com/xwgli/archive/2013/08/30/3290964.html

【转】基于 Android NDK 的学习之旅-----数据传输(引用数据类型)

原文网址:http://www.cnblogs.com/luxiaofeng54/archive/2011/08/20/2147086.html 基于 Android NDK 的学习之旅-----数据传输二(引用数据类型)(附源码) 基于 Android NDK 的学习之旅-----数据传输(引用数据类型) 接着上篇文章继续讲.主要关于引用类型的数据传输,本文将介绍字符串传输和自定义对象的传输. 1.主要流程 1.  String 字符串传输 a)         上层定义一个native的方法

经典收藏 50个jQuery Mobile开发技巧集萃

1.Backbone移动实例 这是在Safari中运行的一款Backbone移动应用程序.想开始体验移动开发,一个好的出发点就是关注这个应用程序的构建方式.先不妨在你的浏览器中查看该应用程序. 相关链接:http://bennolan.com/2010/11/24/backbone-jquery-demo.html 2.使用媒体查询来锁定设备 你可能会问如何使用CSS来锁定设备(根据屏幕尺寸).比如说,你想要为iPad设计两列布局.为智能手机设计单列布局.要做到这一点,最佳办法就是使用媒体查询.