项目整理-一般Java项目

Policy Analysis

项目的框架:MysqlDerby做数据的存储,FreeMarkerweb页面表单的验证,Guava缓存器做policy的缓存,groovy让用户扩展验证逻辑

项目的难点:

下载任务并发的处理,日志的分发,并行处理

遇到的问题:因为一个用户一天日志下载的时间比较长,需要高效的划分下载的任务。将用户的日志按照天下载,那样已经下载的日志就可以不用重新下载。涉及到对同个用户同时分析时并行下载日志的问题。如线程1对用户A分析1-2的日志,线程2对用户A分析2-3号的日志。则将下载的任务分为123三个任务,线程1需要等待12任务完成。线程2需要等待23任务完成。

日志的分发:engine负责获得日志的key,并且按照key获得具体的work,将日志加到workmailbox中,然后submit  work

项目的优化:优化了下载任务

基础知识补习:

1. 数据库的操作

创建可以ConnectionFactory 获得相应DBconnection对象,(connection对象一般由ConnectionPool创建并缓存)。调用ConnectionprepareStatement ()函数创建PrepareStatment,然后设置参数,如果是查询操作的话,会返回一个result set,将result set转换成相应的对象

2.Guava缓存器http://blog.csdn.net/desilting/article/details/11768773

自动载入键值至缓存;

当缓存器溢出时,采用最近最少使用原则进行替换。

过期规则可基于最后读写时间。

      设置键值引用级别。

       元素移出通知。

       缓存访问统计。

3.FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输http://baike.baidu.com/view/1278430.htm?fr=aladdin

能够生成各种文本:HTMLXMLRTFJava源代码等等。

易于嵌入到产品中:轻量级;不需要Servlet环境,不需要部署tomcat

插件式模板载入器:可以从任何源载入模板,如本地文件、数据库等等。

可以按所需生成文本:保存到本地文件;作为Email发送;从Web应用程序发送它返回给Web浏览器

4.Groovy是一种基于JVMJava虚拟机)的敏捷开发语言,它结合了PythonRubySmalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy 可以使用其他 Java 语言编写的库。

SATF

项目的框架:Cassandra做数据的存储,用HttpServer 启动了一个server处理http请求,用Cucumber做模板

项目的难点:

需要修改cucumber源代码支持test case的并行处理

项目的优化:引入了Cucumber,开发人员将每步的代码逻辑实现,并设置一句自然语言作为代码的映射,QA只要用自然语言表达每个case就可以高效扩展

基础知识补习:

1.Cucumber http://baike.baidu.com/view/1215750.htm?fr=aladdin

 是一个能够理解用普通语言描述的测试用例的支持行为驱动开发(BDD)的自动化测试工

2.Cassandra http://baike.baidu.com/view/1350234.htm?fr=aladdin

是一套开源分布式NoSQL数据库系

OTM

项目的难点:快速的迁移数据,MySQL schemaindex的设置

                     Communications link failurehttp://frankfan915.iteye.com/admin/blogs/1672465

项目的优化:1. truncate代替delete

                            2.合理设置numberOfBindRowsAllocated,节省空间

                            3.关闭Mysql logdelete index

猜你喜欢

转载自frankfan915.iteye.com/blog/2097998