1.5.3 开发工具 (1) MyEclipse简介 MyEclipse,是在eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的
1.5.3 开发工具
(1) MyEclipse简介
MyEclipse,是在eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错。
(2) PL/SQL简介
PL/SQL亦是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL乃是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点。
2 分析
2.1 需求分析
需求分析乃是指于现实世界生活中具体调查要解决的问题,明确目标问题的需要,充分理解问题的详情以及要求的结果等,并在此基础上确定要添加的性能。需求分析是软件设计工程中的一个重要的阶段,在这个工作的过程中,软件工程师和系统分析师要确定客户的需要,确定系统功能,并在确定了需求之后寻找和分析出处理问题的措施。需求分析阶段的目的就是明确的确定软件系统性能。
这个需求乃是一个移动公司所设想的一个活动,于活动期间,客户进入“流量月月赢”活动页面或短信发送yyy至10086即可参加活动,次月可领取与流量任务对应的电子券。客户通过流量消耗完成“流量月月赢”地图出发点到各流量任务站点方向的路程,行径过程中可遇到不同的机会卡,参与机会卡设置的小游戏环节也可获得小额本地流量、积分等礼品(每月礼品设置根据发放情况进行调整)。以客户参与活动的上月流量使用情况基础,每提升500MB送5元电子券(该和包券与合约有关),最高可送30元(即客户提升3GB的情况)。次月通过掌厅礼包形式发放。
2.2 需求分解,介绍以及实现
首先,需要在公司与需求之间进行关于移动流量大富翁的调查,很多的业务规则例如拦截规则,三大品牌用户等等,这些通过接口拦截,我们前台返回对应的拦截信息。
主流程为每一个用户进到这个流量大富翁活动,都需要传它的手机号和它的活动id,所以没一笔记录都会记录到对应的数据库表,其中就有它的手机号和它的活动id。查数据的时候就可以根据这个手机号和活动id来查找它使用了多少流量,它参加了活动的状态等等。这个表就是月月赢记录表,而手机号就可以从用户表中查找,活动id就可以从策划表,产品表中查到。那么,前台手机号进来,调用后台方法,如果调用成功,这样就会产生一个成功的标识。给到前台后页面就会提示成功。如果调用失败,那么前台就会提示对应拦截信息。
举个例子,在登陆时,输入手机号,点击获取动态码,那么前台会请求调用后台方法,存到数据库,查找这个数据库,利用动态码进行登录,登录成功会记录到数据库中。
再比如,校验wap20用户,校验成功与否会以jason的形式传到前台,若是为1则是wap20用户,前台提示是wap20用户,无法办理。若是为0,则不是wap20用户,前台则进行下一步。
领取礼包也是一样。每个用户的礼包id肯定是不一样的。领取礼包时生成一个获得序列,这个序列根据时间戳生成,因此必定不会重复。然后微信昵称也是一样,调用后台方法,从前台传到后台,记录到数据库中。
数据库的高并发,例如100个用户同时进来,调用接口,会导致数据库的查询缓慢,因此需要用到redis,这个redis主要用到了hashmap,一个key对应一个value,存储数据就会变得很快。这样就能节省了时间。
2.3 所用算法简介
上文提到的hashmap算法乃是本次课题所使用的算法之一。hashmap是基于哈希表的 Map 接口的实现。这个实现提供所有可选的映射操作,并允许使用 null 键和 null 值。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get 和 put)提供稳定的性能。迭代 collection 视图所需的时间与 HashMap 实例的“容量”(桶的数量)及其大小(键-值映射关系数)成比例。所以,如果迭代性能很重要,则不要将初始容量设置得太高(或将加载因子设置得太低)。