KT Session2: 主要是代码的实现(KT is knowledge Transfer)
如图所示,在整个Social Hub项目中,我们的项目Data Feed Service处于承上启下的作用。对下,我们调用Autonomy的API Service,呈现给我们经过了筛选过的Media Data,向上我们可以提供给SmartPhone、store.hp.com来增加store流量,促成交易。
如图所示,是项目的架构图,提供Admin Site给Marketing Team做决策,这是各个项目Team之间的逻辑关系图。
上图所示,是我们的Admin Site的界面操作流程。接下来,趁着Bruce的KT还没有忘记,对这次项目KT中收获的知识点做个总结。
1、Junit测试,之前一直以为在maven的src/test的测试部分是由测试人员完成的。Junit作为单元测试工具,大部分情况下还是由Java开发人员来编写的,这部分测试完成的是对action业务逻辑的测试。测试人员则负责高并发等一些系统的运行效率类似的核心问题。
2、UI,之前对UI的理解是前端工程师。负责项目的前端页面的美化。UI只负责设计,了解用户的体验习惯。让软件产品变得使用舒服、简单、自由。前端工程师则是按照UI设计师的要求,用技术实现对页面的布局和实现。后台则负责了业务逻辑,所以后台在整个项目的运行状态中,因为用户体验度的改动还是蛮小的。
3、Admin site端展示的图片、文本、视频、音频文件。我们要展现它们,可以有以下几种形式:1.0101字节流存在数据库中。2.文件形式存储在服务器上。3.URL形式,需要的时候动态加载。
4、web.xml配置文件中,除了对Servlet进行了配置外。还配置了filter和listener。
filter过滤器,当Admin site需要用户登录式来管理的时候,filter负责过滤,在doFilter方法中,从session中验证之后登录,或者第一次登录,跳到登录界面。关于验证码,我们可以用Java的swing组件自己画或者调用开源的jar包插件。
listener监听器,我们的服务器时刻处于监听被阻塞的状态。为了保证每次当客户端有请求发过来时,我们能即时作出相应。就用到了监听器。
Servlet也是Java类,在MVC中负责的是Controller的职责。当然如果我们在项目中采用了SSH等其他框架的话,会用相应的框架的一些配置文件来代替Servlet的配置。
CXF框架,使用CXF提供了web service服务,返回一个.xml的文档。
数据库中的游标。作用:通常情况下,关系数据库中的操作总是对整个记录集产生影响,例如使用SELECT语句检索数据表时,将得到所有满足该语句where子句中条件的记录,而在实际应用过程中,经常需要每次处理一条或者一部分记录。在这种情况下,需要使用游标在服务器内部处理结果集合,他可以有助于识别一个数据集合内部指定的记录,从而可以有选择的按记录执行操作。
MongoDB;
Autonomy,通过其提供的com.autonomy.aci.client;我们根据参数(Autonomyd的IP和Port)返回.xml文档。Java会对其中各个节点,逐层遍历各个node。
Java对Json的解析。
H2DB适合用于测试的时候用的数据库。SQL Server和Oracle都是收费的。
OScache缓存。通过Map中key--value的形式,可以缓存java对象;.jsp;.html等。
Junit测试。使用@Test代替了传统的:每个方法需要继承一个基类。
easymock用于单元测试的一些知识。
同样在web.xml中还配置了404页面;error.jsp页面。
5、前端部分:
ajavx异步请求。里面封装了参数,诸如url、dataType、data、success等。
前端调试:F12.页面调试;network调试和console调试。
Html5自适应各个像素的界面。适应屏幕尺寸本质上其实就是在自适应界面。同样,我们也可以通过浏览器的缩小、放大方式来适配各种类型的html5手机网页。
JQuery,实现了对js的封装,实现了操作html中的dom的修改。
开源的bootstrap框架。