用户访问记录组件-开发背景与目标

做完一个功能后,产品经理说他需要知道这个功能到底有多少人使用,每天都那些人访问了这个功能,使用了这个功能多少次。不然这就是瞎打,没法推进。

有同学推荐了百度统计,piwik,或者先记日志再用程序分析日志。我用了下百度统计与piwik,百度统计是一个给站长用的工具,功能强大,但没有找到
编程入口。piwik是开源的,可以定制,但我对php不熟,从php取java内存值(目前项目是Java的)还不知怎么弄。日志的方式,一是代码侵入
强,二是分析程序要通用,则写日志方式需通用,这个不好控制。

于是我设计下面的程序,大体框架我在前面文章已介绍过。但是我想设计的是一个通用的程序。不光可以在现在的项目用,还希望在别的项目,以后的项目都可以用。

要通用,需要有一个通用的输入接口,和输出接口。

输入接口,之前说的aop是我目前知道的最通用的方式,但在实现中遇到一些问题。比如代理同一包的所有类,执行方法可能会死循环。目前我采用struts的拦截器

输出接口,最好输出是统一的服务器,以简化客户端代码。鉴于写到统一服务器需通过网络,这个需要进行性能评测,代码复杂,目前采用的方式是写到数据库的方式。

先留一个图,展示下这个通用的功能,后面看看需求量大小,再决定如何优化现有的这个组件:

时间: 2024-10-21 00:09:19

用户访问记录组件-开发背景与目标的相关文章

用asp.net core 把用户访问记录优化到极致

菜菜呀,前几天做的用户空间,用户反映有时候比较慢呀 CEO,CTO,CFO于一身的CXO 是吗? 菜菜 我把你拉进用户反馈群,你解决一下呀 CEO,CTO,CFO于一身的CXO (完了,以后没清净时候了)我尽量吧,X总,我涨工资的事..... 菜菜 这不来年底了吗,年会奖品可是很丰厚的,希望你抽个一等奖呀,你先出去吧! CEO,CTO,CFO于一身的CXO .........,那答应的年终奖的事? 菜菜 不是给你发了200元的京东卡吗 CEO,CTO,CFO于一身的CXO ...........

crm使用soap取消用户访问记录权限

//取消访问权限 function demo() { //操作记录的id var targetId = "A8A46444-BA10-E411-8A04-00155D002F02"; //操作记录的实体名称 var targetType = "new_config"; //被分配的用户或者团队的id var assignId = "48025176-2B0E-E411-BA68-00155D002F02"; //systemuser或者team

饿了么基于Vue2.0的通用组件开发之路(分享会记录)

Element:一套通用组件库的开发之路 Element 是由饿了么UED设计.饿了么大前端开发的一套基于 Vue 2.0 的桌面端组件库.今天我们要分享的就是开发 Element 的一些心得. 官网:http://element.eleme.io/#/github:https://github.com/ElemeFE/element ## 设计目的 大部分项目起源都是源于业务方的需求,Element 也是一样.随着公司业务发展,内部开始衍生出很多后台系统,UED 部门也接到越来越多的设计需求,

Java 利用监听器来实现记录用户访问网站次数

假如有这么一个需求,要记录所有用户访问某一页面的次数. 最先想到的可能是在该Controller定义一个静态成员,然后在相应Action里自增.但这样有一个问题,就是Tomcat或者其他服务器重启的话,这个值是没办法保存的. 当然在数据库中直接保存也是可以的,但因此便要去单独建张表,日后用户访问相应页面都要去访问数据库维护该表有点不值得. 利用自定义ServletContextListener可以很方便做到这一点.思路如下: 1 .在 Web 应用启动时从文件中读取计数器的数值,并把表示计数器的

java 组件开发中的日志记录问题

今天帮别人写封装几个url 请求,打成jar 包,可以以java接口的方式提供给外部访问. 遇到两个问题: 1. 是否把依赖的jar包也 打入 我要生成的jar包中,如果你不打入,别人直接调用接口会报错.如果你打入可能会和使用该jar包的项目发生冲突,因为别人可能已经引入了相关jar包. 自己可以根据要求来定: 如果不打就需要把jar和pom文件都提供给需求提出者. 如果需要可以使用maven 插件 maven-assembly-plugin. <plugin> <groupId>

VCL组件开发

4.1 TObject分支 下面几部分分别对包含于五个主要分支中的类做出简要地描述,为完整地说明VCL对象的分层结构,引用了包含于产品中的VCL对象分层结构图. 所有的VCL对象都派生于TObject,其方法定义了构造.析构.消息处理等基本特征.VCL对象的许多强大的功能都建立在TObject给出的这些方法的基础之上.通过提供下列方法,TObject封装了所有VCL对象最基本的通用特征: · 在对象被创建或销毁时响应的能力. · 对象的类型和实例信息,及有关对象发布的属性的运行时类型信息(RTT

C#Log4net日志记录组件的使用

一.Log4Net介绍 Log4net是基于.NET开发的一款非常著名的记录日志开源组件.它通过一套XML配置的日志引擎,将日志分不同的等级,分别是:FATAL . ERROR. WARN. INFO . DEBUG.ALL(允许所有的日志请求)和OFF(拒绝所有的日志请求),缺省为DEBUG,前五个可以看到和我们平常在调试应用程序的出错有点类似,在编译器中也会留下如错误.警告之类的提示信息,它们的错误级别不断的降低. 我们接着看Log4net的核心组成部分,Log4net主要由五个部分组成,分

Elmah 日志记录组件

[http://www.cnblogs.com/chenkai/archive/2013/01/26/2877855.html] 常在服务器端处理用户请求时.特别是针对Web应用程序.当出现异常是可以根据日志操作记录还原异常出现时操作步骤.而记录异常堆栈信息判断问题出现问题位置. 为了跟踪和记录服务器行为.特别是针对出现异常时构建简单.统一的异常处理模式就显得尤为重要. 如果有一个基础的架构用来记录服务器端中日志和事件.那么对于调试和在问题的解决就变得更加简单直接.针对日志记录.可能针对大部分开

[转]详解C#组件开发的来龙去脉

C#组件开发首先要了解组件的功能,以及组件为什么会存在.在Visual Studio .NET环境下,将会有新形式的C#组件开发. 组件的功能 微软即将发布的 Visual Studio .NET 将使程序开发人员获得一个集成开发环境,它不但为开发传统的 C/C++ 应用程序,而且也为令人振奋的Microsoft .NET 组件提供了丰富的工具.这些以管理代码编写.在通用语言运行时构建的组件向开发人员提供了一个全新的混合开发环境,即象 Microsoft Visual Basic 一样容易,而同